From goddard at seznam.cz Tue May 1 02:52:32 2012 From: goddard at seznam.cz (goddard at seznam.cz) Date: Tue, 01 May 2012 11:52:32 +0200 (CEST) Subject: =?us-ascii?Q?Re=3A=20Re=3A=20Network=20status?= In-Reply-To: Message-ID: <126001.24531.18090-31193-1871646766-1335865952@seznam.cz> I filed RFE RT-21270 for this. Thank you, Jiri ------------ P?vodn? zpr?va ------------ Od: Joe McGlynn P?edm?t: Re: Network status Datum: 27.4.2012 23:11:02 ---------------------------------------- java.net.NetworkInterface.isUp()? On Apr 27, 2012, at 7:23 AM, Richard Bair wrote: > This is a great feature request. I don't know of any mechanism right now in Java for doing this. I would expect this to be some kind of Java API vs. JavaFX but maybe we would have a JavaFX wrapper with observable properties. In any case, can you file a JIRA? I think this is something we're going to want for desktop but also for embedded. > > Richard > > On Apr 27, 2012, at 3:59 AM, goddard at seznam.cz wrote: > >> Hello, >> >> is there a way how to tell that my application is connected to the network - simply obtain the status of network connection. This will come handy especially with mobile apps. >> >> Thanks, Jiri > From anthony.vanelverdinghe at gmail.com Tue May 1 05:02:35 2012 From: anthony.vanelverdinghe at gmail.com (Anthony Vanelverdinghe) Date: Tue, 01 May 2012 14:02:35 +0200 Subject: Issues with installing JavaFX on first use Message-ID: <4F9FD0DB.1070904@gmail.com> Hello to all I 've encountered 2 issues with installing JavaFX on first use. Environment: OS: Windows Vista Business SP2 32-bit Java: Java SE 7u4 JRE (Windows x86 Offline (32-bit)) as downloaded from here ( http://www.oracle.com/technetwork/java/javase/downloads/jre-7u4-download-1591157.html ) no other JDK or JRE is installed Following are the steps to reproduce: download & unzip the JavaFX samples from the Oracle site ( http://download.oracle.com/otn-pub/java/javafx/2.1.0-b21/javafx_samples-2_1_0-windows.zip ) Problem 1: open BrickBreaker.jnlp. Now an error comes up saying: C:\Users\Anthony\javafx-windows-i586__Vlatest.exe is not a valid Win32 application. The problem, I believe, is the following: BrickBreaker.jnlp refers to http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp which in turn refers to http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/JavaFXRuntimeInstaller.jar this jar contains a class JavaFXRuntimeInstaller, which contains the download locations for the JavaFX installers: private static final String DEFAULT_I586_URL = "http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe"; private static final String DEFAULT_X64_URL = "http://download.oracle.com/otn-pub/java/javafx/javafx-windows-x64__Vlatest.exe"; using the first URL to continue my explanation: http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe redirects with http code 302 to: https://edelivery.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe which in turn redirects with http code 302 to: http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe?AuthParam=1335709310_1e63393a9975cbe57e4ae096c1380b6b so JavaFXRuntimeInstaller basically downloads the file at DEFAULT_I586_URL to a local file & executes the local file, but: by default redirects are followed, unless it goes from http to https or vice versa (see http://stackoverflow.com/questions/1884230/java-doesnt-follow-redirect-in-urlconnection), so JavaFXRuntimeInstaller simply downloads the contents of http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe (i.e. nothing) & then executes the empty downloaded file. This results in the error above saying the file is not a valid Win32 application. So the fix should be as simple as eliminating the redirect to a https URL in the scenario above. Problem 2: open BrickBreaker.html & click the Webstart link, now the JavaFX 2.0.3 installer is downloaded, instead of the expected JavaFX 2.1.0 one (note that trying to start the embedded JavaFX application does download the JavaFX 2.1.0 installer). I have absolutely no clue why this happens, especially since the encoded jnlp_content of the Webstart link is exactly the same as both the encoded jnlp_content of the embedded JavaFX application & the external BrickBreaker.jnlp file. Best regards Anthony Vanelverdinghe From anthony.vanelverdinghe at gmail.com Tue May 1 05:14:20 2012 From: anthony.vanelverdinghe at gmail.com (Anthony VE) Date: Tue, 1 May 2012 14:14:20 +0200 Subject: Network status In-Reply-To: <126001.24531.18090-31193-1871646766-1335865952@seznam.cz> References: <126001.24531.18090-31193-1871646766-1335865952@seznam.cz> Message-ID: Please note that there is JEP 125: "Network Interface Aliases, Events, and Defaults" ( http://openjdk.java.net/jeps/125 ), which explicitly mentions in its description: "Provide the ability to listen for network interface up/down transitions." Best regards Anthony 2012/5/1 > I filed RFE RT-21270 for this. > > Thank you, Jiri > > ------------ P?vodn? zpr?va ------------ > Od: Joe McGlynn > P?edm?t: Re: Network status > Datum: 27.4.2012 23:11:02 > ---------------------------------------- > java.net.NetworkInterface.isUp()? > > On Apr 27, 2012, at 7:23 AM, Richard Bair wrote: > > > This is a great feature request. I don't know of any mechanism right now > in > Java for doing this. I would expect this to be some kind of Java API vs. > JavaFX > but maybe we would have a JavaFX wrapper with observable properties. In any > case, can you file a JIRA? I think this is something we're going to want > for > desktop but also for embedded. > > > > Richard > > > > On Apr 27, 2012, at 3:59 AM, goddard at seznam.cz wrote: > > > >> Hello, > >> > >> is there a way how to tell that my application is connected to the > network - > simply obtain the status of network connection. This will come handy > especially > with mobile apps. > >> > >> Thanks, Jiri > > > > > > From steve.x.northover at oracle.com Tue May 1 05:53:30 2012 From: steve.x.northover at oracle.com (steve.x.northover at oracle.com) Date: Tue, 01 May 2012 08:53:30 -0400 Subject: Updated API REVIEW request for RT-15011: Provide ability to alter the implicit "exit on last window closed" behavior In-Reply-To: <4F9F3ECC.7050007@oracle.com> References: <4F8EF38C.1000104@oracle.com> <4F9F3ECC.7050007@oracle.com> Message-ID: <4F9FDCCA.5010501@oracle.com> +1 On 30/04/2012 9:39 PM, Kevin Rushforth wrote: > [finally getting back to this] > > While writing tests for this I realized that what I proposed earlier > won't work for Swing or SWT apps that embed a JavaFX Scene, but have > no Application class. As a result I'm going back to my original idea > of putting the implicitExit attribute on Platform (which is where > exit() is so it makes just as much sense, if not more, to be there > anyway). > > ================================================= > > JIRA: http://javafx-jira.kenai.com/browse/RT-15011 > > This is a simple API addition to address the need for applications to > be able to inhibit the implicit "exit on last window closed" behavior > of the JavaFX Platform. > > To address this feature, I propose to add the following pair of > methods to the Platform class. > > public static void setImplicitExit(boolean implicitExit) > public static boolean isImplicitExit() > > The default value is true which preserves the existing behavior. > > Here are the details: > > ================================================= > > A. The Life-cycle section in the Application class header will be > modified as follows: > > The JavaFX runtime does the following, in order, whenever an > application is launched: > > 1. Constructs an instance of the specified Application class > 2. Calls the init() method > 3. Calls the start(Stage) method > 4. Waits for the application to finish, which happens when either of > the following occur: > * - the application calls Platform.exit() > * - the last window has been closed and the implicitExit > attribute on Platform is true > 5. Calls the stop() method > > B. The proposed javadoc for the new methods in Platform is: > > public static void setImplicitExit(boolean implicitExit) > > Sets the implicitExit attribute to the specified value. If this > attribute is true, the JavaFX runtime will implicitly shutdown when > the last window is closed; the JavaFX launcher will call the stop() > method and terminate the JavaFX application thread. If this attribute > is false, the application will continue to run normally even after the > last window is closed, until the application calls Platform.exit(). > The default value is true. > > Parameters: > implicitExit - a flag indicating whether or not to implicitly > exit when the last window is closed. > > > public static boolean isImplicitExit() > > Gets the value of the implicitExit attribute. > > ================================================= > > Thanks. > > -- Kevin > From hang.vo at oracle.com Tue May 1 06:18:17 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 01 May 2012 13:18:17 +0000 Subject: hg: openjfx/2.2/controls/rt: RT-20714: redo - added initializer to sync all styleable properties and redid the InvalidationListener. Now all the styleables are in sync. Also added a unit test. Message-ID: <20120501131819.7F6C7470B5@hg.openjdk.java.net> Changeset: d41e65ac94a5 Author: David Grieve Date: 2012-05-01 08:54 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/d41e65ac94a5 RT-20714: redo - added initializer to sync all styleable properties and redid the InvalidationListener. Now all the styleables are in sync. Also added a unit test. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/LabeledImpl.java + javafx-ui-controls/test/com/sun/javafx/scene/control/skin/LabeledImplTest.java From joe.mcglynn at oracle.com Tue May 1 06:32:44 2012 From: joe.mcglynn at oracle.com (Joe McGlynn) Date: Tue, 1 May 2012 06:32:44 -0700 Subject: Issues with installing JavaFX on first use In-Reply-To: <4F9FD0DB.1070904@gmail.com> References: <4F9FD0DB.1070904@gmail.com> Message-ID: <9F3BFE72-27FD-4FB1-9B80-176B98C3E698@oracle.com> Anthony, thanks for the detailed report, we will look into that today. Joe McGlynn On May 1, 2012, at 5:02 AM, Anthony Vanelverdinghe wrote: > Hello to all > > I 've encountered 2 issues with installing JavaFX on first use. > > Environment: > OS: Windows Vista Business SP2 32-bit > Java: Java SE 7u4 JRE (Windows x86 Offline (32-bit)) as downloaded from here ( http://www.oracle.com/technetwork/java/javase/downloads/jre-7u4-download-1591157.html ) > no other JDK or JRE is installed > > Following are the steps to reproduce: > download & unzip the JavaFX samples from the Oracle site ( http://download.oracle.com/otn-pub/java/javafx/2.1.0-b21/javafx_samples-2_1_0-windows.zip ) > > Problem 1: open BrickBreaker.jnlp. Now an error comes up saying: > C:\Users\Anthony\javafx-windows-i586__Vlatest.exe is not a valid Win32 application. > > The problem, I believe, is the following: > BrickBreaker.jnlp refers to http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp > which in turn refers to http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/JavaFXRuntimeInstaller.jar > this jar contains a class JavaFXRuntimeInstaller, which contains the download locations for the JavaFX installers: > > private static final String DEFAULT_I586_URL = "http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe"; > private static final String DEFAULT_X64_URL = "http://download.oracle.com/otn-pub/java/javafx/javafx-windows-x64__Vlatest.exe"; > > using the first URL to continue my explanation: > http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe > redirects with http code 302 to: https://edelivery.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe > which in turn redirects with http code 302 to: http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe?AuthParam=1335709310_1e63393a9975cbe57e4ae096c1380b6b > > so JavaFXRuntimeInstaller basically downloads the file at DEFAULT_I586_URL to a local file & executes the local file, but: > by default redirects are followed, unless it goes from http to https or vice versa (see http://stackoverflow.com/questions/1884230/java-doesnt-follow-redirect-in-urlconnection), so JavaFXRuntimeInstaller simply downloads the contents of http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe (i.e. nothing) & then executes the empty downloaded file. This results in the error above saying the file is not a valid Win32 application. > > So the fix should be as simple as eliminating the redirect to a https URL in the scenario above. > > Problem 2: open BrickBreaker.html & click the Webstart link, now the JavaFX 2.0.3 installer is downloaded, instead of the expected JavaFX 2.1.0 one (note that trying to start the embedded JavaFX application does download the JavaFX 2.1.0 installer). I have absolutely no clue why this happens, especially since the encoded jnlp_content of the Webstart link is exactly the same as both the encoded jnlp_content of the embedded JavaFX application & the external BrickBreaker.jnlp file. > > Best regards > > Anthony Vanelverdinghe From jmartine_1026 at yahoo.com Tue May 1 07:08:27 2012 From: jmartine_1026 at yahoo.com (Jose Martinez) Date: Tue, 1 May 2012 07:08:27 -0700 (PDT) Subject: Issues with installing JavaFX on first use In-Reply-To: <9F3BFE72-27FD-4FB1-9B80-176B98C3E698@oracle.com> References: <4F9FD0DB.1070904@gmail.com> <9F3BFE72-27FD-4FB1-9B80-176B98C3E698@oracle.com> Message-ID: <1335881307.95692.YahooMailNeo@web160901.mail.bf1.yahoo.com> I am having problems myself with the brickbreaker link. Running Windows XP with JRE 6u29 and JRE 7u29 installed and JFX 2.0.3..... I?purposefully?did not upgrade to latest to see what average user would experience. 1) ?Click on?http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp 2) ?Downloaded JNLP and clicked on it. ?Java 7 icon popped up, then got the following error msg "Unable to launch the application." 3) ?Clicking on details showed the following exception.... MissingFieldException[ The following required field is missing from the launch file: |] at com.sun.javaws.Launcher.prepareLaunchFile(Unknown Source) at com.sun.javaws.Launcher.prepareAllResources(Unknown Source) at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) at com.sun.javaws.Launcher.launch(Unknown Source) at com.sun.javaws.Main.launchApp(Unknown Source) at com.sun.javaws.Main.continueInSecureThread(Unknown Source) at com.sun.javaws.Main$1.run(Unknown Source) at java.lang.Thread.run(Unknown Source) thanks jose ________________________________ From: Joe McGlynn To: Anthony Vanelverdinghe Cc: openjfx-dev at openjdk.java.net Sent: Tuesday, May 1, 2012 9:32 AM Subject: Re: Issues with installing JavaFX on first use Anthony, thanks for the detailed report, we will look into that today. Joe McGlynn On May 1, 2012, at 5:02 AM, Anthony Vanelverdinghe wrote: > Hello to all > > I 've encountered 2 issues with installing JavaFX on first use. > > Environment: > OS: Windows Vista Business SP2 32-bit > Java: Java SE 7u4 JRE (Windows x86 Offline (32-bit)) as downloaded from here ( http://www.oracle.com/technetwork/java/javase/downloads/jre-7u4-download-1591157.html ) > no other JDK or JRE is installed > > Following are the steps to reproduce: > download & unzip the JavaFX samples from the Oracle site ( http://download.oracle.com/otn-pub/java/javafx/2.1.0-b21/javafx_samples-2_1_0-windows.zip ) > > Problem 1: open BrickBreaker.jnlp. Now an error comes up saying: > C:\Users\Anthony\javafx-windows-i586__Vlatest.exe is not a valid Win32 application. > > The problem, I believe, is the following: > BrickBreaker.jnlp refers to http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp > which in turn refers to http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/JavaFXRuntimeInstaller.jar > this jar contains a class JavaFXRuntimeInstaller, which contains the download locations for the JavaFX installers: > > private static final String DEFAULT_I586_URL = "http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe"; > private static final String DEFAULT_X64_URL = "http://download.oracle.com/otn-pub/java/javafx/javafx-windows-x64__Vlatest.exe"; > > using the first URL to continue my explanation: > http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe > redirects with http code 302 to: https://edelivery.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe > which in turn redirects with http code 302 to: http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe?AuthParam=1335709310_1e63393a9975cbe57e4ae096c1380b6b > > so JavaFXRuntimeInstaller basically downloads the file at DEFAULT_I586_URL to a local file & executes the local file, but: > by default redirects are followed, unless it goes from http to https or vice versa (see http://stackoverflow.com/questions/1884230/java-doesnt-follow-redirect-in-urlconnection), so JavaFXRuntimeInstaller simply downloads the contents of http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe (i.e. nothing) & then executes the empty downloaded file. This results in the error above saying the file is not a valid Win32 application. > > So the fix should be as simple as eliminating the redirect to a https URL in the scenario above. > > Problem 2: open BrickBreaker.html & click the Webstart link, now the JavaFX 2.0.3 installer is downloaded, instead of the expected JavaFX 2.1.0 one (note that trying to start the embedded JavaFX application does download the JavaFX 2.1.0 installer). I have absolutely no clue why this happens, especially since the encoded jnlp_content of the Webstart link is exactly the same as both the encoded jnlp_content of the embedded JavaFX application & the external BrickBreaker.jnlp file. > > Best regards > >? Anthony Vanelverdinghe From jmartine_1026 at yahoo.com Tue May 1 07:16:49 2012 From: jmartine_1026 at yahoo.com (Jose Martinez) Date: Tue, 1 May 2012 07:16:49 -0700 (PDT) Subject: Issues with installing JavaFX on first use In-Reply-To: <1335881307.95692.YahooMailNeo@web160901.mail.bf1.yahoo.com> References: <4F9FD0DB.1070904@gmail.com> <9F3BFE72-27FD-4FB1-9B80-176B98C3E698@oracle.com> <1335881307.95692.YahooMailNeo@web160901.mail.bf1.yahoo.com> Message-ID: <1335881809.50623.YahooMailNeo@web160903.mail.bf1.yahoo.com> correction....?JRE 7u3 is installed.... sorry about that. ? jose ________________________________ From: Jose Martinez To: "openjfx-dev at openjdk.java.net" Sent: Tuesday, May 1, 2012 10:08 AM Subject: Re: Issues with installing JavaFX on first use I am having problems myself with the brickbreaker link. Running Windows XP with JRE 6u29 and JRE 7u29 installed and JFX 2.0.3..... I?purposefully?did not upgrade to latest to see what average user would experience. 1) ?Click on?http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp 2) ?Downloaded JNLP and clicked on it. ?Java 7 icon popped up, then got the following error msg "Unable to launch the application." 3) ?Clicking on details showed the following exception.... MissingFieldException[ The following required field is missing from the launch file: |] at com.sun.javaws.Launcher.prepareLaunchFile(Unknown Source) at com.sun.javaws.Launcher.prepareAllResources(Unknown Source) at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) at com.sun.javaws.Launcher.launch(Unknown Source) at com.sun.javaws.Main.launchApp(Unknown Source) at com.sun.javaws.Main.continueInSecureThread(Unknown Source) at com.sun.javaws.Main$1.run(Unknown Source) at java.lang.Thread.run(Unknown Source) thanks jose ________________________________ From: Joe McGlynn To: Anthony Vanelverdinghe Cc: openjfx-dev at openjdk.java.net Sent: Tuesday, May 1, 2012 9:32 AM Subject: Re: Issues with installing JavaFX on first use Anthony, thanks for the detailed report, we will look into that today. Joe McGlynn On May 1, 2012, at 5:02 AM, Anthony Vanelverdinghe wrote: > Hello to all > > I 've encountered 2 issues with installing JavaFX on first use. > > Environment: > OS: Windows Vista Business SP2 32-bit > Java: Java SE 7u4 JRE (Windows x86 Offline (32-bit)) as downloaded from here ( http://www.oracle.com/technetwork/java/javase/downloads/jre-7u4-download-1591157.html ) > no other JDK or JRE is installed > > Following are the steps to reproduce: > download & unzip the JavaFX samples from the Oracle site ( http://download.oracle.com/otn-pub/java/javafx/2.1.0-b21/javafx_samples-2_1_0-windows.zip ) > > Problem 1: open BrickBreaker.jnlp. Now an error comes up saying: > C:\Users\Anthony\javafx-windows-i586__Vlatest.exe is not a valid Win32 application. > > The problem, I believe, is the following: > BrickBreaker.jnlp refers to http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp > which in turn refers to http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/JavaFXRuntimeInstaller.jar > this jar contains a class JavaFXRuntimeInstaller, which contains the download locations for the JavaFX installers: > > private static final String DEFAULT_I586_URL = "http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe"; > private static final String DEFAULT_X64_URL = "http://download.oracle.com/otn-pub/java/javafx/javafx-windows-x64__Vlatest.exe"; > > using the first URL to continue my explanation: > http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe > redirects with http code 302 to: https://edelivery.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe > which in turn redirects with http code 302 to: http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe?AuthParam=1335709310_1e63393a9975cbe57e4ae096c1380b6b > > so JavaFXRuntimeInstaller basically downloads the file at DEFAULT_I586_URL to a local file & executes the local file, but: > by default redirects are followed, unless it goes from http to https or vice versa (see http://stackoverflow.com/questions/1884230/java-doesnt-follow-redirect-in-urlconnection), so JavaFXRuntimeInstaller simply downloads the contents of http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe (i.e. nothing) & then executes the empty downloaded file. This results in the error above saying the file is not a valid Win32 application. > > So the fix should be as simple as eliminating the redirect to a https URL in the scenario above. > > Problem 2: open BrickBreaker.html & click the Webstart link, now the JavaFX 2.0.3 installer is downloaded, instead of the expected JavaFX 2.1.0 one (note that trying to start the embedded JavaFX application does download the JavaFX 2.1.0 installer). I have absolutely no clue why this happens, especially since the encoded jnlp_content of the Webstart link is exactly the same as both the encoded jnlp_content of the embedded JavaFX application & the external BrickBreaker.jnlp file. > > Best regards > >? Anthony Vanelverdinghe From igor.nekrestyanov at oracle.com Tue May 1 08:30:00 2012 From: igor.nekrestyanov at oracle.com (Igor Nekrestyanov) Date: Tue, 01 May 2012 08:30:00 -0700 Subject: Issues with installing JavaFX on first use In-Reply-To: <1335881809.50623.YahooMailNeo@web160903.mail.bf1.yahoo.com> References: <4F9FD0DB.1070904@gmail.com> <9F3BFE72-27FD-4FB1-9B80-176B98C3E698@oracle.com> <1335881307.95692.YahooMailNeo@web160901.mail.bf1.yahoo.com> <1335881809.50623.YahooMailNeo@web160903.mail.bf1.yahoo.com> Message-ID: <4FA00178.9040002@oracle.com> http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp is a component jnlp file. It is not supposed to be run separately. The idea is it needs to be included into application JNLP in order to define where to install required component from if it is missing. I.e. user is expected to click on BrickBreaker.jnlp that will trigger update request and then above jnlp file will come into play. http=>https redirect is something new, let us investigate. -igor p.s. Please file bugs as JIRA issues. You may also refer to them in this list but having issue to track helps to resolve them faster. On 5/1/12 7:16 AM, Jose Martinez wrote: > correction.... JRE 7u3 is installed.... sorry about that. > > jose > > > ________________________________ > From: Jose Martinez > To: "openjfx-dev at openjdk.java.net" > Sent: Tuesday, May 1, 2012 10:08 AM > Subject: Re: Issues with installing JavaFX on first use > > I am having problems myself with the brickbreaker link. > > Running Windows XP with JRE 6u29 and JRE 7u29 installed and JFX 2.0.3..... I purposefully did not upgrade to latest to see what average user would experience. > > 1) Click on http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp > 2) Downloaded JNLP and clicked on it. Java 7 icon popped up, then got the following error msg "Unable to launch the application." > 3) Clicking on details showed the following exception.... > > MissingFieldException[ The following required field is missing from the launch file:|] > at com.sun.javaws.Launcher.prepareLaunchFile(Unknown Source) > at com.sun.javaws.Launcher.prepareAllResources(Unknown Source) > at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) > at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) > at com.sun.javaws.Launcher.launch(Unknown Source) > at com.sun.javaws.Main.launchApp(Unknown Source) > at com.sun.javaws.Main.continueInSecureThread(Unknown Source) > at com.sun.javaws.Main$1.run(Unknown Source) > at java.lang.Thread.run(Unknown Source) > > > > thanks > jose > > > ________________________________ > From: Joe McGlynn > To: Anthony Vanelverdinghe > Cc: openjfx-dev at openjdk.java.net > Sent: Tuesday, May 1, 2012 9:32 AM > Subject: Re: Issues with installing JavaFX on first use > > Anthony, thanks for the detailed report, we will look into that today. > > Joe McGlynn > > > On May 1, 2012, at 5:02 AM, Anthony Vanelverdinghe wrote: > >> Hello to all >> >> I 've encountered 2 issues with installing JavaFX on first use. >> >> Environment: >> OS: Windows Vista Business SP2 32-bit >> Java: Java SE 7u4 JRE (Windows x86 Offline (32-bit)) as downloaded from here ( http://www.oracle.com/technetwork/java/javase/downloads/jre-7u4-download-1591157.html ) >> no other JDK or JRE is installed >> >> Following are the steps to reproduce: >> download& unzip the JavaFX samples from the Oracle site ( http://download.oracle.com/otn-pub/java/javafx/2.1.0-b21/javafx_samples-2_1_0-windows.zip ) >> >> Problem 1: open BrickBreaker.jnlp. Now an error comes up saying: >> C:\Users\Anthony\javafx-windows-i586__Vlatest.exe is not a valid Win32 application. >> >> The problem, I believe, is the following: >> BrickBreaker.jnlp refers to http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp >> which in turn refers to http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/JavaFXRuntimeInstaller.jar >> this jar contains a class JavaFXRuntimeInstaller, which contains the download locations for the JavaFX installers: >> >> private static final String DEFAULT_I586_URL = "http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe"; >> private static final String DEFAULT_X64_URL = "http://download.oracle.com/otn-pub/java/javafx/javafx-windows-x64__Vlatest.exe"; >> >> using the first URL to continue my explanation: >> http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe >> redirects with http code 302 to: https://edelivery.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe >> which in turn redirects with http code 302 to: http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe?AuthParam=1335709310_1e63393a9975cbe57e4ae096c1380b6b >> >> so JavaFXRuntimeInstaller basically downloads the file at DEFAULT_I586_URL to a local file& executes the local file, but: >> by default redirects are followed, unless it goes from http to https or vice versa (see http://stackoverflow.com/questions/1884230/java-doesnt-follow-redirect-in-urlconnection), so JavaFXRuntimeInstaller simply downloads the contents of http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe (i.e. nothing)& then executes the empty downloaded file. This results in the error above saying the file is not a valid Win32 application. >> >> So the fix should be as simple as eliminating the redirect to a https URL in the scenario above. >> >> Problem 2: open BrickBreaker.html& click the Webstart link, now the JavaFX 2.0.3 installer is downloaded, instead of the expected JavaFX 2.1.0 one (note that trying to start the embedded JavaFX application does download the JavaFX 2.1.0 installer). I have absolutely no clue why this happens, especially since the encoded jnlp_content of the Webstart link is exactly the same as both the encoded jnlp_content of the embedded JavaFX application& the external BrickBreaker.jnlp file. >> >> Best regards >> >> Anthony Vanelverdinghe From hang.vo at oracle.com Tue May 1 10:18:22 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 01 May 2012 17:18:22 +0000 Subject: hg: openjfx/2.2/graphics/rt: 28 new changesets Message-ID: <20120501171844.B4F89470B8@hg.openjdk.java.net> Changeset: a5ed33820281 Author: hudson Date: 2012-04-25 13:58 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/a5ed33820281 Added tag 2.2-b06 for changeset 28fbe39ed5cc ! .hgtags Changeset: d64c1c8540c6 Author: Kinsley Wong Date: 2012-04-23 18:36 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/d64c1c8540c6 Pagination. Right key presses should not go beyond the last page. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/PaginationSkin.java Changeset: 7e29bb81fc2a Author: Kinsley Wong Date: 2012-04-23 18:37 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/7e29bb81fc2a RT-13992: CheckBox should have an event fired whenever selected or indeterminate changes. ! javafx-ui-controls/src/javafx/scene/control/CheckBox.java Changeset: d354d684f53f Author: mickf Date: 2012-04-24 15:36 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/d354d684f53f RT-20793 : KeyCode.DELETE used as accelerator on a MenuItem is suspected to corrupt the menu containing this MenuItem (on Windows) ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/KeyCodeUtils.java ! javafx-ui-controls/test/com/sun/javafx/scene/control/skin/KeystrokeUtilsTest.java Changeset: 3b31386cd245 Author: Kinsley Wong Date: 2012-04-24 11:02 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/3b31386cd245 Unit test for RT-13992. ! javafx-ui-controls/test/javafx/scene/control/CheckBoxTest.java Changeset: a076f05dbd57 Author: David Grieve Date: 2012-04-24 14:43 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/a076f05dbd57 RT-21046: When setting UA stylesheet, call impl_reapplyCSS on the scene root rather than impl_processCSS. ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java + javafx-ui-common/test/unit/com/sun/javafx/css/HonorDeveloperSettingsTest.java - javafx-ui-common/test/unit/com/sun/javafx/css/HonorDeveloperSettingsTest.java.DISABLED Changeset: 45f46fb22483 Author: David Grieve Date: 2012-04-25 17:04 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/45f46fb22483 RT-20714: do not translate null color to transparent ! javafx-ui-common/src/com/sun/javafx/css/StyleableDoubleProperty.java ! javafx-ui-common/src/com/sun/javafx/css/StyleableFloatProperty.java ! javafx-ui-common/src/com/sun/javafx/css/StyleableIntegerProperty.java ! javafx-ui-common/src/com/sun/javafx/css/StyleableLongProperty.java ! javafx-ui-common/src/com/sun/javafx/css/StyleableProperty.java ! javafx-ui-common/src/com/sun/javafx/css/converters/ColorConverter.java ! javafx-ui-common/test/unit/javafx/scene/Node_cssMethods_Test.java ! javafx-ui-common/test/unit/javafx/scene/shape/Shape_cssMethods_Test.java Changeset: d630a9d8224d Author: David Grieve Date: 2012-04-25 17:04 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/d630a9d8224d RT-20032: graphic property on Labeled is not a Styleable. Need to use the image url property (which is hidden in the List instead. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/LabeledImpl.java Changeset: 49c7a705b5bf Author: Kinsley Wong Date: 2012-04-25 17:03 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/49c7a705b5bf RT-17668: Disable/enable tabs in a TabPane. ! javafx-ui-controls/src/com/sun/javafx/scene/control/behavior/TabPaneBehavior.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/TabPaneSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css ! javafx-ui-controls/src/javafx/scene/control/Tab.java ! javafx-ui-controls/src/javafx/scene/control/TabPane.java ! javafx-ui-controls/test/javafx/scene/control/TabPaneTest.java ! javafx-ui-controls/test/javafx/scene/control/TabTest.java Changeset: 4bb7f9d39ae9 Author: jgiles Date: 2012-04-18 12:01 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/4bb7f9d39ae9 [DOC ONLY] Updated PropertyValueFactory to refer to the in-development MapValueFactory class. ! javafx-ui-controls/src/javafx/scene/control/cell/PropertyValueFactory.java Changeset: fc596988f959 Author: jgiles Date: 2012-04-18 12:03 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/fc596988f959 RT-20956: add method setUserData in TableColumn. ! javafx-ui-controls/src/javafx/scene/control/TableColumn.java Changeset: e80d39015aa3 Author: jgiles Date: 2012-04-18 12:17 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/e80d39015aa3 RT-20855: ComboBox, need an onShowing event handler ! javafx-ui-controls/src/javafx/scene/control/ComboBoxBase.java ! javafx-ui-controls/src/javafx/scene/control/Menu.java Changeset: bc96fe004617 Author: jgiles Date: 2012-04-20 12:11 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/bc96fe004617 RT-19452: TableView: Item renderers and item editors + javafx-ui-controls/src/com/sun/javafx/scene/control/CheckBoxTreeItem.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CellUtils.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxCellFactory.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxListCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxTableCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxTreeCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxCellFactory.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxListCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxTableCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxTreeCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxCellFactory.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxListCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxTableCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxTreeCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/MapValueFactory.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ProgressBarCellFactory.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ProgressBarTableCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterCellFactory.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterListCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterTableCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterTreeCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatCellFactory.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatListCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatTableCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatTreeCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldCellFactory.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldListCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldTableCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldTreeCell.java Changeset: 8f6e1d3273ea Author: jgiles Date: 2012-04-26 15:51 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/8f6e1d3273ea Moving javafx-util-converter before javafx-ui-controls in the build ! build.xml ! javafx-ui-controls/build-closed.xml Changeset: 5bf85e72593a Author: jgiles Date: 2012-04-26 16:04 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/5bf85e72593a Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/controls/jfx/rt ! javafx-ui-controls/build-closed.xml Changeset: 1a693a82850e Author: jgiles Date: 2012-04-26 16:47 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/1a693a82850e RT-19589: ComboBox : cannot access to the current string editor + javafx-ui-controls/src/com/sun/javafx/scene/control/FocusableTextField.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ComboBoxListViewSkin.java ! javafx-ui-controls/src/javafx/scene/control/ComboBox.java Changeset: d86de2e536a0 Author: jgiles Date: 2012-04-26 19:49 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/d86de2e536a0 Added unit tests and fixed issues identified in the previous ComboBox editor changeset (related to RT-19589) ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ComboBoxListViewSkin.java ! javafx-ui-controls/src/javafx/scene/control/ComboBox.java ! javafx-ui-controls/src/javafx/scene/control/SingleSelectionModel.java ! javafx-ui-controls/test/javafx/scene/control/ChoiceBoxTest.java ! javafx-ui-controls/test/javafx/scene/control/ComboBoxTest.java Changeset: edd9ab755798 Author: jgiles Date: 2012-04-26 19:53 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/edd9ab755798 RT-20956: add method setUserData in TableColumn (adding the same API to Tab and fixing up copy/paste JavaDoc issues in TableColumn) ! javafx-ui-controls/src/javafx/scene/control/Tab.java ! javafx-ui-controls/src/javafx/scene/control/TableColumn.java Changeset: e91d38c52914 Author: jgiles Date: 2012-04-27 07:45 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/e91d38c52914 RT-21023: ComboBox : allow different Cell rendering for Open and Closed state. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ComboBoxListViewSkin.java ! javafx-ui-controls/src/javafx/scene/control/ComboBox.java Changeset: 339fc9553446 Author: leifs Date: 2012-04-26 16:26 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/339fc9553446 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/MASTER/rt - javafx-ui-common/test/unit/com/sun/javafx/css/HonorDeveloperSettingsTest.java.DISABLED Changeset: 43eaae798b52 Author: lsamuels Date: 2012-04-26 16:55 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/43eaae798b52 Fixed RT-21120: On Mac a menu with dynamic menu items may trigger infinite loop ! javafx-ui-controls/src/com/sun/javafx/scene/control/GlobalMenuAdapter.java Changeset: 60194ccf4b9b Author: Paru Somashekar Date: 2012-04-27 07:19 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/60194ccf4b9b API changes and implement changes in UI spec. ! javafx-ui-controls/src/com/sun/javafx/scene/control/ColorPicker.java - javafx-ui-controls/src/com/sun/javafx/scene/control/ColorPickerAddColorPane.java - javafx-ui-controls/src/com/sun/javafx/scene/control/DoubleField.java - javafx-ui-controls/src/com/sun/javafx/scene/control/InputField.java - javafx-ui-controls/src/com/sun/javafx/scene/control/IntegerField.java - javafx-ui-controls/src/com/sun/javafx/scene/control/WebColorField.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/behavior/ColorPickerBehavior.java + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPalette.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPickerSkin.java + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/CustomColorDialog.java + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/DoubleField.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/DoubleFieldSkin.java + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/InputField.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/InputFieldSkin.java + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/IntegerField.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/IntegerFieldSkin.java + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/WebColorField.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/WebColorFieldSkin.java Changeset: 5cf8cef87a11 Author: Paru Somashekar Date: 2012-04-27 07:45 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/5cf8cef87a11 missed this in previous putback - javafx-ui-controls/src/com/sun/javafx/scene/control/ColorPalette.java Changeset: 3eb9844ae573 Author: Paru Somashekar Date: 2012-04-27 10:37 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/3eb9844ae573 Made CustomColorDialog Application Modal. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPalette.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPickerSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/CustomColorDialog.java Changeset: 65e0acb7530b Author: Paru Somashekar Date: 2012-04-27 11:15 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/65e0acb7530b fix behavior of ColorPalette for show hide on mouse click and autohide. ! javafx-ui-controls/src/com/sun/javafx/scene/control/behavior/ColorPickerBehavior.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPickerSkin.java Changeset: 06cc0cc5e1cf Author: Kinsley Wong Date: 2012-04-27 14:02 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/06cc0cc5e1cf Pagination: animations for touch events. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/PaginationSkin.java Changeset: ce65dc129c92 Author: Kinsley Wong Date: 2012-04-30 11:11 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/ce65dc129c92 merge Changeset: 3fa9344823cf Author: jpgodine at JPGODINE-LAP.st-users.us.oracle.com Date: 2012-05-01 10:04 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/3fa9344823cf Automated merge with ssh://jpgodine at jfxsrc.us.oracle.com//javafx/2.2/MASTER/jfx/rt From anthony.vanelverdinghe at gmail.com Tue May 1 10:57:16 2012 From: anthony.vanelverdinghe at gmail.com (Anthony Vanelverdinghe) Date: Tue, 01 May 2012 19:57:16 +0200 Subject: Issues with installing JavaFX on first use In-Reply-To: <4FA00178.9040002@oracle.com> References: <4F9FD0DB.1070904@gmail.com> <9F3BFE72-27FD-4FB1-9B80-176B98C3E698@oracle.com> <1335881307.95692.YahooMailNeo@web160901.mail.bf1.yahoo.com> <1335881809.50623.YahooMailNeo@web160903.mail.bf1.yahoo.com> <4FA00178.9040002@oracle.com> Message-ID: <4FA023FC.2080001@gmail.com> Hello Igor I filed the reported problems as 2 JIRA issues: http://javafx-jira.kenai.com/browse/RT-21275 http://javafx-jira.kenai.com/browse/RT-21276 Best regards Anthony Op 1/05/2012 17:30, Igor Nekrestyanov schreef: > http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp > > > is a component jnlp file. It is not supposed to be run separately. > The idea is it needs to be included into application JNLP in order to > define where to install required component from if it is missing. > > I.e. user is expected to click on BrickBreaker.jnlp that will trigger > update request and then above jnlp file will come into play. > http=>https redirect is something new, let us investigate. > > -igor > > p.s. > Please file bugs as JIRA issues. You may also refer to them in this > list but having issue to track helps to resolve them faster. > > On 5/1/12 7:16 AM, Jose Martinez wrote: >> correction.... JRE 7u3 is installed.... sorry about that. >> jose >> >> >> ________________________________ >> From: Jose Martinez >> To: "openjfx-dev at openjdk.java.net" >> Sent: Tuesday, May 1, 2012 10:08 AM >> Subject: Re: Issues with installing JavaFX on first use >> >> I am having problems myself with the brickbreaker link. >> >> Running Windows XP with JRE 6u29 and JRE 7u29 installed and JFX >> 2.0.3..... I purposefully did not upgrade to latest to see what >> average user would experience. >> >> 1) Click on >> http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp >> 2) Downloaded JNLP and clicked on it. Java 7 icon popped up, then >> got the following error msg "Unable to launch the application." >> 3) Clicking on details showed the following exception.... >> >> MissingFieldException[ The following required field is missing from >> the launch file:|] >> at com.sun.javaws.Launcher.prepareLaunchFile(Unknown Source) >> at com.sun.javaws.Launcher.prepareAllResources(Unknown Source) >> at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) >> at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) >> at com.sun.javaws.Launcher.launch(Unknown Source) >> at com.sun.javaws.Main.launchApp(Unknown Source) >> at com.sun.javaws.Main.continueInSecureThread(Unknown Source) >> at com.sun.javaws.Main$1.run(Unknown Source) >> at java.lang.Thread.run(Unknown Source) >> >> >> >> thanks >> jose >> >> >> ________________________________ >> From: Joe McGlynn >> To: Anthony Vanelverdinghe >> Cc: openjfx-dev at openjdk.java.net >> Sent: Tuesday, May 1, 2012 9:32 AM >> Subject: Re: Issues with installing JavaFX on first use >> >> Anthony, thanks for the detailed report, we will look into that today. >> >> Joe McGlynn >> >> >> On May 1, 2012, at 5:02 AM, Anthony Vanelverdinghe wrote: >> >>> Hello to all >>> >>> I 've encountered 2 issues with installing JavaFX on first use. >>> >>> Environment: >>> OS: Windows Vista Business SP2 32-bit >>> Java: Java SE 7u4 JRE (Windows x86 Offline (32-bit)) as downloaded >>> from here ( >>> http://www.oracle.com/technetwork/java/javase/downloads/jre-7u4-download-1591157.html >>> ) >>> no other JDK or JRE is installed >>> >>> Following are the steps to reproduce: >>> download& unzip the JavaFX samples from the Oracle site ( >>> http://download.oracle.com/otn-pub/java/javafx/2.1.0-b21/javafx_samples-2_1_0-windows.zip >>> ) >>> >>> Problem 1: open BrickBreaker.jnlp. Now an error comes up saying: >>> C:\Users\Anthony\javafx-windows-i586__Vlatest.exe is not a valid >>> Win32 application. >>> >>> The problem, I believe, is the following: >>> BrickBreaker.jnlp refers to >>> http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp >>> which in turn refers to >>> http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/JavaFXRuntimeInstaller.jar >>> this jar contains a class JavaFXRuntimeInstaller, which contains the >>> download locations for the JavaFX installers: >>> >>> private static final String DEFAULT_I586_URL = >>> "http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe"; >>> private static final String DEFAULT_X64_URL = >>> "http://download.oracle.com/otn-pub/java/javafx/javafx-windows-x64__Vlatest.exe"; >>> >>> using the first URL to continue my explanation: >>> http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe >>> >>> redirects with http code 302 to: >>> https://edelivery.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe >>> which in turn redirects with http code 302 to: >>> http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe?AuthParam=1335709310_1e63393a9975cbe57e4ae096c1380b6b >>> >>> so JavaFXRuntimeInstaller basically downloads the file at >>> DEFAULT_I586_URL to a local file& executes the local file, but: >>> by default redirects are followed, unless it goes from http to https >>> or vice versa (see >>> http://stackoverflow.com/questions/1884230/java-doesnt-follow-redirect-in-urlconnection), >>> so JavaFXRuntimeInstaller simply downloads the contents of >>> http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe >>> (i.e. nothing)& then executes the empty downloaded file. This >>> results in the error above saying the file is not a valid Win32 >>> application. >>> >>> So the fix should be as simple as eliminating the redirect to a >>> https URL in the scenario above. >>> >>> Problem 2: open BrickBreaker.html& click the Webstart link, now the >>> JavaFX 2.0.3 installer is downloaded, instead of the expected JavaFX >>> 2.1.0 one (note that trying to start the embedded JavaFX application >>> does download the JavaFX 2.1.0 installer). I have absolutely no clue >>> why this happens, especially since the encoded jnlp_content of the >>> Webstart link is exactly the same as both the encoded jnlp_content >>> of the embedded JavaFX application& the external BrickBreaker.jnlp >>> file. >>> >>> Best regards >>> >>> Anthony Vanelverdinghe > From hang.vo at oracle.com Tue May 1 11:33:16 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 01 May 2012 18:33:16 +0000 Subject: hg: openjfx/2.2/controls/rt: Fixed RT-10392: Allow the ellipsis for Labeled to be customizable Message-ID: <20120501183317.E5725470B9@hg.openjdk.java.net> Changeset: 6f138e004e5b Author: leifs Date: 2012-05-01 11:18 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/6f138e004e5b Fixed RT-10392: Allow the ellipsis for Labeled to be customizable ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/LabeledSkinBase.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/Utils.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/resources/controls.properties ! javafx-ui-controls/src/javafx/scene/control/Labeled.java From jmartine_1026 at yahoo.com Tue May 1 11:29:02 2012 From: jmartine_1026 at yahoo.com (Jose Martinez) Date: Tue, 1 May 2012 11:29:02 -0700 (PDT) Subject: Issues with installing JavaFX on first use In-Reply-To: <4FA023FC.2080001@gmail.com> References: <4F9FD0DB.1070904@gmail.com> <9F3BFE72-27FD-4FB1-9B80-176B98C3E698@oracle.com> <1335881307.95692.YahooMailNeo@web160901.mail.bf1.yahoo.com> <1335881809.50623.YahooMailNeo@web160903.mail.bf1.yahoo.com> <4FA00178.9040002@oracle.com> <4FA023FC.2080001@gmail.com> Message-ID: <1335896942.37489.YahooMailNeo@web160903.mail.bf1.yahoo.com> Igor, Thanks for clearing that up. ?I did not have any problems when I launched it via the provided html Brick Breaker file. ? thanks jose ________________________________ From: Anthony Vanelverdinghe To: openjfx-dev at openjdk.java.net Sent: Tuesday, May 1, 2012 1:57 PM Subject: Re: Issues with installing JavaFX on first use Hello Igor I filed the reported problems as 2 JIRA issues: http://javafx-jira.kenai.com/browse/RT-21275 http://javafx-jira.kenai.com/browse/RT-21276 Best regards ? Anthony Op 1/05/2012 17:30, Igor Nekrestyanov schreef: > http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp > > is a component jnlp file. It is not supposed to be run separately. > The idea is it needs to be included into application JNLP in order to define where to install required component from if it is missing. > > I.e. user is expected to click on BrickBreaker.jnlp that will trigger update request and then above jnlp file will come into play. > http=>https redirect is something new, let us investigate. > > -igor > > p.s. >? ? Please file bugs as JIRA issues. You may also refer to them in this list but having issue to track helps to resolve them faster. > > On 5/1/12 7:16 AM, Jose Martinez wrote: >> correction.... JRE 7u3 is installed.... sorry about that. >>? jose >> >> >> ________________________________ >>? From: Jose Martinez >> To: "openjfx-dev at openjdk.java.net" >> Sent: Tuesday, May 1, 2012 10:08 AM >> Subject: Re: Issues with installing JavaFX on first use >> >> I am having problems myself with the brickbreaker link. >> >> Running Windows XP with JRE 6u29 and JRE 7u29 installed and JFX 2.0.3..... I purposefully did not upgrade to latest to see what average user would experience. >> >> 1)? Click on http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp >> 2)? Downloaded JNLP and clicked on it.? Java 7 icon popped up, then got the following error msg "Unable to launch the application." >> 3)? Clicking on details showed the following exception.... >> >> MissingFieldException[ The following required field is missing from the launch file:|] >> at com.sun.javaws.Launcher.prepareLaunchFile(Unknown Source) >> at com.sun.javaws.Launcher.prepareAllResources(Unknown Source) >> at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) >> at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) >> at com.sun.javaws.Launcher.launch(Unknown Source) >> at com.sun.javaws.Main.launchApp(Unknown Source) >> at com.sun.javaws.Main.continueInSecureThread(Unknown Source) >> at com.sun.javaws.Main$1.run(Unknown Source) >> at java.lang.Thread.run(Unknown Source) >> >> >> >> thanks >> jose >> >> >> ________________________________ >> From: Joe McGlynn >> To: Anthony Vanelverdinghe >> Cc: openjfx-dev at openjdk.java.net >> Sent: Tuesday, May 1, 2012 9:32 AM >> Subject: Re: Issues with installing JavaFX on first use >> >> Anthony, thanks for the detailed report, we will look into that today. >> >> Joe McGlynn >> >> >> On May 1, 2012, at 5:02 AM, Anthony Vanelverdinghe wrote: >> >>> Hello to all >>> >>> I 've encountered 2 issues with installing JavaFX on first use. >>> >>> Environment: >>> OS: Windows Vista Business SP2 32-bit >>> Java: Java SE 7u4 JRE (Windows x86 Offline (32-bit)) as downloaded from here ( http://www.oracle.com/technetwork/java/javase/downloads/jre-7u4-download-1591157.html ) >>> no other JDK or JRE is installed >>> >>> Following are the steps to reproduce: >>> download&? unzip the JavaFX samples from the Oracle site ( http://download.oracle.com/otn-pub/java/javafx/2.1.0-b21/javafx_samples-2_1_0-windows.zip ) >>> >>> Problem 1: open BrickBreaker.jnlp. Now an error comes up saying: >>> C:\Users\Anthony\javafx-windows-i586__Vlatest.exe is not a valid Win32 application. >>> >>> The problem, I believe, is the following: >>> BrickBreaker.jnlp refers to http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp >>> which in turn refers to http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/JavaFXRuntimeInstaller.jar >>> this jar contains a class JavaFXRuntimeInstaller, which contains the download locations for the JavaFX installers: >>> >>> private static final String DEFAULT_I586_URL = "http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe"; >>> private static final String DEFAULT_X64_URL = "http://download.oracle.com/otn-pub/java/javafx/javafx-windows-x64__Vlatest.exe"; >>> >>> using the first URL to continue my explanation: >>> http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe >>> redirects with http code 302 to: https://edelivery.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe >>> which in turn redirects with http code 302 to: http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe?AuthParam=1335709310_1e63393a9975cbe57e4ae096c1380b6b >>> >>> so JavaFXRuntimeInstaller basically downloads the file at DEFAULT_I586_URL to a local file&? executes the local file, but: >>> by default redirects are followed, unless it goes from http to https or vice versa (see http://stackoverflow.com/questions/1884230/java-doesnt-follow-redirect-in-urlconnection), so JavaFXRuntimeInstaller simply downloads the contents of http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe (i.e. nothing)&? then executes the empty downloaded file. This results in the error above saying the file is not a valid Win32 application. >>> >>> So the fix should be as simple as eliminating the redirect to a https URL in the scenario above. >>> >>> Problem 2: open BrickBreaker.html&? click the Webstart link, now the JavaFX 2.0.3 installer is downloaded, instead of the expected JavaFX 2.1.0 one (note that trying to start the embedded JavaFX application does download the JavaFX 2.1.0 installer). I have absolutely no clue why this happens, especially since the encoded jnlp_content of the Webstart link is exactly the same as both the encoded jnlp_content of the embedded JavaFX application&? the external BrickBreaker.jnlp file. >>> >>> Best regards >>> >>>? ? Anthony Vanelverdinghe > From parvathi.somashekar at oracle.com Tue May 1 12:02:56 2012 From: parvathi.somashekar at oracle.com (Paru Somashekar) Date: Tue, 01 May 2012 12:02:56 -0700 Subject: API REVIEW request for RT-19709: API to enable accelerators lazily. Message-ID: <4FA03360.40407@oracle.com> JIRA : http://javafx-jira.kenai.com/browse/RT-19709 API to enable accelerators lazily. Currently accelerators are not invoked when menu items are disabled and are invoked only when the menu items are enabled. Applications need a handler / callback, when a accelerator is invoked, so it can enable or disable the menu item and then the accelerator is fired there after (if the menuitem was enabled.) ---------------------------------------------- Adding a onMenuValidation API that would be called automatically at the same time that onShowing handler is called and when an accelerator is triggered. /** *

Called when a accelerator for the Menuitem is invoked

*/ public static final EventType MENUVALIDATION_EVENT = new EventType(); private ObjectProperty> onMenuValidation; /** * The event handler that is associated with invocation of an accelerator for a MenuItem. This * can happen when a key sequence for an accelerator is pressed. The event handler is also * invoked when onShowing event handler is called. */ public final void setOnMenuValidation(EventHandler value) { onMenuValidationProperty().set( value); } public final EventHandler getOnMenuValidation() { return onMenuValidation == null ? null : onMenuValidation.get(); } public final ObjectProperty> onMenuValidationProperty() { if (onMenuValidation == null) { onMenuValidation = new ObjectPropertyBase>() { @Override protected void invalidated() { eventHandlerManager.setEventHandler(MENUVALIDATION_EVENT, get()); } @Override public Object getBean() { return MenuItem.this; } @Override public String getName() { return "onMenuValidation"; } }; } return onMenuValidation; } From joshua at marinacci.org Tue May 1 12:29:31 2012 From: joshua at marinacci.org (Josh Marinacci) Date: Tue, 1 May 2012 12:29:31 -0700 Subject: Image class and paths relative to classpath In-Reply-To: References: Message-ID: <6378D88FD8DA4460ADBCB6EA8F8D2DC2@marinacci.org> tahnks. I appreciate the update. I found a bug about it on the Jira. Hopefully in 2.2 it will work. I guess I'll have to wait for that to be released before trying to ship a JavaFX version of Leo. The new Canvas API looks interesting as well. - J -- Josh Marinacci joshondesign.com On Tuesday, April 24, 2012 at 8:35 AM, Pedro Duque Vieira wrote: > Hi josh, > > Yes I'm almost finished creating an app that integrates JavaFX with swing, > using a JFXPanel. > Biggest issue I'm having is with threading problems, i.e. concurrency > between javafx app thread and swing EDT. > > As for your drag and drop problem I believe I saw some issue being fixed > that was related to supporting drag and drop on JFXPanel, probably on > Javafx2.2, but the javafx team guys will tell you better. > > Cheers, good luck > > -- > Pedro Duque Vieira > > From richard.bair at oracle.com Tue May 1 13:12:43 2012 From: richard.bair at oracle.com (Richard Bair) Date: Tue, 1 May 2012 13:12:43 -0700 Subject: API REVIEW request for RT-19709: API to enable accelerators lazily. In-Reply-To: <4FA03360.40407@oracle.com> References: <4FA03360.40407@oracle.com> Message-ID: <58DA3CB9-0290-4902-85C1-3D30FF1C2901@oracle.com> > Adding a onMenuValidation API that would be called automatically at the same time that onShowing handler > is called and when an accelerator is triggered. > /** > *

Called when a accelerator for the Menuitem is invoked

> */ > public static final EventType MENUVALIDATION_EVENT = new EventType(); > private ObjectProperty> onMenuValidation; Should it be MENU_VALIDATION_EVENT? Otherwise looked OK to me. Richard From parvathi.somashekar at oracle.com Tue May 1 13:53:40 2012 From: parvathi.somashekar at oracle.com (Paru Somashekar) Date: Tue, 01 May 2012 13:53:40 -0700 Subject: API REVIEW request for RT-19709: API to enable accelerators lazily. In-Reply-To: <58DA3CB9-0290-4902-85C1-3D30FF1C2901@oracle.com> References: <4FA03360.40407@oracle.com> <58DA3CB9-0290-4902-85C1-3D30FF1C2901@oracle.com> Message-ID: <4FA04D54.5070001@oracle.com> Changed it to MENU_VALIDATION_EVENT. thanks, Paru. On 5/1/12 1:12 PM, Richard Bair wrote: >> Adding a onMenuValidation API that would be called automatically at the same time that onShowing handler >> is called and when an accelerator is triggered. >> /** >> *

Called when a accelerator for the Menuitem is invoked

>> */ >> public static final EventType MENUVALIDATION_EVENT = new EventType(); >> private ObjectProperty> onMenuValidation; > Should it be MENU_VALIDATION_EVENT? > > Otherwise looked OK to me. > > Richard From hang.vo at oracle.com Tue May 1 13:48:20 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 01 May 2012 20:48:20 +0000 Subject: hg: openjfx/2.2/controls/rt: 2 new changesets Message-ID: <20120501204822.5CEF6470C6@hg.openjdk.java.net> Changeset: 4f81320ed486 Author: leifs Date: 2012-05-01 13:39 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/4f81320ed486 [TEST ONLY] Fix broken test. ! javafx-ui-controls/test/com/sun/javafx/scene/control/skin/LabeledImplTest.java Changeset: b4d1ce106712 Author: Kinsley Wong Date: 2012-05-01 13:42 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/b4d1ce106712 RT-21117: [Pagination] page indicator count can be done very large, so that selected page indicator is not shown. RT-21119: [Pagination] controls pref size doesn't affect, when it is less, then size of indicators. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/PaginationSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css From hang.vo at oracle.com Tue May 1 16:18:02 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 01 May 2012 23:18:02 +0000 Subject: hg: openjfx/2.2/controls/rt: fix RT-19709 API to enable accelerators lazily. Message-ID: <20120501231804.06B11470C9@hg.openjdk.java.net> Changeset: 9b05b030c354 Author: Paru Somashekar Date: 2012-05-01 16:21 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/9b05b030c354 fix RT-19709 API to enable accelerators lazily. ! javafx-ui-controls/nbproject/project.xml ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/MenuButtonSkinBase.java ! javafx-ui-controls/src/javafx/scene/control/Menu.java ! javafx-ui-controls/src/javafx/scene/control/MenuItem.java From hang.vo at oracle.com Tue May 1 16:33:23 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 01 May 2012 23:33:23 +0000 Subject: hg: openjfx/2.2/controls/rt: 2 new changesets Message-ID: <20120501233324.B276E470CA@hg.openjdk.java.net> Changeset: fea9c6ae21cf Author: Paru Somashekar Date: 2012-05-01 16:31 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/fea9c6ae21cf Backed out changeset 9b05b030c354 ! javafx-ui-controls/nbproject/project.xml ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/MenuButtonSkinBase.java ! javafx-ui-controls/src/javafx/scene/control/Menu.java ! javafx-ui-controls/src/javafx/scene/control/MenuItem.java Changeset: 69d6942a96f6 Author: Paru Somashekar Date: 2012-05-01 16:34 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/69d6942a96f6 fix RT-19709 API to enable accelerators lazily. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/MenuButtonSkinBase.java ! javafx-ui-controls/src/javafx/scene/control/Menu.java ! javafx-ui-controls/src/javafx/scene/control/MenuItem.java From hang.vo at oracle.com Tue May 1 16:48:03 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 01 May 2012 23:48:03 +0000 Subject: hg: openjfx/2.2/controls/rt: RT-21166: Making a Tab closeable has no effect until you mouseover the Tab. Message-ID: <20120501234804.50713470CC@hg.openjdk.java.net> Changeset: 23f0508a4f05 Author: Kinsley Wong Date: 2012-05-01 16:44 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/23f0508a4f05 RT-21166: Making a Tab closeable has no effect until you mouseover the Tab. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/TabPaneSkin.java From hang.vo at oracle.com Tue May 1 21:03:51 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 02 May 2012 04:03:51 +0000 Subject: hg: openjfx/2.2/controls/rt: RT-18097: ensure default property value and initial css value agree. Added unit tests Message-ID: <20120502040353.2BE7E470D9@hg.openjdk.java.net> Changeset: 79b5c12b47ab Author: David Grieve Date: 2012-05-01 23:46 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/79b5c12b47ab RT-18097: ensure default property value and initial css value agree. Added unit tests ! javafx-ui-common/src/com/sun/javafx/css/StyleableProperty.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/src/javafx/scene/layout/GridPane.java ! javafx-ui-common/src/javafx/scene/shape/Line.java ! javafx-ui-common/src/javafx/scene/shape/Path.java ! javafx-ui-common/src/javafx/scene/shape/Polyline.java ! javafx-ui-common/src/javafx/scene/shape/Shape.java ! javafx-ui-common/test/unit/com/sun/javafx/css/StyleablePropertyTest.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxListCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxTableCell.java ! javafx-ui-controls/src/javafx/scene/chart/Axis.java ! javafx-ui-controls/src/javafx/scene/control/Accordion.java ! javafx-ui-controls/src/javafx/scene/control/Cell.java ! javafx-ui-controls/src/javafx/scene/control/Control.java ! javafx-ui-controls/src/javafx/scene/control/Hyperlink.java ! javafx-ui-controls/src/javafx/scene/control/Label.java ! javafx-ui-controls/src/javafx/scene/control/Labeled.java ! javafx-ui-controls/src/javafx/scene/control/MenuBar.java ! javafx-ui-controls/src/javafx/scene/control/ProgressBar.java ! javafx-ui-controls/src/javafx/scene/control/ProgressIndicator.java ! javafx-ui-controls/src/javafx/scene/control/RadioButton.java ! javafx-ui-controls/src/javafx/scene/control/ScrollBar.java ! javafx-ui-controls/src/javafx/scene/control/ScrollPane.java ! javafx-ui-controls/src/javafx/scene/control/Separator.java ! javafx-ui-controls/src/javafx/scene/control/SplitPane.java ! javafx-ui-controls/src/javafx/scene/control/ToggleButton.java ! javafx-ui-controls/src/javafx/scene/control/ToolBar.java ! javafx-ui-controls/test/javafx/scene/control/ControlTest.java From hang.vo at oracle.com Tue May 1 22:48:12 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 02 May 2012 05:48:12 +0000 Subject: hg: openjfx/2.2/controls/rt: fix broken unit test Message-ID: <20120502054814.6F500470DC@hg.openjdk.java.net> Changeset: 8196e66ed67a Author: Paru Somashekar Date: 2012-05-01 22:46 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/8196e66ed67a fix broken unit test ! javafx-ui-controls/src/javafx/scene/control/Menu.java From hang.vo at oracle.com Wed May 2 02:19:01 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 02 May 2012 09:19:01 +0000 Subject: hg: openjfx/2.2/graphics/rt: RT-21287: restricted one DataFormat per mime type. Fixes also RT-20960. Message-ID: <20120502091908.CF6C6470DF@hg.openjdk.java.net> Changeset: 4eb3bdceece6 Author: Pavel Safrata Date: 2012-05-02 11:03 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/4eb3bdceece6 RT-21287: restricted one DataFormat per mime type. Fixes also RT-20960. ! javafx-ui-common/src/javafx/scene/input/DataFormat.java ! javafx-ui-common/test/unit/javafx/scene/input/DataFormatTest.java From artem.ananiev at oracle.com Wed May 2 04:04:40 2012 From: artem.ananiev at oracle.com (Artem Ananiev) Date: Wed, 02 May 2012 15:04:40 +0400 Subject: API change RT-19955: Configuring a PopupWindow so that it consumes the event used for hiding In-Reply-To: <4F9A8BC7.7000909@media-interactive.de> References: <4F9A8279.7070708@oracle.com> <4F9A8BC7.7000909@media-interactive.de> Message-ID: <4FA114C8.6050504@oracle.com> On 4/27/2012 4:06 PM, Werner Lehmann wrote: > Hi Lubo, > > why do you think that the name is ambiguous? Seems clear to me. Some > other thoughts: I don't remember how exactly the auto-hide feature for popups is implemented. Is it sometimes triggered from Glass ("ungrab" event)? What event will be consumed in this case? Are we confident we'll be able to implement this property? If a popup is auto-hidden from the ungrab event handler, there may be no direct connection between this event and the mouse/key/etc. event to consume. > What happens if I have two different popups showing at the same time, > with different values for consumeAutoHidingEvents? This seems to > indicate that this would rather be an application setting. > > On the other hand, if one of these two popups is a hint window it should > never consume such events. Maybe the event should be consumed if at > least one visible popup demands that. > > Also, please allow me to mention RT-19953 once more which is about > autoHide not working with JFXPanel. This issue will be quite visible in > our Swing/FX application in autumn this year unless it gets fixed until > then. I have just targeted it to 2.2, however right now I can't guarantee it will be really done in 2.2 time frame... Thanks, Artem > Rgds > Werner > > On 27.04.2012 13:26, Lubomir Nerad wrote: >> to cover both (and any other future) cases. Unfortunately the >> "consumeAutoHidingEvents" seems ambiguous to me and I can't think of a >> better name. >> >> Do you think that "consumeAutoHidingEvents" would do? Do you have a >> better suggestion? From hang.vo at oracle.com Wed May 2 04:48:14 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 02 May 2012 11:48:14 +0000 Subject: hg: openjfx/2.2/graphics/rt: 4 new changesets Message-ID: <20120502114817.BC831470E1@hg.openjdk.java.net> Changeset: e6bd9279347c Author: Martin Sladecek Date: 2012-05-02 10:10 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/e6bd9279347c [JAVADOC] RT-19286 added null check to Scene.root property to avoid subsequent NPEs in pulse processing. ! javafx-ui-common/src/javafx/scene/Scene.java Changeset: 5e7b9296733b Author: Martin Sladecek Date: 2012-05-02 10:10 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/5e7b9296733b Automated merge with file:///home/martin/work/javafx/jfx-22-sync/rt ! javafx-ui-common/src/javafx/scene/Scene.java Changeset: 59e272db3bc6 Author: Martin Sladecek Date: 2012-05-02 10:17 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/59e272db3bc6 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/graphics/jfx/rt ! javafx-ui-common/src/javafx/scene/Scene.java Changeset: ea84eaa07624 Author: Martin Sladecek Date: 2012-05-02 13:40 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/ea84eaa07624 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/graphics/jfx/rt From goddard at seznam.cz Wed May 2 05:26:29 2012 From: goddard at seznam.cz (goddard at seznam.cz) Date: Wed, 02 May 2012 14:26:29 +0200 (CEST) Subject: =?us-ascii?Q?Arc=20shape?= Message-ID: <126095.23779.17351-6492-723390829-1335961588@seznam.cz> Hi, I've got this constructor for an arc: Arc a = new Arc(100f, 100f, 50f, 50f, 0f, 120f); //cX, cY, rX, rY, angle, length That produces the visual output you can see in the attached screenshot. My questions are: - if the 0 degree starts at X axis, then why? - if an arc is extended counter-clockwise, then why? Does it ignore the startAngle completely? Arc a2 = new Arc(200f, 100f, 50f, 50f, 120f, 240f); //produces an arc of length 240, instead of 120? There're other things/properties that are designed to use the clockwise system (top, right, bottom, left) in JavaFX, therefore this makes a programmer to "switch" between these two concepts, in addition to all the other things one must remember. I think we had similar discussion during JavaFX 1.2 or 1.3 development... Regards, Jiri From anton.tarasov at oracle.com Wed May 2 10:40:27 2012 From: anton.tarasov at oracle.com (Anton V. Tarasov) Date: Wed, 02 May 2012 21:40:27 +0400 Subject: API review request for RT-18980 Message-ID: <4FA1718B.6080909@oracle.com> Hi All, Please review the new API for WebView [1] JIRA: http://javafx-jira.kenai.com/browse/RT-18980 It introduces History class which could be used to view the browser session history and navigate through it. The class provides quite basic functionality enough to meet the requirements. The javadoc as a draft and so it may be corrected lately. Thanks, Anton. [1] package javafx.scene.web; import javafx.collections.ObservableList; import java.net.URL; import java.util.Date; /** * The {@code History} class represents a session history associated with * a {@link WebEngine} instance. * * There is a single instance of this class per {@code WebEngine} that * can be obtained via the {@link WebEngine#getHistory()} method. * * The {@link #asList()} method provides a view of the history in terms of a * list of entries. Each {@link Entry} represents a visited page and provides * access to relevant page info such as URL, title and visited date. * * The history and thus the list of entries change as {@code WebEngine} navigates * across the web. It may expand or shrink depending on browser actions. These * changes can be listened to with help of the {@link javafx.collections.ObservableList} * API that the list exposes. * * There is a notion of the current entry which is associated with the page currently * visited by {@code WebEngine}. Its index in the history list can be obtained via * a call to the {@link #getCurrentIndex()} method. The current index then can be used * to navigate to any entry in the history with help of the {@link #go(int)} method. * The simple {@link #goBack()} and {@link #goForward()} methods are convenient * methods to navigate one entry back and forward respectively. * * It is possible to limit the maximum history length, which is the length of the * history list, by means of the {@link #setMaxLength(int)} method. */ public final class History { /** * The {@code Entry} class represents a single entry in the session history. * An entry instance is associated with a visited page. */ public final class Entry { /** * Returns the {@link java.net.URL} of the page. * * @return the url of the page */ public URL getUrl(); /** * Returns the title of the page. * * @return the title of the page */ public String getTitle(); /** * Returns the {@link java.util.Date} the page was last visited. * * @return last visited date */ public Date getLastVisitedDate(); } /** * Returns the index of the current {@code Entry} in the history * in the range of [0..length-1]. The current entry is the entry * that corresponds to the currently displayed page. * * @return index of the current {@code Entry} in the history */ public int getCurrentIndex(); /** * Returns an unmodifiable observable list of all entries in the history. * Changes in the history, such as addition or removal of entries, cause * changes in the list. * * @return list of all entries in the history */ public ObservableList asList(); /** * Causes {@link WebView} to navigate to the page corresponding to * the {@code Entry} within the specified position relative to the current * entry. Negative (positive) {@code shift} value specifies the position * left (right) to the current entry. For instance, -1 points to the previous * entry and 1 points to the next entry. * * Zero {@code shift} value is silently ignored (no-op). * * The effective entry position should belong to the rage of [0..length-1], * otherwise IndexOutOfBoundsException is thrown. * * @param shift negative (positive) value specifies a position relative * to the left (right) from the current entry, zero value causes * no effect * @throws IndexOutOfBoundsException if the effective entry position is out * of range */ public void go(int shift) throws IndexOutOfBoundsException; /** * Causes {@link WebView} to navigate to the previous page in the * history. A call to this method is equivalent to a {@code go(-1)} call. * If the current entry is the first entry in the list, the call has no effect. * * @return true if the previous entry exists in the list, otherwise false */ public boolean goBack(); /** * Causes {@link WebView} to navigate to the next page in the history. * A call to this method is equivalent to a {@code go(1)} call. * If the current entry is the last entry in the list, the call has no effect. * * @return true if the next entry exists in the list, otherwise false */ public boolean goForward(); /** * Specifies the maximum length of the history list. When the list reaches * its maximum and a subsequent entry is added to it, the first entry gets * removed automatically. * * By default the maximum length is set to 100. * * @param length maximum length of the history list * @see {@link #getMaxLength()} */ public void setMaxLength(int length); /** * Returns the maximum length of the history list. * * By default the maximum length is set to 100. * * @return maximum length of the history list * @see {@link #setMaxLength()} */ public int getMaxLength(); } From artem.ananiev at oracle.com Wed May 2 07:07:25 2012 From: artem.ananiev at oracle.com (Artem Ananiev) Date: Wed, 02 May 2012 18:07:25 +0400 Subject: Image class and paths relative to classpath In-Reply-To: <6378D88FD8DA4460ADBCB6EA8F8D2DC2@marinacci.org> References: <6378D88FD8DA4460ADBCB6EA8F8D2DC2@marinacci.org> Message-ID: <4FA13F9D.7080301@oracle.com> On 5/1/2012 11:29 PM, Josh Marinacci wrote: > tahnks. I appreciate the update. I found a bug about it on the Jira. > Hopefully in 2.2 it will work. I guess I'll have to wait for that to > be released before trying to ship a JavaFX version of Leo. The new > Canvas API looks interesting as well. JavaFX 2.2 builds are already available for download: http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.html Please, try your DnD test and check if it's resolved and file a bug if it isn't. When the final 2.2 build is out, it will be too late to report problems and want them to be resolved in 2.2 :) Thanks, Artem > - J From richard.bair at oracle.com Wed May 2 07:12:10 2012 From: richard.bair at oracle.com (Richard Bair) Date: Wed, 2 May 2012 07:12:10 -0700 Subject: API review request for RT-18980 In-Reply-To: <4FA1718B.6080909@oracle.com> References: <4FA1718B.6080909@oracle.com> Message-ID: Hi Anton, Looks cool! Some thoughts: - What if we call it WebHistory? I've been thinking we might add a "History" class at the app framework level at some point such that your app can have navigation history as well, so it would be nice to avoid a potential name class. Since we have WebView & WebEngine already, WebHistory seems appropriate. - Can the URL, Title, or Last Visited Date of an Entry change? That is, are they immutable properties? If not, we need to add some read only property methods so we can listen to changes - currentIndexProperty is missing (should be read only property) so that we can observe changes - Should rename asList method. This is a "getter", but doesn't follow the getter naming convention (so tools won't know how to use this). It seems like "getEntries" is the right name for it? - maxLengthProperty() should exist and be fully writable - the go(shift) method is interesting, just wondering why it is a shift vs. an index. Not important though I'm just curious. Thanks! Richard On May 2, 2012, at 10:40 AM, Anton V. Tarasov wrote: > Hi All, > > Please review the new API for WebView [1] > > JIRA: http://javafx-jira.kenai.com/browse/RT-18980 > > It introduces History class which could be used to view the browser session history and navigate through it. > The class provides quite basic functionality enough to meet the requirements. > > The javadoc as a draft and so it may be corrected lately. > > Thanks, > Anton. > > [1] > > package javafx.scene.web; > > import javafx.collections.ObservableList; > import java.net.URL; > import java.util.Date; > > /** > * The {@code History} class represents a session history associated with > * a {@link WebEngine} instance. > * > * There is a single instance of this class per {@code WebEngine} that > * can be obtained via the {@link WebEngine#getHistory()} method. > * > * The {@link #asList()} method provides a view of the history in terms of a > * list of entries. Each {@link Entry} represents a visited page and provides > * access to relevant page info such as URL, title and visited date. > * > * The history and thus the list of entries change as {@code WebEngine} navigates > * across the web. It may expand or shrink depending on browser actions. These > * changes can be listened to with help of the {@link javafx.collections.ObservableList} > * API that the list exposes. > * > * There is a notion of the current entry which is associated with the page currently > * visited by {@code WebEngine}. Its index in the history list can be obtained via > * a call to the {@link #getCurrentIndex()} method. The current index then can be used > * to navigate to any entry in the history with help of the {@link #go(int)} method. > * The simple {@link #goBack()} and {@link #goForward()} methods are convenient > * methods to navigate one entry back and forward respectively. > * > * It is possible to limit the maximum history length, which is the length of the > * history list, by means of the {@link #setMaxLength(int)} method. > */ > public final class History { > > /** > * The {@code Entry} class represents a single entry in the session history. > * An entry instance is associated with a visited page. > */ > public final class Entry { > > /** > * Returns the {@link java.net.URL} of the page. > * > * @return the url of the page > */ > public URL getUrl(); > > /** > * Returns the title of the page. > * > * @return the title of the page > */ > public String getTitle(); > > /** > * Returns the {@link java.util.Date} the page was last visited. > * > * @return last visited date > */ > public Date getLastVisitedDate(); > } > > /** > * Returns the index of the current {@code Entry} in the history > * in the range of [0..length-1]. The current entry is the entry > * that corresponds to the currently displayed page. > * > * @return index of the current {@code Entry} in the history > */ > public int getCurrentIndex(); > > /** > * Returns an unmodifiable observable list of all entries in the history. > * Changes in the history, such as addition or removal of entries, cause > * changes in the list. > * > * @return list of all entries in the history > */ > public ObservableList asList(); > > /** > * Causes {@link WebView} to navigate to the page corresponding to > * the {@code Entry} within the specified position relative to the current > * entry. Negative (positive) {@code shift} value specifies the position > * left (right) to the current entry. For instance, -1 points to the previous > * entry and 1 points to the next entry. > * > * Zero {@code shift} value is silently ignored (no-op). > * > * The effective entry position should belong to the rage of [0..length-1], > * otherwise IndexOutOfBoundsException is thrown. > * > * @param shift negative (positive) value specifies a position relative > * to the left (right) from the current entry, zero value causes > * no effect > * @throws IndexOutOfBoundsException if the effective entry position is out > * of range > */ > public void go(int shift) throws IndexOutOfBoundsException; > > /** > * Causes {@link WebView} to navigate to the previous page in the > * history. A call to this method is equivalent to a {@code go(-1)} call. > * If the current entry is the first entry in the list, the call has no effect. > * > * @return true if the previous entry exists in the list, otherwise false > */ > public boolean goBack(); > > /** > * Causes {@link WebView} to navigate to the next page in the history. > * A call to this method is equivalent to a {@code go(1)} call. > * If the current entry is the last entry in the list, the call has no effect. > * > * @return true if the next entry exists in the list, otherwise false > */ > public boolean goForward(); > > /** > * Specifies the maximum length of the history list. When the list reaches > * its maximum and a subsequent entry is added to it, the first entry gets > * removed automatically. > * > * By default the maximum length is set to 100. > * > * @param length maximum length of the history list > * @see {@link #getMaxLength()} > */ > public void setMaxLength(int length); > > /** > * Returns the maximum length of the history list. > * > * By default the maximum length is set to 100. > * > * @return maximum length of the history list > * @see {@link #setMaxLength()} > */ > public int getMaxLength(); > } > > From richard.bair at oracle.com Wed May 2 08:41:07 2012 From: richard.bair at oracle.com (Richard Bair) Date: Wed, 2 May 2012 08:41:07 -0700 Subject: Deployment In-Reply-To: <4F918F1A.9050209@shotrunner.com> References: <4F90FA6A.8040801@oracle.com> <4F90FC3D.5080701@tbee.org> <4F9102F9.2020509@oracle.com> <26B876EE-4BE9-4D87-82EB-A9E27C7513AF@gmail.com> <4F918F1A.9050209@shotrunner.com> Message-ID: <8D826470-F7D5-4E1F-BDD1-84A86AE41F8E@oracle.com> Hey Cameron, sorry this was stuck in the queue, I think the problem was you needed to be registered on the mailing list before posting. Cheers Richard On Apr 20, 2012, at 9:30 AM, Cameron O'Rourke wrote: > Daniel, excellent write-up (but then I always appreciate your writings > -- Thank You for your excellent blog, BTW.) You asked us to sound-off, > so: Your option #1 is exactly what I'm looking to do, although right now > my plan is to do something more like #3, along the lines of what was > done with the FX Experience Tools ( > http://fxexperience.com/2012/03/packaging-javafx-applications-as-native/ > ) My focus is desktop apps, not interested in running inside of a > browser at all. It would be nice to have a standard, documented > procedure for this that doesn't require a $2000 packaging tool. > > The bigger challenge, I'm finding, is that once I'm running on the > desktop out of a JAR file or from an Application Bundle on the Mac, I > have to figure out where my resources are, where I can write to the file > system, what system resources and apps can I access (Growl, etc.) > > Cheers, > Cameron > > > Daniel Zwolenski wrote: >> Perhaps we could collectively try and define what the ideal user experience would be in this area and then Igor and Richard can tell us the hurdles that prevent this experience from happening? >> >> Below are the three major deployment scenarios I believe we'd like to have in our arsenal. Please add/correct based on your opinions. >> >> 1. Web-based install of desktop app >> 2. Web-based launch of Applet >> 3. Offline distributable of desktop app >> >> For all of these I believe we want a single, minimal-click, minimal-dialog process that installs (if needed), the JRE, JavaFX and the custom app being run. It is not three installs or even two to the user, they are installing one thing only - my custom app. The fact that Java or JFX is needed is not something they want to be overly bothered with. One, end-to-end, simple seamless flow is what the users want. >> >> I'll get the ball rolling with my view of the ultimate flow for option 1. In this scenario we are trying to achieve a pretty similar experience to what you get when installing an app on a smart phone. Currently webstart is the closest thing to this but it has the flaw that Java needs to be manually installed first. I suggest a plugin that does a smart install of everything. This plugin may well need to be different to the 'applet' plugin, I'm not sure. If it does however, so be it. >> >> As with normal webstart (and smart phones), option 1 is not so much a webapp as a web-based 'install' of a desktop app - once locally installed it can run offline. >> >> Here's the sort of flow I'd like to see if the user doesn't have java installed: >> >> - User navigates to the URL for the app in their favorite browser >> - Browser Plugin is triggered >> - Dialog 1: browser's standard, "do you want to install plugin" >> - Plugin is installed and runs >> - Plugin searches for existing JRE, finds none >> - Dialog 2: says: >> >> Installing "Daniel's cool application" >> Developed by Zen Java (more info...) >> Java will be installed to run this application (more info...) >> This program requires the following permissions: >> * Read and write files on your computer >> * Make network connections >> [x] Add shortcut to start menu >> [x] Add shortcut to desktop >> >> - User hits 'Install' (or 'Cancel' to abort) >> >> - Dialog 3: Combined T&C page for Java + JRE + my custom T&C (preferably one dialog with sections, or as close-to as legals will allow) >> >> - Plugin detects system (not browser) OS and 32 vs 64bit (don't ask user, 90% don't know) >> - JRE+JFX is downloaded and installed (no further input dialogs shown, just a progress indicator) >> - My custom jars (and any relevant bundled native files) are downloaded (same progress indicator as when installing jre) >> - Shortcuts are added to the relevant places >> - Final dialog: Daniel's cool application is now installed. Would you like to launch it now? >> >> From this point on, the user can launch the app from the start menu. A browser is no longer needed (or wanted). Ideally when the app is run it first checks for a new version of Java, JFX, or the custom app online and gives the user the option to upgrade (I feel they should be able to decline). This check is done now by a local pre-launcher, ie the browser/plugin is not involved from here in. >> >> As far as signing/permissions, I think it needs to be simple. Permissions should be selected by the developer and listed for the user in the same simple approach that smart phones use (eg "write to files on your computer"). Getting a digital certificate is a pain so if there was a way to avoid this or an easier way to do this it would be great - bonus points. >> >> I would very much prefer it if the automatic Java updates weren't going on all the time in the background. It would be best if the version was just checked on app startup and the user given the option to upgrade. Then they have context. The random 'update your java now' dialog that pops up add-hoc freaks out most users and makes the others angry (including me!) >> >> If in the above flow, a suitable version of java or jfx was found, then the flow would be the same. The difference would be only that on the second dialog, instead of saying "Java will be installed" it says "Using already installed Java" and the 'more info' link then shows details on where it's installed, etc. Then the T&C section would just leave out the Terms for the already installed stuff. Similar if the JRE/JFX needs to be upgraded. >> >> That would be the optimal UE for option 1 for me. I'll stop there to see what kind of response this gets but options 2 and 3 would take similar tacts. >> >> I'm interested in hearing from the JFX guys what would prevent this from being implemented. Why cant we have this? Are there technical limitations, do you disagree that this is important or would be a better flow, or is it just too much effort? >> >> Just as importantly I'm interested in hearing from all the developers out there. Is this your ideal scenario, is this important to you etc? I raised this issue months ago and the response from the jfx guys was that non-applet, seamless install was too small a use case to warrant the effort needed. I didn't hear anyone chime in to the contrary back then so I don't blame the JFX guys for not moving much in this space. >> >> Get vocal (on solutions, not just problems). If you want something like the above, say so loud and clear. If you want something different, say that even louder so the rest of us can consider that too and back it if appropriate. There's a top notch team and community at the ready here and for my money this is a make-or-break issue. Let's work this one out together. >> >> Cheers, >> Dan >> >> >> >> >> >> >> >> >> >> On 20/04/2012, at 2:32 PM, Igor Nekrestyanov wrote: >> >>> On 4/19/12 11:03 PM, Tom Eugelink wrote: >>>> Ok. How about the "there is no standard way to distribute a stand alone JavaFX application"? Create a JIRA issue? >>> Could you please be more specific? >>> >>> What is "standard way" and how do you expect to distribute this package? >>> Is it different problem from distributing java application (especially once javafx runtime will be part of the JRE)? >>> Do you expect to application "install" on the user system or run from the package? >>> Are you thinking about shipping your application to the App Store? >>> >>> We might have related feature request already: >>> http://javafx-jira.kenai.com/browse/RT-19446 >>> "Add ability to co-bundle Java + JavaFX + App into a single native executable" >>> >>> It is on 2.2 list right now but it is not clear if we can support other native packages for platforms other than Mac yet >>> (see discussion in the JIRA). >>> >>> -igor >>> >> From alexander.kouznetsov at oracle.com Wed May 2 08:49:10 2012 From: alexander.kouznetsov at oracle.com (Alexander Kouznetsov) Date: Wed, 02 May 2012 19:49:10 +0400 Subject: Multiple-click events In-Reply-To: <4F9E86A8.2060400@oracle.com> References: <4F9AB876.6030508@oracle.com> <353535825-1335540238-cardhu_decombobulator_blackberry.rim.net-135158866-@b1.c12.bise6.blackberry> <180971B9-6797-414A-A5F2-052447A52974@reportmill.com> <4F9AC4A5.5030408@oracle.com> <1470656124-1335543352-cardhu_decombobulator_blackberry.rim.net-1895564359-@b1.c12.bise6.blackberry> <4F9AC6A7.6050702@oracle.com> <872024149-1335543700-cardhu_decombobulator_blackberry.rim.net-871228946-@b1.c12.bise6.blackberry> <4F9AC87F.6090404@oracle.com> <1296427510-1335544427-cardhu_decombobulator_blackberry.rim.net-36084016-@b1.c12.bise6.blackberry> <4F9E86A8.2060400@oracle.com> Message-ID: <4FA15776.5030807@oracle.com> Hi Pavel, I believe ClickSequenceFinished is an interesting event that may be useful. I have two usecase: 1. Presentation app * one click to proceed to next slide * double-click to enter fullscreen mode 2. MediaPlayer * one click to pause * double-click to enter fullscreen mode Actually second example works without this event (by pausing on first click and playing again on second one). But the first one doesn't. Best regards, Alexander Kouznetsov On 30.04.2012 16:33, Pavel Safrata wrote: > Hello, > we discussed the matter again, considering all the raised issues. We > agree that the delay really is a problem. We cannot find any common > use-case in the native environments that would do an action on > single-click that wouldn't be done as part of a double click. I think > this pattern should be strongly discouraged, because it will make the > UI feel pretty laggy (and thus FX seem slow). Default timeout on > Windows is over half a second and can be increased by user to more > than two and a half. Waiting any noticeable time for a click to be > recognized would bother almost everybody I think, even the half-second > is a multiple of the recommended reaction time. > > We're not happy this is requested for our internal tools. We can, > however, fulfill the request by a new event, something like > ClickSequenceFinished, but we don't want to promote this so there > would be no setOn* method. It would be possible for the special cases > to add a handler for this event to find out when user finished clicking. > > Is that acceptable? > Thanks, > Pavel > > On 27.4.2012 18:33, kimtopley at gmail.com wrote: >> Selection was only an example. The point is that there are cases >> where the single-click response will be required immediately, while a >> different double-click action is required as and when the double >> click occurs. For clarity, it would be better if both actions were >> triggered from the same event handler, as they are today. This change >> forces me to rewrite my code so that the single-click action can be >> called both on mouse released and on mouse clicked. Having an opt-in >> for the new behavior would also avoid breaking existing code. >> >> Sent from my Verizon Wireless BlackBerry >> >> -----Original Message----- >> From: Alexander Kouznetsov >> Date: Fri, 27 Apr 2012 20:25:35 >> To: >> Cc: Jeff Martin; Pavel >> Safrata;; >> openjfx-dev at openjdk.java.net; VIENOT, >> SIMON; Richard Bair >> Subject: Re: Multiple-click events >> >> Usually selection occurs on mousePressed or even on mouseEntered events. >> mouseReleased and mouseClicked events may arrive much later because you >> can hold the mouse button pressed. >> >> Best regards, >> Alexander Kouznetsov >> >> >> On 27.04.2012 20:21, kimtopley at gmail.com wrote: >>> The user will be able to tell that I did that, because the first >>> click will be slower to arrive than it otherwise would have been, in >>> the case where the user just clicks once, right? So now there is a >>> "long" delay after the first click when the user sees nothing >>> happening at all. >>> >>> Sent from my Verizon Wireless BlackBerry >>> >>> -----Original Message----- >>> From: Alexander Kouznetsov >>> Date: Fri, 27 Apr 2012 20:17:43 >>> To: >>> Cc: Jeff Martin; Pavel >>> Safrata;; >>> openjfx-dev at openjdk.java.net; VIENOT, >>> SIMON; Richard Bair >>> Subject: Re: Multiple-click events >>> >>> I don't see any problem here. You can select it on first click or on >>> second click - that is still the same place. >>> >>> Best regards, >>> Alexander Kouznetsov >>> >>> >>> On 27.04.2012 20:15, kimtopley at gmail.com wrote: >>>> That doesn't seem right to me. If I want to take one action on >>>> single click (eg select a row) and another on double click (eg open >>>> the row content in another editor), I will be forced to implement >>>> one of those actions when processing mouse released and the other >>>> in mouse clicked, whereas today that code would all be in the same >>>> place. For this use case, shouldn't it be possible to opt out of >>>> this behavior? >>>> >>>> Sent from my Verizon Wireless BlackBerry >>>> >>>> -----Original Message----- >>>> From: Alexander Kouznetsov >>>> Date: Fri, 27 Apr 2012 20:09:09 >>>> To: Jeff Martin >>>> Cc:; Pavel >>>> Safrata;; >>>> openjfx-dev at openjdk.java.net; VIENOT, >>>> SIMON; Richard Bair >>>> Subject: Re: Multiple-click events >>>> >>>> This code is something we want to avoid. >>>> >>>> If people want to handle first click without any delays that can just >>>> handle mouseReleased event. >>>> >>>> Best regards, >>>> Alexander Kouznetsov >>>> >>>> >>>> On 27.04.2012 19:51, Jeff Martin wrote: >>>>> It seems a little dangerous to arbitrarily delay all initial mouse >>>>> clicks. Does Swing do anything like this? I've never run into a >>>>> problem with processing both single and double clicks, but if it >>>>> was an issue, isn't there some kind of event peek that could >>>>> easily be done: >>>>> >>>>> if(mouseEvent.getClickCount()==1) { >>>>> Thread.sleep(200); >>>>> if(EventDispatcher.peek(MouseEvent.MOUSE_CLICKED!=null) >>>>> return; >>>>> < ? handle single click normally ?> >>>>> } >>>>> >>>>> If that isn't there, could that be added instead? >>>>> >>>>> jeff >>>>> >>>>> >>>>> On Apr 27, 2012, at 10:23 AM, kimtopley at gmail.com wrote: >>>>> >>>>>> Would it be possible to make this configurable, maybe at the >>>>>> Scene level? In some cases, a single click is all that's required >>>>>> and the delay waiting for a second click that means nothing more >>>>>> to the application is unnecessary. >>>>>> >>>>>> >>>>>> Sent from my Verizon Wireless BlackBerry >>>>>> >>>>>> -----Original Message----- >>>>>> From: Pavel Safrata >>>>>> Sender: openjfx-dev-bounces at openjdk.java.net >>>>>> Date: Fri, 27 Apr 2012 17:17:10 >>>>>> To: openjfx-dev at openjdk.java.net >>>>>> Cc: VIENOT, SIMON; Alexander >>>>>> Kouznetsov; Richard >>>>>> Bair >>>>>> Subject: Multiple-click events >>>>>> >>>>>> Hello, >>>>>> currently we deliver MOUSE_CLICKED event any time a node was >>>>>> pressed and >>>>>> released by mouse; if the next press happens fast enough and near >>>>>> enough, we increase the clickCount number for the events. There are >>>>>> requests to make a standalone single-click distinguishable from a >>>>>> first >>>>>> click of a double-click (and so on). >>>>>> >>>>>> After some discussion we concluded that the cleanest approach >>>>>> would be >>>>>> somewhat backward incompatible - we propose to generate the click >>>>>> event >>>>>> only when we are sure that there is no next click. In other >>>>>> words, the >>>>>> partial clicks would not be delivered at all, the final click >>>>>> would be a >>>>>> bit delayed. The pressed/released events would of course be still >>>>>> delivered normally, with the correct clickCount value. >>>>>> >>>>>> Any objections? >>>>>> >>>>>> Thanks, >>>>>> Pavel >>>>>> From jeff at reportmill.com Wed May 2 09:06:15 2012 From: jeff at reportmill.com (Jeff Martin) Date: Wed, 2 May 2012 11:06:15 -0500 Subject: Arc shape In-Reply-To: <126095.23779.17351-6492-723390829-1335961588@seznam.cz> References: <126095.23779.17351-6492-723390829-1335961588@seznam.cz> Message-ID: I think rotation is following the right hand coordinate system (or right hand thumb rule) with positive z coming out of the screen. The StartAngle also seems to be working correctly according to a sanity test I just did. The start angle defines where the angle starts so it doesn't effect (and shouldn't be subtracted from) the arc length. jeff On May 2, 2012, at 7:26 AM, goddard at seznam.cz wrote: > Hi, > > I've got this constructor for an arc: > > Arc a = new Arc(100f, 100f, 50f, 50f, 0f, 120f); //cX, cY, rX, rY, angle, > length > > That produces the visual output you can see in the attached screenshot. > My questions are: > - if the 0 degree starts at X axis, then why? > - if an arc is extended counter-clockwise, then why? > > Does it ignore the startAngle completely? > > Arc a2 = new Arc(200f, 100f, 50f, 50f, 120f, 240f); //produces an arc of length 240, instead of 120? > > There're other things/properties that are designed to use the clockwise system > (top, right, bottom, left) in JavaFX, therefore this makes a programmer to > "switch" between these two concepts, in addition to all the other things one > must remember. > I think we had similar discussion during JavaFX 1.2 or 1.3 development... > > Regards, Jiri From mp at jugs.org Wed May 2 09:17:19 2012 From: mp at jugs.org (Dr. Michael Paus) Date: Wed, 02 May 2012 18:17:19 +0200 Subject: Arc shape In-Reply-To: References: <126095.23779.17351-6492-723390829-1335961588@seznam.cz> Message-ID: <4FA15E0F.8080704@jugs.org> But if z would come out of the screen and x is to the right, then y would be going up according to the right hand rule. Am 02.05.2012 18:06, schrieb Jeff Martin: > I think rotation is following the right hand coordinate system (or right hand thumb rule) with positive z coming out of the screen. > > The StartAngle also seems to be working correctly according to a sanity test I just did. The start angle defines where the angle starts so it doesn't effect (and shouldn't be subtracted from) the arc length. > > jeff > > On May 2, 2012, at 7:26 AM, goddard at seznam.cz wrote: > >> Hi, >> >> I've got this constructor for an arc: >> >> Arc a = new Arc(100f, 100f, 50f, 50f, 0f, 120f); //cX, cY, rX, rY, angle, >> length >> >> That produces the visual output you can see in the attached screenshot. >> My questions are: >> - if the 0 degree starts at X axis, then why? >> - if an arc is extended counter-clockwise, then why? >> >> Does it ignore the startAngle completely? >> >> Arc a2 = new Arc(200f, 100f, 50f, 50f, 120f, 240f); //produces an arc of length 240, instead of 120? >> >> There're other things/properties that are designed to use the clockwise system >> (top, right, bottom, left) in JavaFX, therefore this makes a programmer to >> "switch" between these two concepts, in addition to all the other things one >> must remember. >> I think we had similar discussion during JavaFX 1.2 or 1.3 development... >> >> Regards, Jiri -- -------------------------------------------------------------------------------------- Dr. Michael Paus, Chairman of the Java User Group Stuttgart e.V. (JUGS). For more information visit www.jugs.de. From jeff at reportmill.com Wed May 2 09:42:50 2012 From: jeff at reportmill.com (Jeff Martin) Date: Wed, 2 May 2012 11:42:50 -0500 Subject: Arc shape In-Reply-To: <4FA15E0F.8080704@jugs.org> References: <126095.23779.17351-6492-723390829-1335961588@seznam.cz> <4FA15E0F.8080704@jugs.org> Message-ID: Good point. :-). I'm not even sure which way the z-axis goes. Is there a document on the JavaFX coordinate system? jeff On May 2, 2012, at 11:17 AM, Dr. Michael Paus wrote: > But if z would come out of the screen and x is to the right, then y would be going up according to the right hand rule. > > Am 02.05.2012 18:06, schrieb Jeff Martin: >> I think rotation is following the right hand coordinate system (or right hand thumb rule) with positive z coming out of the screen. >> >> The StartAngle also seems to be working correctly according to a sanity test I just did. The start angle defines where the angle starts so it doesn't effect (and shouldn't be subtracted from) the arc length. >> >> jeff >> >> On May 2, 2012, at 7:26 AM, goddard at seznam.cz wrote: >> >>> Hi, >>> >>> I've got this constructor for an arc: >>> >>> Arc a = new Arc(100f, 100f, 50f, 50f, 0f, 120f); //cX, cY, rX, rY, angle, >>> length >>> >>> That produces the visual output you can see in the attached screenshot. >>> My questions are: >>> - if the 0 degree starts at X axis, then why? >>> - if an arc is extended counter-clockwise, then why? >>> >>> Does it ignore the startAngle completely? >>> >>> Arc a2 = new Arc(200f, 100f, 50f, 50f, 120f, 240f); //produces an arc of length 240, instead of 120? >>> >>> There're other things/properties that are designed to use the clockwise system >>> (top, right, bottom, left) in JavaFX, therefore this makes a programmer to >>> "switch" between these two concepts, in addition to all the other things one >>> must remember. >>> I think we had similar discussion during JavaFX 1.2 or 1.3 development... >>> >>> Regards, Jiri > > > -- > -------------------------------------------------------------------------------------- > Dr. Michael Paus, Chairman of the Java User Group Stuttgart e.V. (JUGS). > For more information visit www.jugs.de. > From mp at jugs.org Wed May 2 10:02:07 2012 From: mp at jugs.org (Dr. Michael Paus) Date: Wed, 02 May 2012 19:02:07 +0200 Subject: Arc shape In-Reply-To: References: <126095.23779.17351-6492-723390829-1335961588@seznam.cz> <4FA15E0F.8080704@jugs.org> Message-ID: <4FA1688F.2030109@jugs.org> There is a verbal description in the JavaDoc of the Node classs Transformation section. Hint: An image would say more than a thousand words. Am 02.05.2012 18:42, schrieb Jeff Martin: > Good point. :-). I'm not even sure which way the z-axis goes. Is there a document on the JavaFX coordinate system? > > jeff > > > On May 2, 2012, at 11:17 AM, Dr. Michael Paus wrote: > >> But if z would come out of the screen and x is to the right, then y would be going up according to the right hand rule. >> >> Am 02.05.2012 18:06, schrieb Jeff Martin: >>> I think rotation is following the right hand coordinate system (or right hand thumb rule) with positive z coming out of the screen. >>> >>> The StartAngle also seems to be working correctly according to a sanity test I just did. The start angle defines where the angle starts so it doesn't effect (and shouldn't be subtracted from) the arc length. >>> >>> jeff >>> >>> On May 2, 2012, at 7:26 AM, goddard at seznam.cz wrote: >>> >>>> Hi, >>>> >>>> I've got this constructor for an arc: >>>> >>>> Arc a = new Arc(100f, 100f, 50f, 50f, 0f, 120f); //cX, cY, rX, rY, angle, >>>> length >>>> >>>> That produces the visual output you can see in the attached screenshot. >>>> My questions are: >>>> - if the 0 degree starts at X axis, then why? >>>> - if an arc is extended counter-clockwise, then why? >>>> >>>> Does it ignore the startAngle completely? >>>> >>>> Arc a2 = new Arc(200f, 100f, 50f, 50f, 120f, 240f); //produces an arc of length 240, instead of 120? >>>> >>>> There're other things/properties that are designed to use the clockwise system >>>> (top, right, bottom, left) in JavaFX, therefore this makes a programmer to >>>> "switch" between these two concepts, in addition to all the other things one >>>> must remember. >>>> I think we had similar discussion during JavaFX 1.2 or 1.3 development... >>>> >>>> Regards, Jiri >> >> -- >> -------------------------------------------------------------------------------------- >> Dr. Michael Paus, Chairman of the Java User Group Stuttgart e.V. (JUGS). >> For more information visit www.jugs.de. >> -- -------------------------------------------------------------------------------------- Dr. Michael Paus, Chairman of the Java User Group Stuttgart e.V. (JUGS). For more information visit www.jugs.de. From anthony.vanelverdinghe at gmail.com Wed May 2 10:40:39 2012 From: anthony.vanelverdinghe at gmail.com (Anthony Vanelverdinghe) Date: Wed, 02 May 2012 19:40:39 +0200 Subject: API review request for RT-18980 In-Reply-To: References: <4FA1718B.6080909@oracle.com> Message-ID: <4FA17197.6000004@gmail.com> Hello Richard The go(shift) method is analog to the javascript method (see https://developer.mozilla.org/en/DOM/window.history#go ) Greetings Anthony Op 2/05/2012 16:12, Richard Bair schreef: > Hi Anton, > > Looks cool! Some thoughts: > > - What if we call it WebHistory? I've been thinking we might add a "History" class at the app framework level at some point such that your app can have navigation history as well, so it would be nice to avoid a potential name class. Since we have WebView& WebEngine already, WebHistory seems appropriate. > > - Can the URL, Title, or Last Visited Date of an Entry change? That is, are they immutable properties? If not, we need to add some read only property methods so we can listen to changes > - currentIndexProperty is missing (should be read only property) so that we can observe changes > - Should rename asList method. This is a "getter", but doesn't follow the getter naming convention (so tools won't know how to use this). It seems like "getEntries" is the right name for it? > - maxLengthProperty() should exist and be fully writable > - the go(shift) method is interesting, just wondering why it is a shift vs. an index. Not important though I'm just curious. > > Thanks! > Richard > > On May 2, 2012, at 10:40 AM, Anton V. Tarasov wrote: > >> Hi All, >> >> Please review the new API for WebView [1] >> >> JIRA: http://javafx-jira.kenai.com/browse/RT-18980 >> >> It introduces History class which could be used to view the browser session history and navigate through it. >> The class provides quite basic functionality enough to meet the requirements. >> >> The javadoc as a draft and so it may be corrected lately. >> >> Thanks, >> Anton. >> >> [1] >> >> package javafx.scene.web; >> >> import javafx.collections.ObservableList; >> import java.net.URL; >> import java.util.Date; >> >> /** >> * The {@code History} class represents a session history associated with >> * a {@link WebEngine} instance. >> * >> * There is a single instance of this class per {@code WebEngine} that >> * can be obtained via the {@link WebEngine#getHistory()} method. >> * >> * The {@link #asList()} method provides a view of the history in terms of a >> * list of entries. Each {@link Entry} represents a visited page and provides >> * access to relevant page info such as URL, title and visited date. >> * >> * The history and thus the list of entries change as {@code WebEngine} navigates >> * across the web. It may expand or shrink depending on browser actions. These >> * changes can be listened to with help of the {@link javafx.collections.ObservableList} >> * API that the list exposes. >> * >> * There is a notion of the current entry which is associated with the page currently >> * visited by {@code WebEngine}. Its index in the history list can be obtained via >> * a call to the {@link #getCurrentIndex()} method. The current index then can be used >> * to navigate to any entry in the history with help of the {@link #go(int)} method. >> * The simple {@link #goBack()} and {@link #goForward()} methods are convenient >> * methods to navigate one entry back and forward respectively. >> * >> * It is possible to limit the maximum history length, which is the length of the >> * history list, by means of the {@link #setMaxLength(int)} method. >> */ >> public final class History { >> >> /** >> * The {@code Entry} class represents a single entry in the session history. >> * An entry instance is associated with a visited page. >> */ >> public final class Entry { >> >> /** >> * Returns the {@link java.net.URL} of the page. >> * >> * @return the url of the page >> */ >> public URL getUrl(); >> >> /** >> * Returns the title of the page. >> * >> * @return the title of the page >> */ >> public String getTitle(); >> >> /** >> * Returns the {@link java.util.Date} the page was last visited. >> * >> * @return last visited date >> */ >> public Date getLastVisitedDate(); >> } >> >> /** >> * Returns the index of the current {@code Entry} in the history >> * in the range of [0..length-1]. The current entry is the entry >> * that corresponds to the currently displayed page. >> * >> * @return index of the current {@code Entry} in the history >> */ >> public int getCurrentIndex(); >> >> /** >> * Returns an unmodifiable observable list of all entries in the history. >> * Changes in the history, such as addition or removal of entries, cause >> * changes in the list. >> * >> * @return list of all entries in the history >> */ >> public ObservableList asList(); >> >> /** >> * Causes {@link WebView} to navigate to the page corresponding to >> * the {@code Entry} within the specified position relative to the current >> * entry. Negative (positive) {@code shift} value specifies the position >> * left (right) to the current entry. For instance, -1 points to the previous >> * entry and 1 points to the next entry. >> * >> * Zero {@code shift} value is silently ignored (no-op). >> * >> * The effective entry position should belong to the rage of [0..length-1], >> * otherwise IndexOutOfBoundsException is thrown. >> * >> * @param shift negative (positive) value specifies a position relative >> * to the left (right) from the current entry, zero value causes >> * no effect >> * @throws IndexOutOfBoundsException if the effective entry position is out >> * of range >> */ >> public void go(int shift) throws IndexOutOfBoundsException; >> >> /** >> * Causes {@link WebView} to navigate to the previous page in the >> * history. A call to this method is equivalent to a {@code go(-1)} call. >> * If the current entry is the first entry in the list, the call has no effect. >> * >> * @return true if the previous entry exists in the list, otherwise false >> */ >> public boolean goBack(); >> >> /** >> * Causes {@link WebView} to navigate to the next page in the history. >> * A call to this method is equivalent to a {@code go(1)} call. >> * If the current entry is the last entry in the list, the call has no effect. >> * >> * @return true if the next entry exists in the list, otherwise false >> */ >> public boolean goForward(); >> >> /** >> * Specifies the maximum length of the history list. When the list reaches >> * its maximum and a subsequent entry is added to it, the first entry gets >> * removed automatically. >> * >> * By default the maximum length is set to 100. >> * >> * @param length maximum length of the history list >> * @see {@link #getMaxLength()} >> */ >> public void setMaxLength(int length); >> >> /** >> * Returns the maximum length of the history list. >> * >> * By default the maximum length is set to 100. >> * >> * @return maximum length of the history list >> * @see {@link #setMaxLength()} >> */ >> public int getMaxLength(); >> } >> >> From richard.bair at oracle.com Wed May 2 10:44:13 2012 From: richard.bair at oracle.com (Richard Bair) Date: Wed, 2 May 2012 10:44:13 -0700 Subject: API review request for RT-18980 In-Reply-To: <4FA17197.6000004@gmail.com> References: <4FA1718B.6080909@oracle.com> <4FA17197.6000004@gmail.com> Message-ID: OK cool, thanks for the info. On May 2, 2012, at 10:40 AM, Anthony Vanelverdinghe wrote: > Hello Richard > > The go(shift) method is analog to the javascript method (see https://developer.mozilla.org/en/DOM/window.history#go ) > > Greetings > > Anthony > > > Op 2/05/2012 16:12, Richard Bair schreef: >> Hi Anton, >> >> Looks cool! Some thoughts: >> >> - What if we call it WebHistory? I've been thinking we might add a "History" class at the app framework level at some point such that your app can have navigation history as well, so it would be nice to avoid a potential name class. Since we have WebView& WebEngine already, WebHistory seems appropriate. >> >> - Can the URL, Title, or Last Visited Date of an Entry change? That is, are they immutable properties? If not, we need to add some read only property methods so we can listen to changes >> - currentIndexProperty is missing (should be read only property) so that we can observe changes >> - Should rename asList method. This is a "getter", but doesn't follow the getter naming convention (so tools won't know how to use this). It seems like "getEntries" is the right name for it? >> - maxLengthProperty() should exist and be fully writable >> - the go(shift) method is interesting, just wondering why it is a shift vs. an index. Not important though I'm just curious. >> >> Thanks! >> Richard >> >> On May 2, 2012, at 10:40 AM, Anton V. Tarasov wrote: >> >>> Hi All, >>> >>> Please review the new API for WebView [1] >>> >>> JIRA: http://javafx-jira.kenai.com/browse/RT-18980 >>> >>> It introduces History class which could be used to view the browser session history and navigate through it. >>> The class provides quite basic functionality enough to meet the requirements. >>> >>> The javadoc as a draft and so it may be corrected lately. >>> >>> Thanks, >>> Anton. >>> >>> [1] >>> >>> package javafx.scene.web; >>> >>> import javafx.collections.ObservableList; >>> import java.net.URL; >>> import java.util.Date; >>> >>> /** >>> * The {@code History} class represents a session history associated with >>> * a {@link WebEngine} instance. >>> * >>> * There is a single instance of this class per {@code WebEngine} that >>> * can be obtained via the {@link WebEngine#getHistory()} method. >>> * >>> * The {@link #asList()} method provides a view of the history in terms of a >>> * list of entries. Each {@link Entry} represents a visited page and provides >>> * access to relevant page info such as URL, title and visited date. >>> * >>> * The history and thus the list of entries change as {@code WebEngine} navigates >>> * across the web. It may expand or shrink depending on browser actions. These >>> * changes can be listened to with help of the {@link javafx.collections.ObservableList} >>> * API that the list exposes. >>> * >>> * There is a notion of the current entry which is associated with the page currently >>> * visited by {@code WebEngine}. Its index in the history list can be obtained via >>> * a call to the {@link #getCurrentIndex()} method. The current index then can be used >>> * to navigate to any entry in the history with help of the {@link #go(int)} method. >>> * The simple {@link #goBack()} and {@link #goForward()} methods are convenient >>> * methods to navigate one entry back and forward respectively. >>> * >>> * It is possible to limit the maximum history length, which is the length of the >>> * history list, by means of the {@link #setMaxLength(int)} method. >>> */ >>> public final class History { >>> >>> /** >>> * The {@code Entry} class represents a single entry in the session history. >>> * An entry instance is associated with a visited page. >>> */ >>> public final class Entry { >>> >>> /** >>> * Returns the {@link java.net.URL} of the page. >>> * >>> * @return the url of the page >>> */ >>> public URL getUrl(); >>> >>> /** >>> * Returns the title of the page. >>> * >>> * @return the title of the page >>> */ >>> public String getTitle(); >>> >>> /** >>> * Returns the {@link java.util.Date} the page was last visited. >>> * >>> * @return last visited date >>> */ >>> public Date getLastVisitedDate(); >>> } >>> >>> /** >>> * Returns the index of the current {@code Entry} in the history >>> * in the range of [0..length-1]. The current entry is the entry >>> * that corresponds to the currently displayed page. >>> * >>> * @return index of the current {@code Entry} in the history >>> */ >>> public int getCurrentIndex(); >>> >>> /** >>> * Returns an unmodifiable observable list of all entries in the history. >>> * Changes in the history, such as addition or removal of entries, cause >>> * changes in the list. >>> * >>> * @return list of all entries in the history >>> */ >>> public ObservableList asList(); >>> >>> /** >>> * Causes {@link WebView} to navigate to the page corresponding to >>> * the {@code Entry} within the specified position relative to the current >>> * entry. Negative (positive) {@code shift} value specifies the position >>> * left (right) to the current entry. For instance, -1 points to the previous >>> * entry and 1 points to the next entry. >>> * >>> * Zero {@code shift} value is silently ignored (no-op). >>> * >>> * The effective entry position should belong to the rage of [0..length-1], >>> * otherwise IndexOutOfBoundsException is thrown. >>> * >>> * @param shift negative (positive) value specifies a position relative >>> * to the left (right) from the current entry, zero value causes >>> * no effect >>> * @throws IndexOutOfBoundsException if the effective entry position is out >>> * of range >>> */ >>> public void go(int shift) throws IndexOutOfBoundsException; >>> >>> /** >>> * Causes {@link WebView} to navigate to the previous page in the >>> * history. A call to this method is equivalent to a {@code go(-1)} call. >>> * If the current entry is the first entry in the list, the call has no effect. >>> * >>> * @return true if the previous entry exists in the list, otherwise false >>> */ >>> public boolean goBack(); >>> >>> /** >>> * Causes {@link WebView} to navigate to the next page in the history. >>> * A call to this method is equivalent to a {@code go(1)} call. >>> * If the current entry is the last entry in the list, the call has no effect. >>> * >>> * @return true if the next entry exists in the list, otherwise false >>> */ >>> public boolean goForward(); >>> >>> /** >>> * Specifies the maximum length of the history list. When the list reaches >>> * its maximum and a subsequent entry is added to it, the first entry gets >>> * removed automatically. >>> * >>> * By default the maximum length is set to 100. >>> * >>> * @param length maximum length of the history list >>> * @see {@link #getMaxLength()} >>> */ >>> public void setMaxLength(int length); >>> >>> /** >>> * Returns the maximum length of the history list. >>> * >>> * By default the maximum length is set to 100. >>> * >>> * @return maximum length of the history list >>> * @see {@link #setMaxLength()} >>> */ >>> public int getMaxLength(); >>> } >>> >>> > From goddard at seznam.cz Wed May 2 11:11:41 2012 From: goddard at seznam.cz (goddard at seznam.cz) Date: Wed, 02 May 2012 20:11:41 +0200 (CEST) Subject: =?us-ascii?Q?Re=3A=20Re=3A=20Arc=20shape?= In-Reply-To: <4FA1688F.2030109@jugs.org> Message-ID: <126130.23661.17183-23307-375049828-1335982301@seznam.cz> Hello, thanks for the replies. I clearly misunderstood the API: "The start angle defines where the angle starts so it doesn't effect (and shouldn't be subtracted from) the arc length." Apologies, Jiri ------------ P?vodn? zpr?va ------------ Od: Dr. Michael Paus P?edm?t: Re: Arc shape Datum: 02.5.2012 19:04:31 ---------------------------------------- There is a verbal description in the JavaDoc of the Node classs Transformation section. Hint: An image would say more than a thousand words. Am 02.05.2012 18:42, schrieb Jeff Martin: > Good point. :-). I'm not even sure which way the z-axis goes. Is there a document on the JavaFX coordinate system? > > jeff > > > On May 2, 2012, at 11:17 AM, Dr. Michael Paus wrote: > >> But if z would come out of the screen and x is to the right, then y would be going up according to the right hand rule. >> >> Am 02.05.2012 18:06, schrieb Jeff Martin: >>> I think rotation is following the right hand coordinate system (or right hand thumb rule) with positive z coming out of the screen. >>> >>> The StartAngle also seems to be working correctly according to a sanity test I just did. The start angle defines where the angle starts so it doesn't effect (and shouldn't be subtracted from) the arc length. >>> >>> jeff >>> >>> On May 2, 2012, at 7:26 AM, goddard at seznam.cz wrote: >>> >>>> Hi, >>>> >>>> I've got this constructor for an arc: >>>> >>>> Arc a = new Arc(100f, 100f, 50f, 50f, 0f, 120f); //cX, cY, rX, rY, angle, >>>> length >>>> >>>> That produces the visual output you can see in the attached screenshot. >>>> My questions are: >>>> - if the 0 degree starts at X axis, then why? >>>> - if an arc is extended counter-clockwise, then why? >>>> >>>> Does it ignore the startAngle completely? >>>> >>>> Arc a2 = new Arc(200f, 100f, 50f, 50f, 120f, 240f); //produces an arc of length 240, instead of 120? >>>> >>>> There're other things/properties that are designed to use the clockwise system >>>> (top, right, bottom, left) in JavaFX, therefore this makes a programmer to >>>> "switch" between these two concepts, in addition to all the other things one >>>> must remember. >>>> I think we had similar discussion during JavaFX 1.2 or 1.3 development... >>>> >>>> Regards, Jiri >> >> -- >> -------------------------------------------------------------------------------------- >> Dr. Michael Paus, Chairman of the Java User Group Stuttgart e.V. (JUGS). >> For more information visit www.jugs.de. >> -- -------------------------------------------------------------------------------------- Dr. Michael Paus, Chairman of the Java User Group Stuttgart e.V. (JUGS). For more information visit www.jugs.de. From hang.vo at oracle.com Wed May 2 14:47:54 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 02 May 2012 21:47:54 +0000 Subject: hg: openjfx/2.2/controls/rt: fix an issue with firing menu validation event. Message-ID: <20120502214756.18F12470F8@hg.openjdk.java.net> Changeset: f36bc4562297 Author: Paru Somashekar Date: 2012-05-02 14:43 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/f36bc4562297 fix an issue with firing menu validation event. ! javafx-ui-controls/src/javafx/scene/control/Menu.java ! javafx-ui-controls/src/javafx/scene/control/MenuItem.java From kimtopley at gmail.com Wed May 2 15:14:29 2012 From: kimtopley at gmail.com (Kim Topley) Date: Wed, 2 May 2012 18:14:29 -0400 Subject: OpenJFX 2.2 repository Message-ID: I was wondering how often this repository is updated? I have been doing daily pulls and have seen nothing new for about a week. From richard.bair at oracle.com Wed May 2 15:24:32 2012 From: richard.bair at oracle.com (Richard Bair) Date: Wed, 2 May 2012 15:24:32 -0700 Subject: OpenJFX 2.2 repository In-Reply-To: References: Message-ID: <40785BF8-9C68-456F-9E92-CBF1EC2214CE@oracle.com> Which one have you been pulling from? There are forests for controls, graphics, and master. Master will be updated weekly, but graphics and controls I believe are updated continuously (I know controls is getting new pushes all the time). Richard On May 2, 2012, at 3:14 PM, Kim Topley wrote: > I was wondering how often this repository is updated? I have been doing > daily pulls and have seen nothing new for about a week. From hang.vo at oracle.com Wed May 2 15:33:20 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 02 May 2012 22:33:20 +0000 Subject: hg: openjfx/2.2/controls/rt: RT-21292: style cache lookup is slow on deeply nested scenegraphs. rework style cache lookup to avoid array search. Message-ID: <20120502223321.1C56F470F9@hg.openjdk.java.net> Changeset: 6d31db9184b6 Author: David Grieve Date: 2012-05-02 18:21 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/6d31db9184b6 RT-21292: style cache lookup is slow on deeply nested scenegraphs. rework style cache lookup to avoid array search. ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/test/unit/com/sun/javafx/css/Node_cssStyleMap_Test.java ! javafx-ui-common/test/unit/com/sun/javafx/css/StyleablePropertyTest.java From kevin.rushforth at oracle.com Wed May 2 15:59:38 2012 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 02 May 2012 15:59:38 -0700 Subject: OpenJFX 2.2 repository In-Reply-To: References: Message-ID: <4FA1BC5A.6020301@oracle.com> Depends on what you mean by "this" repository. There are three forests, and open the "rt" repo in each of those forests is actively changing. Here is the "lay of the land" openjfx/2.2/master -- master forest rt tests openjfx/2.2/controls -- controls team forest rt tests openjfx/2.2/graphics -- graphics team forest rt tests The "rt" repo in the master forest is updated each week in conjunction with a new weekly beta build. This usually happens on Wednesday but sometimes is delayed until Thursday. The graphics and controls forests are updated continuously. For example, if you look at: http://hg.openjdk.java.net/openjfx/2.2/controls/rt you will see that the most recent changeset was pushed about 40 minutes ago. -- Kevin Kim Topley wrote: > I was wondering how often this repository is updated? I have been doing > daily pulls and have seen nothing new for about a week. > From kimtopley at gmail.com Wed May 2 18:41:22 2012 From: kimtopley at gmail.com (Kim Topley) Date: Wed, 2 May 2012 21:41:22 -0400 Subject: OpenJFX 2.2 repository In-Reply-To: <4FA1BC5A.6020301@oracle.com> References: <4FA1BC5A.6020301@oracle.com> Message-ID: OK, I am now getting the latest changes :-), but there are some problems. If I clone the "controls" and "controls/rt" repos and then build, I get this: check-binary-css: javafx-ui-controls-common.-pre-init: [mkdir] Created dir: /Users/kimtopley/OPENJFX/open-jfx/controls/rt/javafx-ui-controls/build/classes/com/sun/javafx/scene/control/skin/caspian [java] Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/scenario/ToolkitAccessor [java] at com.sun.javafx.Logging.getCSSLogger(Unknown Source) [java] at com.sun.javafx.css.parser.CSSParser.(Unknown Source) [java] at com.sun.javafx.css.parser.Css2Bin.convertToBinary(Unknown Source) [java] at com.sun.javafx.css.parser.Css2Bin.main(Unknown Source) [java] Caused by: java.lang.ClassNotFoundException: com.sun.scenario.ToolkitAccessor [java] at java.net.URLClassLoader$1.run(URLClassLoader.java:202) [java] at java.security.AccessController.doPrivileged(Native Method) [java] at java.net.URLClassLoader.findClass(URLClassLoader.java:190) [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:306) [java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:247) [java] ... 4 more BUILD FAILED It looks like build-common.xml in rt/javafx-ui-controls is relying on the setup of the closed part of the build. I can get around it by commenting out the content of the -pre-init target in that makefile, the only effect of which is to not create caspian.bss. Having done, that, I then get errors for two @Overrides that apparently aren't overriding anything: [javac] Compiling 224 source files to /Users/kimtopley/OPENJFX/open-jfx/controls/rt/javafx-ui-controls/build/classes [javac] /Users/kimtopley/OPENJFX/open-jfx/controls/rt/javafx-ui-controls/src/javafx/scene/control/Control.java:1132: method does not override or implement a method from a supertype [javac] @Deprecated @Override [javac] ^ [javac] /Users/kimtopley/OPENJFX/open-jfx/controls/rt/javafx-ui-controls/src/javafx/scene/control/Hyperlink.java:176: method does not override or implement a method from a supertype [javac] @Deprecated @Override [javac] ^ [javac] Note: Some input files use or override a deprecated API. [javac] Note: Recompile with -Xlint:deprecation for details. [javac] Note: Some input files use unchecked or unsafe operations. [javac] Note: Recompile with -Xlint:unchecked for details. [javac] 2 errors In fact the overridden method DOES exist on the Node class. The problem is that the classpath for the compilation does not include javafx-ui-common, so it's getting Node from jfxrt.jar, which is from the last JavaFX 2.2 build and does not have this method: -classpath' [javac] '/Users/kimtopley/OPENJFX/open-jfx/controls/rt/javafx-ui-controls/build/classes:/Users/kimtopley/OPENJFX/open-jfx/controls/artifacts/sdk/rt/lib/jfxrt.jar' I don't get this problem when building in Eclipse, because it sees all of the source code. Other than that, everything works. Kim On Wed, May 2, 2012 at 6:59 PM, Kevin Rushforth wrote: > Depends on what you mean by "this" repository. > > There are three forests, and open the "rt" repo in each of those forests > is actively changing. Here is the "lay of the land" > > openjfx/2.2/master -- master forest > rt > tests > > openjfx/2.2/controls -- controls team forest > rt > tests > > openjfx/2.2/graphics -- graphics team forest > rt > tests > > > The "rt" repo in the master forest is updated each week in conjunction > with a new weekly beta build. This usually happens on Wednesday but > sometimes is delayed until Thursday. > > The graphics and controls forests are updated continuously. > > For example, if you look at: http://hg.openjdk.java.net/** > openjfx/2.2/controls/rt > > you will see that the most recent changeset was pushed about 40 minutes > ago. > > -- Kevin > > > Kim Topley wrote: > >> I was wondering how often this repository is updated? I have been doing >> daily pulls and have seen nothing new for about a week. >> >> > From ozemale at ozemail.com.au Wed May 2 20:07:33 2012 From: ozemale at ozemail.com.au (John C. Turnbull) Date: Thu, 3 May 2012 13:07:33 +1000 Subject: A supported public API for HTML Editor customization [#RT-21268] In-Reply-To: References: Message-ID: <00a501cd28d9$e2c22140$a84663c0$@com.au> +1 I agree wholeheartedly with this suggestion. The HTMLEditor as it currently stands is not particularly useful and offers no means of configuration. The use case where you just want to display some HTML text without the editor controls and without the overhead of instantiating a full-blown WebKit browser cannot be ignored. -jct -----Original Message----- From: openjfx-dev-bounces at openjdk.java.net [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Slavko Scekic Sent: Tuesday, 1 May 2012 06:25 To: openjfx-dev Subject: A supported public API for HTML Editor customization [#RT-21268] Hi all, I've filed a new JIRA request concerning the HTML Editor control. Please take a look and make contributions. Here it is: I dear say that everyone who's used the HTML Editor control will agree that it is not really adequate for serious use. So, I propose several enhancements to the API: 1) Make HtmlText an ObservableValue - CRUCIAL. 2) Allow toolbar customization. At minimum, this should include disabling/enabling or hiding/showing available controls. 3) Provide a mechanism to limit the number (and type) of available fonts. This is essential for web content production (web-safe fonts are still considered a good design practice, but also for the theme-specific fonts), and when preparing content for external components, like JasperReports. 4) Allow selecting default font from code. Thanks, Slavko From ozemale at ozemail.com.au Wed May 2 20:37:45 2012 From: ozemale at ozemail.com.au (John C. Turnbull) Date: Thu, 3 May 2012 13:37:45 +1000 Subject: Text rendering within pop-ups Message-ID: <00a601cd28de$1ada5760$508f0620$@com.au> It seems that text rendered in any "pop-up" context such as menus, combo boxes etc. is rendered without sub-pixel antialiasing (on Windows at least). Does this have something to do with the transparent nature of pop-ups? Is it likely to be fixed in the future? Thanks, -jct From hang.vo at oracle.com Wed May 2 21:36:03 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 03 May 2012 04:36:03 +0000 Subject: hg: openjfx/2.2/master/rt: 33 new changesets Message-ID: <20120503043627.DC35D4710E@hg.openjdk.java.net> Changeset: d64c1c8540c6 Author: Kinsley Wong Date: 2012-04-23 18:36 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/d64c1c8540c6 Pagination. Right key presses should not go beyond the last page. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/PaginationSkin.java Changeset: 7e29bb81fc2a Author: Kinsley Wong Date: 2012-04-23 18:37 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/7e29bb81fc2a RT-13992: CheckBox should have an event fired whenever selected or indeterminate changes. ! javafx-ui-controls/src/javafx/scene/control/CheckBox.java Changeset: d354d684f53f Author: mickf Date: 2012-04-24 15:36 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/d354d684f53f RT-20793 : KeyCode.DELETE used as accelerator on a MenuItem is suspected to corrupt the menu containing this MenuItem (on Windows) ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/KeyCodeUtils.java ! javafx-ui-controls/test/com/sun/javafx/scene/control/skin/KeystrokeUtilsTest.java Changeset: 3b31386cd245 Author: Kinsley Wong Date: 2012-04-24 11:02 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/3b31386cd245 Unit test for RT-13992. ! javafx-ui-controls/test/javafx/scene/control/CheckBoxTest.java Changeset: a076f05dbd57 Author: David Grieve Date: 2012-04-24 14:43 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/a076f05dbd57 RT-21046: When setting UA stylesheet, call impl_reapplyCSS on the scene root rather than impl_processCSS. ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java + javafx-ui-common/test/unit/com/sun/javafx/css/HonorDeveloperSettingsTest.java - javafx-ui-common/test/unit/com/sun/javafx/css/HonorDeveloperSettingsTest.java.DISABLED Changeset: 45f46fb22483 Author: David Grieve Date: 2012-04-25 17:04 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/45f46fb22483 RT-20714: do not translate null color to transparent ! javafx-ui-common/src/com/sun/javafx/css/StyleableDoubleProperty.java ! javafx-ui-common/src/com/sun/javafx/css/StyleableFloatProperty.java ! javafx-ui-common/src/com/sun/javafx/css/StyleableIntegerProperty.java ! javafx-ui-common/src/com/sun/javafx/css/StyleableLongProperty.java ! javafx-ui-common/src/com/sun/javafx/css/StyleableProperty.java ! javafx-ui-common/src/com/sun/javafx/css/converters/ColorConverter.java ! javafx-ui-common/test/unit/javafx/scene/Node_cssMethods_Test.java ! javafx-ui-common/test/unit/javafx/scene/shape/Shape_cssMethods_Test.java Changeset: d630a9d8224d Author: David Grieve Date: 2012-04-25 17:04 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/d630a9d8224d RT-20032: graphic property on Labeled is not a Styleable. Need to use the image url property (which is hidden in the List instead. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/LabeledImpl.java Changeset: 49c7a705b5bf Author: Kinsley Wong Date: 2012-04-25 17:03 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/49c7a705b5bf RT-17668: Disable/enable tabs in a TabPane. ! javafx-ui-controls/src/com/sun/javafx/scene/control/behavior/TabPaneBehavior.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/TabPaneSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css ! javafx-ui-controls/src/javafx/scene/control/Tab.java ! javafx-ui-controls/src/javafx/scene/control/TabPane.java ! javafx-ui-controls/test/javafx/scene/control/TabPaneTest.java ! javafx-ui-controls/test/javafx/scene/control/TabTest.java Changeset: 4bb7f9d39ae9 Author: jgiles Date: 2012-04-18 12:01 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/4bb7f9d39ae9 [DOC ONLY] Updated PropertyValueFactory to refer to the in-development MapValueFactory class. ! javafx-ui-controls/src/javafx/scene/control/cell/PropertyValueFactory.java Changeset: fc596988f959 Author: jgiles Date: 2012-04-18 12:03 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/fc596988f959 RT-20956: add method setUserData in TableColumn. ! javafx-ui-controls/src/javafx/scene/control/TableColumn.java Changeset: e80d39015aa3 Author: jgiles Date: 2012-04-18 12:17 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/e80d39015aa3 RT-20855: ComboBox, need an onShowing event handler ! javafx-ui-controls/src/javafx/scene/control/ComboBoxBase.java ! javafx-ui-controls/src/javafx/scene/control/Menu.java Changeset: bc96fe004617 Author: jgiles Date: 2012-04-20 12:11 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/bc96fe004617 RT-19452: TableView: Item renderers and item editors + javafx-ui-controls/src/com/sun/javafx/scene/control/CheckBoxTreeItem.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CellUtils.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxCellFactory.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxListCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxTableCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxTreeCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxCellFactory.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxListCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxTableCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxTreeCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxCellFactory.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxListCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxTableCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxTreeCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/MapValueFactory.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ProgressBarCellFactory.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ProgressBarTableCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterCellFactory.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterListCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterTableCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterTreeCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatCellFactory.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatListCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatTableCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatTreeCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldCellFactory.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldListCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldTableCell.java + javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldTreeCell.java Changeset: 8f6e1d3273ea Author: jgiles Date: 2012-04-26 15:51 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/8f6e1d3273ea Moving javafx-util-converter before javafx-ui-controls in the build ! build.xml ! javafx-ui-controls/build-closed.xml Changeset: 5bf85e72593a Author: jgiles Date: 2012-04-26 16:04 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/5bf85e72593a Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/controls/jfx/rt ! javafx-ui-controls/build-closed.xml Changeset: 1a693a82850e Author: jgiles Date: 2012-04-26 16:47 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/1a693a82850e RT-19589: ComboBox : cannot access to the current string editor + javafx-ui-controls/src/com/sun/javafx/scene/control/FocusableTextField.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ComboBoxListViewSkin.java ! javafx-ui-controls/src/javafx/scene/control/ComboBox.java Changeset: d86de2e536a0 Author: jgiles Date: 2012-04-26 19:49 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/d86de2e536a0 Added unit tests and fixed issues identified in the previous ComboBox editor changeset (related to RT-19589) ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ComboBoxListViewSkin.java ! javafx-ui-controls/src/javafx/scene/control/ComboBox.java ! javafx-ui-controls/src/javafx/scene/control/SingleSelectionModel.java ! javafx-ui-controls/test/javafx/scene/control/ChoiceBoxTest.java ! javafx-ui-controls/test/javafx/scene/control/ComboBoxTest.java Changeset: edd9ab755798 Author: jgiles Date: 2012-04-26 19:53 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/edd9ab755798 RT-20956: add method setUserData in TableColumn (adding the same API to Tab and fixing up copy/paste JavaDoc issues in TableColumn) ! javafx-ui-controls/src/javafx/scene/control/Tab.java ! javafx-ui-controls/src/javafx/scene/control/TableColumn.java Changeset: e91d38c52914 Author: jgiles Date: 2012-04-27 07:45 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/e91d38c52914 RT-21023: ComboBox : allow different Cell rendering for Open and Closed state. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ComboBoxListViewSkin.java ! javafx-ui-controls/src/javafx/scene/control/ComboBox.java Changeset: 339fc9553446 Author: leifs Date: 2012-04-26 16:26 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/339fc9553446 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/MASTER/rt - javafx-ui-common/test/unit/com/sun/javafx/css/HonorDeveloperSettingsTest.java.DISABLED Changeset: 43eaae798b52 Author: lsamuels Date: 2012-04-26 16:55 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/43eaae798b52 Fixed RT-21120: On Mac a menu with dynamic menu items may trigger infinite loop ! javafx-ui-controls/src/com/sun/javafx/scene/control/GlobalMenuAdapter.java Changeset: 60194ccf4b9b Author: Paru Somashekar Date: 2012-04-27 07:19 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/60194ccf4b9b API changes and implement changes in UI spec. ! javafx-ui-controls/src/com/sun/javafx/scene/control/ColorPicker.java - javafx-ui-controls/src/com/sun/javafx/scene/control/ColorPickerAddColorPane.java - javafx-ui-controls/src/com/sun/javafx/scene/control/DoubleField.java - javafx-ui-controls/src/com/sun/javafx/scene/control/InputField.java - javafx-ui-controls/src/com/sun/javafx/scene/control/IntegerField.java - javafx-ui-controls/src/com/sun/javafx/scene/control/WebColorField.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/behavior/ColorPickerBehavior.java + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPalette.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPickerSkin.java + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/CustomColorDialog.java + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/DoubleField.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/DoubleFieldSkin.java + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/InputField.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/InputFieldSkin.java + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/IntegerField.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/IntegerFieldSkin.java + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/WebColorField.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/WebColorFieldSkin.java Changeset: 5cf8cef87a11 Author: Paru Somashekar Date: 2012-04-27 07:45 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/5cf8cef87a11 missed this in previous putback - javafx-ui-controls/src/com/sun/javafx/scene/control/ColorPalette.java Changeset: 3eb9844ae573 Author: Paru Somashekar Date: 2012-04-27 10:37 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/3eb9844ae573 Made CustomColorDialog Application Modal. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPalette.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPickerSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/CustomColorDialog.java Changeset: 65e0acb7530b Author: Paru Somashekar Date: 2012-04-27 11:15 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/65e0acb7530b fix behavior of ColorPalette for show hide on mouse click and autohide. ! javafx-ui-controls/src/com/sun/javafx/scene/control/behavior/ColorPickerBehavior.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPickerSkin.java Changeset: 06cc0cc5e1cf Author: Kinsley Wong Date: 2012-04-27 14:02 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/06cc0cc5e1cf Pagination: animations for touch events. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/PaginationSkin.java Changeset: ce65dc129c92 Author: Kinsley Wong Date: 2012-04-30 11:11 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/ce65dc129c92 merge Changeset: 9e65aa11d0e9 Author: Martin Sladecek Date: 2012-04-25 15:08 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/9e65aa11d0e9 RT-19286: added null check to Scene.root property to avoid subsequent NPEs in pulse processing. ! javafx-ui-common/src/javafx/scene/Scene.java ! javafx-ui-common/test/unit/javafx/scene/Scene_properties_Test.java Changeset: 1f2785200439 Author: Martin Sladecek Date: 2012-04-25 15:09 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/1f2785200439 merge ! javafx-ui-common/src/javafx/scene/Scene.java Changeset: 8cb18dcf8b2c Author: Martin Sladecek Date: 2012-04-25 15:09 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/8cb18dcf8b2c merge ! javafx-ui-common/src/javafx/scene/Scene.java Changeset: d7260037bad0 Author: Pavel Safrata Date: 2012-04-26 17:16 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/d7260037bad0 RT-21127: fixed mouse wheel scrolling after touch screen scrolling. ! javafx-ui-common/src/javafx/scene/Scene.java ! javafx-ui-common/test/unit/javafx/scene/input/ScrollEventTest.java Changeset: 3ae1a875814f Author: Pavel Safrata Date: 2012-04-26 18:06 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/3ae1a875814f Added test for mosue events delivered to nodes moving under still mouse. ! javafx-ui-common/test/unit/javafx/scene/MouseTest.java Changeset: 3fa9344823cf Author: jpgodine at JPGODINE-LAP.st-users.us.oracle.com Date: 2012-05-01 10:04 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/3fa9344823cf Automated merge with ssh://jpgodine at jfxsrc.us.oracle.com//javafx/2.2/MASTER/jfx/rt Changeset: 2dd3f2b733f2 Author: hudson Date: 2012-05-02 21:30 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/2dd3f2b733f2 Added tag 2.2-b07 for changeset 3fa9344823cf ! .hgtags From thor.johannesson at oracle.com Wed May 2 21:56:16 2012 From: thor.johannesson at oracle.com (Thor Johannesson) Date: Wed, 2 May 2012 21:56:16 -0700 Subject: Text rendering within pop-ups In-Reply-To: <00a601cd28de$1ada5760$508f0620$@com.au> References: <00a601cd28de$1ada5760$508f0620$@com.au> Message-ID: <3455917A-0FB4-410C-8F6F-44A1976365A9@oracle.com> Correct, there is a problem with sub-pixel text on transparent surfaces. This will be fixed for hardware pipeline by 2.2. The outstanding fix will make use of what color we have in background. Note if background is fully transparent then sub-pixel antialiasing will be lost, resulting in aa grayscale text. -Thor On May 2, 2012, at 8:37 PM, John C. Turnbull wrote: > It seems that text rendered in any "pop-up" context such as menus, combo > boxes etc. is rendered without sub-pixel antialiasing (on Windows at least). > > > > Does this have something to do with the transparent nature of pop-ups? Is > it likely to be fixed in the future? > > > > Thanks, > > > > -jct > From mikhail.kondratyev at oracle.com Wed May 2 22:10:38 2012 From: mikhail.kondratyev at oracle.com (Mikhail Kondratyev) Date: Thu, 03 May 2012 09:10:38 +0400 Subject: A supported public API for HTML Editor customization [#RT-21268] In-Reply-To: References: Message-ID: <4FA2134E.6060707@oracle.com> Hi Slavko, could you please file these enhancements as Jira features in http://javafx-jira.kenai.com/browse/RT This will help FX team to properly track this thanks, Mikhail On 05/01/2012 12:30 AM, Slavko Scekic wrote: > Hi all, > > I've filed a new JIRA request concerning the HTML Editor control. Please > take a look and make > contributions. Here it is: > > I dear say that everyone who's used the HTML Editor control will agree that > it is not really adequate for serious use. So, I propose several > enhancements to the API: > > 1) Make HtmlText an ObservableValue - CRUCIAL. > 2) Allow toolbar customization. At minimum, this should include > disabling/enabling or hiding/showing available controls. > 3) Provide a mechanism to limit the number (and type) of available fonts. > This is essential for web content production (web-safe fonts are still > considered a good design practice, but also for the theme-specific fonts), > and when preparing content for external components, like JasperReports. > 4) Allow selecting default font from code. > > Thanks, > Slavko > > P.S. Sorry if this is a double message, I've sent a first one from > non-registered e-mail address, so I'm not sure it's sent. From scekics at gmail.com Thu May 3 03:17:43 2012 From: scekics at gmail.com (Slavko Scekic) Date: Thu, 3 May 2012 12:17:43 +0200 Subject: A supported public API for HTML Editor customization [#RT-21268] In-Reply-To: <00a501cd28d9$e2c22140$a84663c0$@com.au> References: <00a501cd28d9$e2c22140$a84663c0$@com.au> Message-ID: Hi, As instructed by Johnatan, I've broke down this issue on four separate ones. The first (htmlText as JavaFX Property) is already submitted, so I've omitted it. Here are the three new ones: Allow HTML Editor's toolbar customization (RT-21280) Provide a mechanism to limit the number (and type) of available fonts in HTML Editor (RT-21281) Allow selecting default HTML Editor's font from code(RT-21282, open)With regards, Slavko On Thu, May 3, 2012 at 5:07 AM, John C. Turnbull wrote: > +1 > > I agree wholeheartedly with this suggestion. The HTMLEditor as it > currently > stands is not particularly useful and offers no means of configuration. > The > use case where you just want to display some HTML text without the editor > controls and without the overhead of instantiating a full-blown WebKit > browser cannot be ignored. > > -jct > > -----Original Message----- > From: openjfx-dev-bounces at openjdk.java.net > [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Slavko Scekic > Sent: Tuesday, 1 May 2012 06:25 > To: openjfx-dev > Subject: A supported public API for HTML Editor customization [#RT-21268] > > Hi all, > > I've filed a new JIRA request concerning the HTML Editor control. Please > take a look and make > contributions. Here it is: > > I dear say that everyone who's used the HTML Editor control will agree that > it is not really adequate for serious use. So, I propose several > enhancements to the API: > > 1) Make HtmlText an ObservableValue - CRUCIAL. > 2) Allow toolbar customization. At minimum, this should include > disabling/enabling or hiding/showing available controls. > 3) Provide a mechanism to limit the number (and type) of available fonts. > This is essential for web content production (web-safe fonts are still > considered a good design practice, but also for the theme-specific fonts), > and when preparing content for external components, like JasperReports. > 4) Allow selecting default font from code. > > Thanks, > Slavko > > From christian.schudt at gmx.de Thu May 3 03:44:48 2012 From: christian.schudt at gmx.de (Christian Schudt) Date: Thu, 03 May 2012 12:44:48 +0200 Subject: A supported public API for HTML Editor customization [#RT-21268] In-Reply-To: References: <00a501cd28d9$e2c22140$a84663c0$@com.au> Message-ID: <20120503104448.239290@gmx.net> Thanks! +1 They will be a crucial feature for our development, too (especially Toolbar customization). I voted for it. Regards, Christian -------- Original-Nachricht -------- > Datum: Thu, 3 May 2012 12:17:43 +0200 > Von: Slavko Scekic > An: "John C. Turnbull" > CC: openjfx-dev > Betreff: Re: A supported public API for HTML Editor customization [#RT-21268] > Hi, > > As instructed by Johnatan, I've broke down this issue on four separate > ones. The first (htmlText as JavaFX Property) is already submitted, so > I've > omitted it. Here are the three new ones: > Allow HTML Editor's toolbar customization > (RT-21280) Provide > a mechanism to limit the number (and type) of available fonts in HTML > Editor (RT-21281) Allow > selecting default HTML Editor's font from > code(RT-21282, open)With > regards, > Slavko > > On Thu, May 3, 2012 at 5:07 AM, John C. Turnbull > wrote: > > > +1 > > > > I agree wholeheartedly with this suggestion. The HTMLEditor as it > > currently > > stands is not particularly useful and offers no means of configuration. > > The > > use case where you just want to display some HTML text without the > editor > > controls and without the overhead of instantiating a full-blown WebKit > > browser cannot be ignored. > > > > -jct > > > > -----Original Message----- > > From: openjfx-dev-bounces at openjdk.java.net > > [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Slavko Scekic > > Sent: Tuesday, 1 May 2012 06:25 > > To: openjfx-dev > > Subject: A supported public API for HTML Editor customization > [#RT-21268] > > > > Hi all, > > > > I've filed a new JIRA request concerning the HTML Editor control. Please > > take a look and make > > contributions. Here it is: > > > > I dear say that everyone who's used the HTML Editor control will agree > that > > it is not really adequate for serious use. So, I propose several > > enhancements to the API: > > > > 1) Make HtmlText an ObservableValue - CRUCIAL. > > 2) Allow toolbar customization. At minimum, this should include > > disabling/enabling or hiding/showing available controls. > > 3) Provide a mechanism to limit the number (and type) of available > fonts. > > This is essential for web content production (web-safe fonts are still > > considered a good design practice, but also for the theme-specific > fonts), > > and when preparing content for external components, like JasperReports. > > 4) Allow selecting default font from code. > > > > Thanks, > > Slavko > > > > -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de From hang.vo at oracle.com Thu May 3 05:33:52 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 03 May 2012 12:33:52 +0000 Subject: hg: openjfx/2.2/graphics/rt: Fixed performance and critical issues found by findbugs software. Message-ID: <20120503123354.9ED194711D@hg.openjdk.java.net> Changeset: 3d10357ee79e Author: Martin Sladecek Date: 2012-05-03 14:16 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/3d10357ee79e Fixed performance and critical issues found by findbugs software. ! javafx-ui-common/src/com/sun/javafx/application/ParametersImpl.java ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/src/com/sun/javafx/css/converters/EnumConverter.java ! javafx-ui-common/src/com/sun/javafx/css/parser/CSSParser.java ! javafx-ui-common/src/com/sun/javafx/css/parser/Css2Bin.java ! javafx-ui-common/src/com/sun/javafx/scene/KeyboardShortcutsHandler.java ! javafx-ui-common/src/com/sun/javafx/stage/StageHelper.java ! javafx-ui-common/src/com/sun/javafx/tk/Toolkit.java ! javafx-ui-common/src/javafx/scene/ImageCursor.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/src/javafx/scene/Parent.java ! javafx-ui-common/src/javafx/scene/Scene.java ! javafx-ui-common/src/javafx/scene/effect/Effect.java ! javafx-ui-common/src/javafx/scene/input/DataFormat.java ! javafx-ui-common/src/javafx/scene/input/DragEvent.java ! javafx-ui-common/src/javafx/scene/input/InputMethodEvent.java ! javafx-ui-common/src/javafx/scene/input/InputMethodTextRun.java ! javafx-ui-common/src/javafx/scene/input/KeyCharacterCombination.java ! javafx-ui-common/src/javafx/scene/input/Mnemonic.java ! javafx-ui-common/src/javafx/scene/input/MouseEvent.java From anton.tarasov at oracle.com Thu May 3 07:21:57 2012 From: anton.tarasov at oracle.com (Anton V. Tarasov) Date: Thu, 03 May 2012 18:21:57 +0400 Subject: API review request for RT-18980 In-Reply-To: References: <4FA1718B.6080909@oracle.com> Message-ID: <4FA29485.3050202@oracle.com> Hi Richard, Thanks for your feedback! Please see my comments inline: On 02.05.2012 18:12, Richard Bair wrote: > Hi Anton, > > Looks cool! Some thoughts: > > - What if we call it WebHistory? I've been thinking we might add a "History" class at the app framework level at some point such that your app can have navigation history as well, so it would be nice to avoid a potential name class. Since we have WebView& WebEngine already, WebHistory seems appropriate. Am I right, that you're talking about _another_ History class that you're planning to add to public API? (If so, I'm just curious what kind of history it's to present?) Anyway, WebHistory name is fine for sure. > > - Can the URL, Title, or Last Visited Date of an Entry change? That is, are they immutable properties? If not, we need to add some read only property methods so we can listen to changes All three properties may change in the context of a single page, but URL (at least effective URL, excluding redirects) may not change within an Entry. Thus, Title and Date are mutable (and so require property methods), URL is immutable. > - currentIndexProperty is missing (should be read only property) so that we can observe changes Ok. > - Should rename asList method. This is a "getter", but doesn't follow the getter naming convention (so tools won't know how to use this). It seems like "getEntries" is the right name for it? getEntries(), ok. > - maxLengthProperty() should exist and be fully writable Right. > - the go(shift) method is interesting, just wondering why it is a shift vs. an index. Not important though I'm just curious. This is important, actually =) The method doesn't take an index but a shift int value comparing to the current index. So that go(-2) would navigate two entries back, and go(2) - forward. It's an analog of the js History object method (as Anthony mentioned). So, I'll make the API conform to FX concepts according to your suggestions. Thanks, Anton. > > Thanks! > Richard > > On May 2, 2012, at 10:40 AM, Anton V. Tarasov wrote: > >> Hi All, >> >> Please review the new API for WebView [1] >> >> JIRA: http://javafx-jira.kenai.com/browse/RT-18980 >> >> It introduces History class which could be used to view the browser session history and navigate through it. >> The class provides quite basic functionality enough to meet the requirements. >> >> The javadoc as a draft and so it may be corrected lately. >> >> Thanks, >> Anton. >> >> [1] >> >> package javafx.scene.web; >> >> import javafx.collections.ObservableList; >> import java.net.URL; >> import java.util.Date; >> >> /** >> * The {@code History} class represents a session history associated with >> * a {@link WebEngine} instance. >> * >> * There is a single instance of this class per {@code WebEngine} that >> * can be obtained via the {@link WebEngine#getHistory()} method. >> * >> * The {@link #asList()} method provides a view of the history in terms of a >> * list of entries. Each {@link Entry} represents a visited page and provides >> * access to relevant page info such as URL, title and visited date. >> * >> * The history and thus the list of entries change as {@code WebEngine} navigates >> * across the web. It may expand or shrink depending on browser actions. These >> * changes can be listened to with help of the {@link javafx.collections.ObservableList} >> * API that the list exposes. >> * >> * There is a notion of the current entry which is associated with the page currently >> * visited by {@code WebEngine}. Its index in the history list can be obtained via >> * a call to the {@link #getCurrentIndex()} method. The current index then can be used >> * to navigate to any entry in the history with help of the {@link #go(int)} method. >> * The simple {@link #goBack()} and {@link #goForward()} methods are convenient >> * methods to navigate one entry back and forward respectively. >> * >> * It is possible to limit the maximum history length, which is the length of the >> * history list, by means of the {@link #setMaxLength(int)} method. >> */ >> public final class History { >> >> /** >> * The {@code Entry} class represents a single entry in the session history. >> * An entry instance is associated with a visited page. >> */ >> public final class Entry { >> >> /** >> * Returns the {@link java.net.URL} of the page. >> * >> * @return the url of the page >> */ >> public URL getUrl(); >> >> /** >> * Returns the title of the page. >> * >> * @return the title of the page >> */ >> public String getTitle(); >> >> /** >> * Returns the {@link java.util.Date} the page was last visited. >> * >> * @return last visited date >> */ >> public Date getLastVisitedDate(); >> } >> >> /** >> * Returns the index of the current {@code Entry} in the history >> * in the range of [0..length-1]. The current entry is the entry >> * that corresponds to the currently displayed page. >> * >> * @return index of the current {@code Entry} in the history >> */ >> public int getCurrentIndex(); >> >> /** >> * Returns an unmodifiable observable list of all entries in the history. >> * Changes in the history, such as addition or removal of entries, cause >> * changes in the list. >> * >> * @return list of all entries in the history >> */ >> public ObservableList asList(); >> >> /** >> * Causes {@link WebView} to navigate to the page corresponding to >> * the {@code Entry} within the specified position relative to the current >> * entry. Negative (positive) {@code shift} value specifies the position >> * left (right) to the current entry. For instance, -1 points to the previous >> * entry and 1 points to the next entry. >> * >> * Zero {@code shift} value is silently ignored (no-op). >> * >> * The effective entry position should belong to the rage of [0..length-1], >> * otherwise IndexOutOfBoundsException is thrown. >> * >> * @param shift negative (positive) value specifies a position relative >> * to the left (right) from the current entry, zero value causes >> * no effect >> * @throws IndexOutOfBoundsException if the effective entry position is out >> * of range >> */ >> public void go(int shift) throws IndexOutOfBoundsException; >> >> /** >> * Causes {@link WebView} to navigate to the previous page in the >> * history. A call to this method is equivalent to a {@code go(-1)} call. >> * If the current entry is the first entry in the list, the call has no effect. >> * >> * @return true if the previous entry exists in the list, otherwise false >> */ >> public boolean goBack(); >> >> /** >> * Causes {@link WebView} to navigate to the next page in the history. >> * A call to this method is equivalent to a {@code go(1)} call. >> * If the current entry is the last entry in the list, the call has no effect. >> * >> * @return true if the next entry exists in the list, otherwise false >> */ >> public boolean goForward(); >> >> /** >> * Specifies the maximum length of the history list. When the list reaches >> * its maximum and a subsequent entry is added to it, the first entry gets >> * removed automatically. >> * >> * By default the maximum length is set to 100. >> * >> * @param length maximum length of the history list >> * @see {@link #getMaxLength()} >> */ >> public void setMaxLength(int length); >> >> /** >> * Returns the maximum length of the history list. >> * >> * By default the maximum length is set to 100. >> * >> * @return maximum length of the history list >> * @see {@link #setMaxLength()} >> */ >> public int getMaxLength(); >> } >> >> From kevin.rushforth at oracle.com Thu May 3 07:54:21 2012 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Thu, 03 May 2012 07:54:21 -0700 Subject: Text rendering within pop-ups In-Reply-To: <3455917A-0FB4-410C-8F6F-44A1976365A9@oracle.com> References: <00a601cd28de$1ada5760$508f0620$@com.au> <3455917A-0FB4-410C-8F6F-44A1976365A9@oracle.com> Message-ID: <4FA29C1D.4040901@oracle.com> Btw, here is the pointer to the bug ID: http://javafx-jira.kenai.com/browse/RT-18901 -- Kevin Thor Johannesson wrote: > Correct, there is a problem with sub-pixel text on transparent surfaces. This will be fixed for hardware pipeline by 2.2. > > The outstanding fix will make use of what color we have in background. Note if background is fully transparent then sub-pixel antialiasing will be lost, resulting in aa grayscale text. > > -Thor > On May 2, 2012, at 8:37 PM, John C. Turnbull wrote: > > >> It seems that text rendered in any "pop-up" context such as menus, combo >> boxes etc. is rendered without sub-pixel antialiasing (on Windows at least). >> >> >> >> Does this have something to do with the transparent nature of pop-ups? Is >> it likely to be fixed in the future? >> >> >> >> Thanks, >> >> >> >> -jct >> >> > > From hang.vo at oracle.com Thu May 3 09:48:35 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 03 May 2012 16:48:35 +0000 Subject: hg: openjfx/2.2/graphics/rt: Backed out changeset 3d10357ee79e until test failures, etc., can be resolved Message-ID: <20120503164836.6C4004712D@hg.openjdk.java.net> Changeset: 57aeca409bd8 Author: kcr Date: 2012-05-03 09:16 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/57aeca409bd8 Backed out changeset 3d10357ee79e until test failures, etc., can be resolved ! javafx-ui-common/src/com/sun/javafx/application/ParametersImpl.java ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/src/com/sun/javafx/css/converters/EnumConverter.java ! javafx-ui-common/src/com/sun/javafx/css/parser/CSSParser.java ! javafx-ui-common/src/com/sun/javafx/css/parser/Css2Bin.java ! javafx-ui-common/src/com/sun/javafx/scene/KeyboardShortcutsHandler.java ! javafx-ui-common/src/com/sun/javafx/stage/StageHelper.java ! javafx-ui-common/src/com/sun/javafx/tk/Toolkit.java ! javafx-ui-common/src/javafx/scene/ImageCursor.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/src/javafx/scene/Parent.java ! javafx-ui-common/src/javafx/scene/Scene.java ! javafx-ui-common/src/javafx/scene/effect/Effect.java ! javafx-ui-common/src/javafx/scene/input/DataFormat.java ! javafx-ui-common/src/javafx/scene/input/DragEvent.java ! javafx-ui-common/src/javafx/scene/input/InputMethodEvent.java ! javafx-ui-common/src/javafx/scene/input/InputMethodTextRun.java ! javafx-ui-common/src/javafx/scene/input/KeyCharacterCombination.java ! javafx-ui-common/src/javafx/scene/input/Mnemonic.java ! javafx-ui-common/src/javafx/scene/input/MouseEvent.java From hang.vo at oracle.com Thu May 3 10:33:35 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 03 May 2012 17:33:35 +0000 Subject: hg: openjfx/2.2/graphics/rt: 2 new changesets Message-ID: <20120503173337.124154712E@hg.openjdk.java.net> Changeset: 2dd3f2b733f2 Author: hudson Date: 2012-05-02 21:30 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/2dd3f2b733f2 Added tag 2.2-b07 for changeset 3fa9344823cf ! .hgtags Changeset: 13e347dcb461 Author: jpgodine at JPGODINE-LAP.st-users.us.oracle.com Date: 2012-05-03 09:44 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/13e347dcb461 Automated merge with ssh://jpgodine at jfxsrc.us.oracle.com//javafx/2.2/MASTER/jfx/rt From hang.vo at oracle.com Thu May 3 10:48:30 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 03 May 2012 17:48:30 +0000 Subject: hg: openjfx/2.2/controls/rt: 8 new changesets Message-ID: <20120503174837.1D8C34712F@hg.openjdk.java.net> Changeset: 9e65aa11d0e9 Author: Martin Sladecek Date: 2012-04-25 15:08 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/9e65aa11d0e9 RT-19286: added null check to Scene.root property to avoid subsequent NPEs in pulse processing. ! javafx-ui-common/src/javafx/scene/Scene.java ! javafx-ui-common/test/unit/javafx/scene/Scene_properties_Test.java Changeset: 1f2785200439 Author: Martin Sladecek Date: 2012-04-25 15:09 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/1f2785200439 merge ! javafx-ui-common/src/javafx/scene/Scene.java Changeset: 8cb18dcf8b2c Author: Martin Sladecek Date: 2012-04-25 15:09 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/8cb18dcf8b2c merge ! javafx-ui-common/src/javafx/scene/Scene.java Changeset: d7260037bad0 Author: Pavel Safrata Date: 2012-04-26 17:16 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/d7260037bad0 RT-21127: fixed mouse wheel scrolling after touch screen scrolling. ! javafx-ui-common/src/javafx/scene/Scene.java ! javafx-ui-common/test/unit/javafx/scene/input/ScrollEventTest.java Changeset: 3ae1a875814f Author: Pavel Safrata Date: 2012-04-26 18:06 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/3ae1a875814f Added test for mosue events delivered to nodes moving under still mouse. ! javafx-ui-common/test/unit/javafx/scene/MouseTest.java Changeset: 3fa9344823cf Author: jpgodine at JPGODINE-LAP.st-users.us.oracle.com Date: 2012-05-01 10:04 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/3fa9344823cf Automated merge with ssh://jpgodine at jfxsrc.us.oracle.com//javafx/2.2/MASTER/jfx/rt Changeset: 2dd3f2b733f2 Author: hudson Date: 2012-05-02 21:30 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/2dd3f2b733f2 Added tag 2.2-b07 for changeset 3fa9344823cf ! .hgtags Changeset: c94ff7a27a08 Author: leifs Date: 2012-05-03 10:31 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/c94ff7a27a08 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/MASTER/rt From richard.bair at oracle.com Thu May 3 11:48:53 2012 From: richard.bair at oracle.com (Richard Bair) Date: Thu, 3 May 2012 11:48:53 -0700 Subject: API review request: RT-18533 Supply a Path constructor which accepts collections In-Reply-To: <4FA29836.9040706@oracle.com> References: <4FA29836.9040706@oracle.com> Message-ID: <6709FD7E-9888-4977-9490-AB0D62929660@oracle.com> +1 Richard On May 3, 2012, at 7:37 AM, Martin Sladecek wrote: > Hello, > > JIRA: http://javafx-jira.kenai.com/browse/RT-18533 > > The API change is quite simple, it's just a new Path constructor: > Path(Collection elements) > > Thanks, > -Martin From richard.bair at oracle.com Thu May 3 11:51:28 2012 From: richard.bair at oracle.com (Richard Bair) Date: Thu, 3 May 2012 11:51:28 -0700 Subject: API review request for RT-18980 In-Reply-To: <4FA29485.3050202@oracle.com> References: <4FA1718B.6080909@oracle.com> <4FA29485.3050202@oracle.com> Message-ID: <368C34D3-3401-4CAB-A5B8-420D790A286E@oracle.com> >> - What if we call it WebHistory? I've been thinking we might add a "History" class at the app framework level at some point such that your app can have navigation history as well, so it would be nice to avoid a potential name class. Since we have WebView& WebEngine already, WebHistory seems appropriate. > > Am I right, that you're talking about _another_ History class that you're planning to add to public API? (If so, I'm just curious what kind of history it's to present?) > Anyway, WebHistory name is fine for sure. Ya, and not necessarily something to be added in the near future (pending app framework discussions). See JFXFlow and Ensemble for examples. In these cases the application is built of "pages" -- although not HTML pages the concept is the same. You can also have history in Ensemble and hit back / forward buttons. So it isn't about navigating from one web page to another, but from one "screen" or page in your application to another. > So, I'll make the API conform to FX concepts according to your suggestions. Sounds good! Can you just post another message with the updated API when it is completed? Thanks! Richard From hang.vo at oracle.com Thu May 3 20:33:19 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 04 May 2012 03:33:19 +0000 Subject: hg: openjfx/2.2/controls/rt: RT-21292: fix for leaking CalculatedValue Message-ID: <20120504033321.9870347140@hg.openjdk.java.net> Changeset: 59ae894c63c3 Author: David Grieve Date: 2012-05-03 23:17 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/59ae894c63c3 RT-21292: fix for leaking CalculatedValue ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java From mp at jugs.org Fri May 4 05:40:31 2012 From: mp at jugs.org (Dr. Michael Paus) Date: Fri, 04 May 2012 14:40:31 +0200 Subject: JavaFX and (Affine)Transforms In-Reply-To: <20120503043627.DC35D4710E@hg.openjdk.java.net> References: <20120503043627.DC35D4710E@hg.openjdk.java.net> Message-ID: <4FA3CE3F.7030108@jugs.org> Hello, I recently experimented a bit with the graphic features of JavaFX (Shapes, Group-Nodes and Transforms). One thing I very quickly stumbled over is the missing support for any kind of mathematical operations on (Affine) transforms. You can neither get at the matrix elements of a Scale, Translate, etc. (because these Affine transforms are not even a sub-class of Affine) nor could you perform any operations on them like for example combining two transforms into one or applying the transform or its inverse to a point. Sometimes even the documentation is wrong (see for example Scale: The description of the matrix completely ignores the pivot element which is an integral part of this class.) I really wonder how you can write any sophisticated graphics program without support for such kind of operations. Is there any magic way around this, which I don't know or has just nobody ever tried to do that? There already exists a JIRA entry for this http://javafx-jira.kenai.com/browse/RT-17942 but obviously I am the only person in the world, in addition to the original author, who is interested in that. How can that be? Michael From martin.desruisseaux at geomatys.fr Fri May 4 06:14:11 2012 From: martin.desruisseaux at geomatys.fr (Martin Desruisseaux) Date: Fri, 04 May 2012 15:14:11 +0200 Subject: JavaFX and (Affine)Transforms In-Reply-To: <4FA3CE3F.7030108@jugs.org> References: <20120503043627.DC35D4710E@hg.openjdk.java.net> <4FA3CE3F.7030108@jugs.org> Message-ID: <4FA3D623.5070406@geomatys.fr> Now it is my turn to vote a big ++1. Affine transform is also a crucial part of Geographic Information System. Our implementation is making an extensive use of java.awt.geom.AffineTransform and I can not yet switch to the JavaFX transform classes in their current form. Almost every methods in the Java2D AffineTransform class are important, with special emphasis on: * transform(double, int, double, int, int) * transform(float, int, float, int, int) * transform(float, int, double, int, int) * transform(double, int, float, int, int) * concatenate(AffineTransform) * preConcatenate(AffineTransform) * getMatrix(double[]) * getScaleX(), getScaleY(), getShearX(), etc. * inverse(); Notes: * Java2D AffineTransform is modifiable, while JavaFX transform classes seem to be immutable. Immutable transforms with 'concatenate' and similar methods returning new instances are fine. * Transform methods working in arbitrary positions of existing arrays are essential. We are continuously transforming million of coordinates, not only for display purpose - performance is critical in this area. * We only need 'float' and 'double' types, no need for 'int'. The 'double' type is essential - map projections in float precision have unacceptable errors. * The 'transform' methods mixing the array of 'float' and 'double' types in their signature are important. They are used in the following scenario, where to source and target arrays are of type 'float', but the intermediate map projection must be performed in 'double' precision: 1. Affine transform for applying axis reordering, unit conversion, prime meridian rotation. Source array may be 'float' or 'double', but destination array must be 'double'. 2. Map projection - must be performed on array of type 'double', otherwise errors are too high. 3. Affine transform for applying scale factor, easting, northing, unit conversion and axis reordering. Source array is always 'double', but destination array may be 'double' or 'float'. In summary, the current Java2D AffineTransform API is excellent in my opinion. Having equivalent functionalities in JavaFX would be nice (hardware acceleration would be wonderful), eventually as immutable classes. Otherwise we would probably stay with the Java2D implementation on the computation side... Regards, Martin Desruisseaux Le 04/05/12 14:40, Dr. Michael Paus a ?crit : > Hello, > > I recently experimented a bit with the graphic features of JavaFX > (Shapes, Group-Nodes and Transforms). > One thing I very quickly stumbled over is the missing support for any > kind of mathematical operations > on (Affine) transforms. You can neither get at the matrix elements of > a Scale, Translate, etc. (because > these Affine transforms are not even a sub-class of Affine) nor could > you perform any operations on them > like for example combining two transforms into one or applying the > transform or its inverse to a point. > Sometimes even the documentation is wrong (see for example Scale: The > description of the matrix > completely ignores the pivot element which is an integral part of this > class.) > > I really wonder how you can write any sophisticated graphics program > without support for such kind > of operations. Is there any magic way around this, which I don't know > or has just nobody ever tried > to do that? There already exists a JIRA entry for this > http://javafx-jira.kenai.com/browse/RT-17942 > but obviously I am the only person in the world, in addition to the > original author, who is interested > in that. How can that be? > > Michael > From jeff at reportmill.com Fri May 4 06:20:47 2012 From: jeff at reportmill.com (Jeff Martin) Date: Fri, 4 May 2012 08:20:47 -0500 Subject: JavaFX and (Affine)Transforms In-Reply-To: <4FA3CE3F.7030108@jugs.org> References: <20120503043627.DC35D4710E@hg.openjdk.java.net> <4FA3CE3F.7030108@jugs.org> Message-ID: I wonder if this is to support the animation - the transform is really a composite of the translate, rotate, scale and skew computed on the fly. Though I suppose that doesn't necessarily preclude the idea that a node could/should have it's transform computed through some other means. Though perhaps much of these use cases could be addressed though an extensible effect architecture. jeff On May 4, 2012, at 7:40 AM, Dr. Michael Paus wrote: > Hello, > > I recently experimented a bit with the graphic features of JavaFX (Shapes, Group-Nodes and Transforms). > One thing I very quickly stumbled over is the missing support for any kind of mathematical operations > on (Affine) transforms. You can neither get at the matrix elements of a Scale, Translate, etc. (because > these Affine transforms are not even a sub-class of Affine) nor could you perform any operations on them > like for example combining two transforms into one or applying the transform or its inverse to a point. > Sometimes even the documentation is wrong (see for example Scale: The description of the matrix > completely ignores the pivot element which is an integral part of this class.) > > I really wonder how you can write any sophisticated graphics program without support for such kind > of operations. Is there any magic way around this, which I don't know or has just nobody ever tried > to do that? There already exists a JIRA entry for this http://javafx-jira.kenai.com/browse/RT-17942 > but obviously I am the only person in the world, in addition to the original author, who is interested > in that. How can that be? > > Michael > From martin.desruisseaux at geomatys.fr Fri May 4 06:33:53 2012 From: martin.desruisseaux at geomatys.fr (Martin Desruisseaux) Date: Fri, 04 May 2012 15:33:53 +0200 Subject: JavaFX and (Affine)Transforms In-Reply-To: References: <20120503043627.DC35D4710E@hg.openjdk.java.net> <4FA3CE3F.7030108@jugs.org> Message-ID: <4FA3DAC1.5020201@geomatys.fr> Le 04/05/12 15:20, Jeff Martin a ?crit : > I wonder if this is to support the animation - the transform is really a composite of the translate, rotate, scale and skew computed on the fly. Yes, I agree that JavaFX can be restricted to *Affine* transform (which include the above-cited composites), and leave more sophisticated transforms to other libraries. But I think that the email was not about a framework for arbitrary transform, but rather about getting an access to the computation power of existing affine transforms. E.g. being able to apply a transform on our own array of coordinates, concatenate two affine transforms in order to get a new one (mathematically, this is a matrix multiplication - this is sometime performed straight on the GPU, and maybe JavaFX already do that under the hood), etc. Martin From alexander.kouznetsov at oracle.com Fri May 4 06:38:12 2012 From: alexander.kouznetsov at oracle.com (Alexander Kouznetsov) Date: Fri, 04 May 2012 17:38:12 +0400 Subject: JavaFX and (Affine)Transforms In-Reply-To: <4FA3D623.5070406@geomatys.fr> References: <20120503043627.DC35D4710E@hg.openjdk.java.net> <4FA3CE3F.7030108@jugs.org> <4FA3D623.5070406@geomatys.fr> Message-ID: <4FA3DBC4.7040505@oracle.com> Martin, As a workaround you could easily combine Java2D AffineTransform and JavaFX Affine as it allows you to get/set or even bind particular values. So you can calculate your transforms in Java2D AffineTransform and then update an Affine transform object of the node. Best regards, Alexander Kouznetsov On 04.05.2012 17:14, Martin Desruisseaux wrote: > Now it is my turn to vote a big ++1. > > Affine transform is also a crucial part of Geographic Information > System. Our implementation is making an extensive use of > java.awt.geom.AffineTransform and I can not yet switch to the JavaFX > transform classes in their current form. Almost every methods in the > Java2D AffineTransform class are important, with special emphasis on: > > * transform(double, int, double, int, int) > * transform(float, int, float, int, int) > * transform(float, int, double, int, int) > * transform(double, int, float, int, int) > * concatenate(AffineTransform) > * preConcatenate(AffineTransform) > * getMatrix(double[]) > * getScaleX(), getScaleY(), getShearX(), etc. > * inverse(); > > > Notes: > > * Java2D AffineTransform is modifiable, while JavaFX transform classes > seem to be immutable. Immutable transforms with 'concatenate' and > similar methods returning new instances are fine. > * Transform methods working in arbitrary positions of existing arrays > are essential. We are continuously transforming million of > coordinates, not only for display purpose - performance is critical > in this area. > * We only need 'float' and 'double' types, no need for 'int'. The > 'double' type is essential - map projections in float precision have > unacceptable errors. > * The 'transform' methods mixing the array of 'float' and 'double' > types in their signature are important. They are used in the > following scenario, where to source and target arrays are of type > 'float', but the intermediate map projection must be performed in > 'double' precision: > > 1. Affine transform for applying axis reordering, unit conversion, > prime meridian rotation. Source array may be 'float' or > 'double', but destination array must be 'double'. > 2. Map projection - must be performed on array of type 'double', > otherwise errors are too high. > 3. Affine transform for applying scale factor, easting, northing, > unit conversion and axis reordering. Source array is always > 'double', but destination array may be 'double' or 'float'. > > > In summary, the current Java2D AffineTransform API is excellent in my > opinion. Having equivalent functionalities in JavaFX would be nice > (hardware acceleration would be wonderful), eventually as immutable > classes. Otherwise we would probably stay with the Java2D > implementation on the computation side... > > Regards, > > Martin Desruisseaux > > > Le 04/05/12 14:40, Dr. Michael Paus a ?crit : >> Hello, >> >> I recently experimented a bit with the graphic features of JavaFX >> (Shapes, Group-Nodes and Transforms). >> One thing I very quickly stumbled over is the missing support for any >> kind of mathematical operations >> on (Affine) transforms. You can neither get at the matrix elements of >> a Scale, Translate, etc. (because >> these Affine transforms are not even a sub-class of Affine) nor could >> you perform any operations on them >> like for example combining two transforms into one or applying the >> transform or its inverse to a point. >> Sometimes even the documentation is wrong (see for example Scale: The >> description of the matrix >> completely ignores the pivot element which is an integral part of >> this class.) >> >> I really wonder how you can write any sophisticated graphics program >> without support for such kind >> of operations. Is there any magic way around this, which I don't know >> or has just nobody ever tried >> to do that? There already exists a JIRA entry for this >> http://javafx-jira.kenai.com/browse/RT-17942 >> but obviously I am the only person in the world, in addition to the >> original author, who is interested >> in that. How can that be? >> >> Michael >> From martin.desruisseaux at geomatys.fr Fri May 4 06:47:15 2012 From: martin.desruisseaux at geomatys.fr (Martin Desruisseaux) Date: Fri, 04 May 2012 15:47:15 +0200 Subject: JavaFX and (Affine)Transforms In-Reply-To: <4FA3DBC4.7040505@oracle.com> References: <20120503043627.DC35D4710E@hg.openjdk.java.net> <4FA3CE3F.7030108@jugs.org> <4FA3D623.5070406@geomatys.fr> <4FA3DBC4.7040505@oracle.com> Message-ID: <4FA3DDE3.6080208@geomatys.fr> Hello Alexander Le 04/05/12 15:38, Alexander Kouznetsov a ?crit : > As a workaround you could easily combine Java2D AffineTransform and > JavaFX Affine as it allows you to get/set or even bind particular > values. So you can calculate your transforms in Java2D AffineTransform > and then update an Affine transform object of the node Right, this is fair. Actually, my notes about AffineTransform and (in previous email) about RenderedImage were not intended for the short term. Given that we can use some parts of Java2D and JavaFX together, there is no rush. It was rather aimed as proposal of features to keep in mind if JavaFX replaces Java2D in the long term. Thanks for all you work! Martin From hang.vo at oracle.com Fri May 4 07:39:18 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 04 May 2012 14:39:18 +0000 Subject: hg: openjfx/2.2/controls/rt: 3 new changesets Message-ID: <20120504143921.E86C647153@hg.openjdk.java.net> Changeset: 83430f042b23 Author: David Grieve Date: 2012-05-03 23:41 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/83430f042b23 [DOCS-ONLY] add "SB-dependency: RT-XXXXX has been filed to track this" comment for css related impl_ methods that are used by SceneBuilder ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/src/javafx/scene/Parent.java ! javafx-ui-controls/src/javafx/scene/control/MenuItem.java ! javafx-ui-controls/src/javafx/scene/control/PopupControl.java ! javafx-ui-controls/src/javafx/scene/control/Tab.java Changeset: fc135f987a0c Author: David Grieve Date: 2012-05-04 00:41 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/fc135f987a0c RT-21185: only apply a css value if the new value is not equals the current value. ! javafx-ui-common/src/com/sun/javafx/css/StyleableProperty.java ! javafx-ui-common/test/unit/com/sun/javafx/css/StyleablePropertyTest.java Changeset: 365cde0469cd Author: Paru Somashekar Date: 2012-05-04 01:09 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/365cde0469cd ColorPicker changes including adding Tooltip, context menu to delete custom color. ! javafx-ui-controls/src/com/sun/javafx/scene/control/ColorPicker.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPalette.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPickerSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/CustomColorDialog.java From Sergey.Malenkov at oracle.com Fri May 4 07:50:41 2012 From: Sergey.Malenkov at oracle.com (Sergey Malenkov) Date: Fri, 04 May 2012 18:50:41 +0400 Subject: API REVIEW request for RT-19042: Add fontSmoothingType API to WebView Message-ID: <4FA3ECC1.1070405@oracle.com> JIRA: http://javafx-jira.kenai.com/browse/RT-19042 We need ability to control the font smoothing type during the text rendering. Our proposal for JavaFX 2.2 is to add a new property to the WebView class, which should be similar to the fontSmoothingType property of the Text class. Also we should add new style class (web-view) to the default JavaFX style (caspian.css) and describe it in the CSS reference document (cssref.html). webrev: http://javaweb.us.oracle.com/jcg/fx-webrevs/RT-19042/2/ The proposed public API (including javadoc) is copied from the Text class: /** * Specifies a requested font smoothing type : gray or LCD. * * The width of the bounding box is defined by the widest row. * * Note: LCD mode doesn't apply in numerous cases, such as various * compositing modes, where effects are applied and very large glyphs. * * @defaultValue FontSmoothingType.GRAY */ private ObjectProperty fontSmoothingType; public final void setFontSmoothingType(FontSmoothingType value) {...} public final FontSmoothingType getFontSmoothingType() {...} public final ObjectProperty fontSmoothingTypeProperty() {...} /** * Super-lazy instantiation pattern from Bill Pugh. * StyleableProperties is referenced no earlier * (and therefore loaded no earlier by the class loader) * than the moment that {@code impl_CSS_STYLEABLES()} is called. * * @return list of supported styleable properties * @treatAsPrivate implementation detail * @deprecated this is an internal API * that is not intended for use * and will be removed in the next version */ @Deprecated public static List impl_CSS_STYLEABLES() { return WebView.StyleableProperties.STYLEABLES; } /** * RT-19263 * * @return list of supported styleable properties * @treatAsPrivate implementation detail * @deprecated this is an experimental API * that is not intended for general use * and is subject to change in future versions */ @Deprecated @Override public List impl_getStyleableProperties() { return impl_CSS_STYLEABLES(); } Thanks, SAM From pedro.duquevieira at gmail.com Fri May 4 08:34:44 2012 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Fri, 4 May 2012 16:34:44 +0100 Subject: JavaFX and (Affine)Transforms Message-ID: +1 for this. If you have a look at java3D they have this part pretty well figured, you can get/set transforms and apply calculations to them. Related to this issue is this one: http://javafx-jira.kenai.com/browse/RT-520 You can't do something like a Billboard behavior right now. That is for instance, making a label in a 2d scene always show parallel to the bottom of the screen and left to right whatever the transforms applied to its parents are, so the user can read it. Best regards, -- Pedro Duque Vieira From pedro.duquevieira at gmail.com Fri May 4 08:40:26 2012 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Fri, 4 May 2012 16:40:26 +0100 Subject: A supported public API for HTML Editor customization Message-ID: +1 for this one. I think the text editing controls shouldn't come with the control that displays the HTML. Those should be two separate things. A programmer should be able to create their own controls for interacting with the HTML viewer/editor and hook them with the HTML viewer/editor by calling the methods to edit/change the html within. -- Pedro Duque Vieira From alexander.kouznetsov at oracle.com Fri May 4 09:29:04 2012 From: alexander.kouznetsov at oracle.com (Alexander Kouznetsov) Date: Fri, 04 May 2012 20:29:04 +0400 Subject: JavaFX and (Affine)Transforms In-Reply-To: References: Message-ID: <4FA403D0.603@oracle.com> However there is another approach for that. You can put label in not transformed layer on top of other content and use localToScene methods to get the pivot point to move it along with the content. Best regards, Alexander Kouznetsov On 04.05.2012 19:34, Pedro Duque Vieira wrote: > +1 for this. > If you have a look at java3D they have this part pretty well figured, you > can get/set transforms and apply calculations to them. > > Related to this issue is this one: > http://javafx-jira.kenai.com/browse/RT-520 > > You can't do something like a Billboard behavior right now. > That is for instance, making a label in a 2d scene always show parallel to > the bottom of the screen and left to right whatever the > transforms applied to its parents are, so the user can read it. > > Best regards, From hang.vo at oracle.com Fri May 4 10:03:41 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 04 May 2012 17:03:41 +0000 Subject: hg: openjfx/2.2/controls/rt: [DOCS-ONLY] added SB-dependency: RT-XXXXX has been filed to track this comment for css related impl_ methods that are used by SceneBuilder Message-ID: <20120504170342.7ADE947159@hg.openjdk.java.net> Changeset: 1547cbd2e620 Author: mickf Date: 2012-05-04 17:49 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/1547cbd2e620 [DOCS-ONLY] added SB-dependency: RT-XXXXX has been filed to track this comment for css related impl_ methods that are used by SceneBuilder ! javafx-ui-common/src/javafx/scene/Scene.java From hang.vo at oracle.com Fri May 4 11:03:20 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 04 May 2012 18:03:20 +0000 Subject: hg: openjfx/2.2/controls/rt: RT-20779 : Scaling UI Controls down to QVGA: ScrollBar Message-ID: <20120504180321.CC6E74715B@hg.openjdk.java.net> Changeset: e894075f1b23 Author: mickf Date: 2012-05-04 18:57 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/e894075f1b23 RT-20779 : Scaling UI Controls down to QVGA: ScrollBar ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ScrollBarSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/Utils.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css From hang.vo at oracle.com Fri May 4 11:18:16 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 04 May 2012 18:18:16 +0000 Subject: hg: openjfx/2.2/controls/rt: RT-20780 : Scaling UI Controls down to QVGA: ScrollPane Message-ID: <20120504181817.93FD84715C@hg.openjdk.java.net> Changeset: 9e562a96597c Author: mickf Date: 2012-05-04 19:03 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/9e562a96597c RT-20780 : Scaling UI Controls down to QVGA: ScrollPane ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ScrollPaneSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css ! javafx-ui-controls/test/com/sun/javafx/scene/control/skin/ScrollPaneSkinTest.java From goddard at seznam.cz Fri May 4 11:18:36 2012 From: goddard at seznam.cz (goddard at seznam.cz) Date: Fri, 04 May 2012 20:18:36 +0200 (CEST) Subject: =?us-ascii?Q?Radial=20gradient=20used=20as=20a=20Stroke?= Message-ID: <127155.22797.16068-31718-1461680907-1336155516@seznam.cz> Hello, I've got this piece of code https://github.com/g0dd4rd/TKE/blob/master/src/tke/Encounter.java where I use Circle as a clip for Rectangle to see the background. The Circle has a Stroke, but this Stroke is not shown when used with a clip. Does it work as designed? My goal is to use RadialGradient as a Stroke. I haven't found an issue for it for JIRA, so I'm asking here. Regards, Jiri From anton.tarasov at oracle.com Fri May 4 15:20:36 2012 From: anton.tarasov at oracle.com (Anton V. Tarasov) Date: Sat, 05 May 2012 02:20:36 +0400 Subject: API review request for RT-18980 In-Reply-To: <368C34D3-3401-4CAB-A5B8-420D790A286E@oracle.com> References: <4FA1718B.6080909@oracle.com> <4FA29485.3050202@oracle.com> <368C34D3-3401-4CAB-A5B8-420D790A286E@oracle.com> Message-ID: <4FA45634.2010006@oracle.com> Hi, Richard, On 5/3/12 10:51 PM, Richard Bair wrote: >>> - What if we call it WebHistory? I've been thinking we might add a "History" class at the app framework level at some point such that your app can have navigation history as well, so it would be nice to avoid a potential name class. Since we have WebView& WebEngine already, WebHistory seems appropriate. >> Am I right, that you're talking about _another_ History class that you're planning to add to public API? (If so, I'm just curious what kind of history it's to present?) >> Anyway, WebHistory name is fine for sure. > Ya, and not necessarily something to be added in the near future (pending app framework discussions). See JFXFlow and Ensemble for examples. In these cases the application is built of "pages" -- although not HTML pages the concept is the same. You can also have history in Ensemble and hit back / forward buttons. So it isn't about navigating from one web page to another, but from one "screen" or page in your application to another. > Ok, I see. Thanks for the details. >> So, I'll make the API conform to FX concepts according to your suggestions. > Sounds good! Can you just post another message with the updated API when it is completed? > Sure! =) Below is the updated version. Please, share your thoughts if you have any other ideas. /** * The {@code WebHistory} class represents a session history associated with * a {@link WebEngine} instance. * * There is a single instance of this class per {@code WebEngine} that can be * obtained via the {@link WebEngine#getHistory()} method. * * The history is basically a list of entries each of them represents a visited page * and provides access to relevant page info such as URL, title and visited date. * The list can be obtained with help of the {@link #getEntries()} method. * * The history and thus the list of entries change as {@code WebEngine} navigates * across the web. It may expand or shrink depending on browser actions. These * changes can be listened to with help of the {@link javafx.collections.ObservableList} * API that the list exposes. * * There is a notion of the current entry which is associated with the page currently * visited by {@code WebEngine}. Its index in the history list is represented by the * {@link currentIndexProperty}. The current index can be used to navigate to any * entry in the history with help of the {@link #go(int)} method. The simple * {@link #goBack()} and {@link #goForward()} methods are convenient methods to * navigate one entry back and forward respectively. * * It is possible to limit the maximum history size, which is the size of the * history list, by means of the {@link maxSizeProperty()}. */ public final class WebHistory { /** * The {@code Entry} class represents a single entry in the session history. * An entry instance is associated with a visited page. */ public final class Entry { /** * Returns the {@link java.net.URL} of the page. * * @return the url of the page */ public URL getUrl(); /** * Defines the title of the page. */ public ReadOnlyObjectProperty titleProperty(); public String getTitle(); /** * Defines the {@link java.util.Date} the page was last visited. */ public ReadOnlyObjectProperty lastVisitedDateProperty(); public Date getLastVisitedDate(); } /** * Defines the index of the current {@code Entry} in the history. * The current entry is the entry associated with the currently displayed page. * The index belongs to the range (index >= 0 && index < getEntries().size()) */ public ReadOnlyIntegerProperty currentIndexProperty(); public int getCurrentIndex(); /** * Defines the maximum size of the history list. * If the list reaches its maximum and a new entry is added to the history, * the first entry gets removed automatically. *

* A value of less than 0 will be treated as 0. * * @defaultValue 100 */ public IntegerProperty maxSizeProperty(); public void setMaxSize(int value); public int getMaxSize(); /** * Returns an unmodifiable observable list of all entries in the history. * * @return list of all history entries */ public ObservableList getEntries(); /** * Causes {@link WebView} to navigate to the page corresponding to * the {@code Entry} within the specified position relative to the current * entry. Negative (positive) {@code shift} value specifies the position * left (right) to the current entry. For instance, -1 points to the previous * entry and 1 points to the next entry. * * Zero {@code shift} value is silently ignored (no-op). * * The effective entry position should belong to the rage of [0..length-1], * otherwise IndexOutOfBoundsException is thrown. * * @param shift negative (positive) value specifies a position relative * to the left (right) from the current entry, zero value causes * no effect * @throws IndexOutOfBoundsException if the effective entry position is out * of range */ public void go(int shift) throws IndexOutOfBoundsException; /** * Causes {@link WebView} to navigate to the previous page in the * history. A call to this method is equivalent to a {@code go(-1)} call. * If the current entry is the first entry in the list, the call has no effect. * * @return true if the previous entry exists in the list, otherwise false */ public boolean goBack(); /** * Causes {@link WebView} to navigate to the next page in the history. * A call to this method is equivalent to a {@code go(1)} call. * If the current entry is the last entry in the list, the call has no effect. * * @return true if the next entry exists in the list, otherwise false */ public boolean goForward(); } --- Thanks, Anton. From pedro.duquevieira at gmail.com Fri May 4 13:39:07 2012 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Fri, 4 May 2012 21:39:07 +0100 Subject: JavaFX and (Affine)Transforms In-Reply-To: <4FA403D0.603@oracle.com> References: <4FA403D0.603@oracle.com> Message-ID: Problem is, in certain apps, I have one like that, you do not want so separate the label from the other components on the scene graph, you just want to make it readable. It's a Billboard behavior, very used in 3D computer graphics, usually to render sprites parallel to the camera but also useful in these cases. Thanks, On Fri, May 4, 2012 at 5:29 PM, Alexander Kouznetsov < alexander.kouznetsov at oracle.com> wrote: > However there is another approach for that. You can put label in not > transformed layer on top of other content and use localToScene methods to > get the pivot point to move it along with the content. > > Best regards, > Alexander Kouznetsov > > > > On 04.05.2012 19:34, Pedro Duque Vieira wrote: > >> +1 for this. >> If you have a look at java3D they have this part pretty well figured, you >> can get/set transforms and apply calculations to them. >> >> Related to this issue is this one: >> http://javafx-jira.kenai.com/**browse/RT-520 >> >> You can't do something like a Billboard behavior right now. >> That is for instance, making a label in a 2d scene always show parallel to >> the bottom of the screen and left to right whatever the >> transforms applied to its parents are, so the user can read it. >> >> Best regards, >> > -- Pedro Duque Vieira From pedro.duquevieira at gmail.com Fri May 4 13:43:55 2012 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Fri, 4 May 2012 21:43:55 +0100 Subject: A supported public API for HTML Editor customization In-Reply-To: References: Message-ID: I think my choice of words might not have been the best. I'll try to clarify my opinion: What I meant is, you should be able to have the rich text editor without the accompanying controls (like make bold, copy, etc). There should be methods on the HTMLEditor class for making the selected text bold, hyperlink, copy, etc like what exists now for the class TextInputControl. Than you could create whatever controls you'd like, and place them wherever you want, and call the methods on the HTMLEditor to perform the mentioned actions. Also shouldn't HTMLEditor be a subclass of TextInputControl? Cheers, thanks On Fri, May 4, 2012 at 4:40 PM, Pedro Duque Vieira < pedro.duquevieira at gmail.com> wrote: > +1 for this one. > > I think the text editing controls shouldn't come with the control that > displays the HTML. > Those should be two separate things. > > A programmer should be able to create their own controls for interacting > with the HTML viewer/editor and hook them with the HTML viewer/editor by > calling the methods to edit/change the html within. > > -- > Pedro Duque Vieira > -- Pedro Duque Vieira From alexander.kouznetsov at oracle.com Fri May 4 14:19:42 2012 From: alexander.kouznetsov at oracle.com (Alexander Kouznetsov) Date: Sat, 05 May 2012 01:19:42 +0400 Subject: JavaFX and (Affine)Transforms In-Reply-To: References: <4FA403D0.603@oracle.com> Message-ID: <4FA447EE.1070101@oracle.com> That's true. I just wanted to make a point that there is a workaround. Best regards, Alexander Kouznetsov On 05.05.2012 0:39, Pedro Duque Vieira wrote: > Problem is, in certain apps, I have one like that, you do not want so > separate the label from the other components on the scene graph, you > just want to make it readable. > > It's a Billboard behavior, very used in 3D computer graphics, usually > to render sprites parallel to the camera but also useful in these cases. > > Thanks, > > On Fri, May 4, 2012 at 5:29 PM, Alexander Kouznetsov > > wrote: > > However there is another approach for that. You can put label in > not transformed layer on top of other content and use localToScene > methods to get the pivot point to move it along with the content. > > Best regards, > Alexander Kouznetsov > > > > On 04.05.2012 19:34, Pedro Duque Vieira wrote: > > +1 for this. > If you have a look at java3D they have this part pretty well > figured, you > can get/set transforms and apply calculations to them. > > Related to this issue is this one: > http://javafx-jira.kenai.com/browse/RT-520 > > You can't do something like a Billboard behavior right now. > That is for instance, making a label in a 2d scene always show > parallel to > the bottom of the screen and left to right whatever the > transforms applied to its parents are, so the user can read it. > > Best regards, > > > > > -- > Pedro Duque Vieira From alexander.kouznetsov at oracle.com Fri May 4 14:22:03 2012 From: alexander.kouznetsov at oracle.com (Alexander Kouznetsov) Date: Sat, 05 May 2012 01:22:03 +0400 Subject: A supported public API for HTML Editor customization In-Reply-To: References: Message-ID: <4FA4487B.2050703@oracle.com> Hi Pedro, All sounds like a reasonable suggestions. Could you please file a bug on that or I can do that for you. Thank you! Best regards, Alexander Kouznetsov On 05.05.2012 0:43, Pedro Duque Vieira wrote: > I think my choice of words might not have been the best. I'll try to > clarify my opinion: > > What I meant is, you should be able to have the rich text editor without > the accompanying controls (like make bold, copy, etc). > There should be methods on the HTMLEditor class for making the selected > text bold, hyperlink, copy, etc like what exists now for the class > TextInputControl. Than you could create whatever controls you'd like, and > place them wherever you want, and call the methods on the HTMLEditor to > perform the mentioned actions. > > Also shouldn't HTMLEditor be a subclass of TextInputControl? > > Cheers, thanks > > On Fri, May 4, 2012 at 4:40 PM, Pedro Duque Vieira< > pedro.duquevieira at gmail.com> wrote: > >> +1 for this one. >> >> I think the text editing controls shouldn't come with the control that >> displays the HTML. >> Those should be two separate things. >> >> A programmer should be able to create their own controls for interacting >> with the HTML viewer/editor and hook them with the HTML viewer/editor by >> calling the methods to edit/change the html within. >> >> -- >> Pedro Duque Vieira >> > > From pedro.duquevieira at gmail.com Fri May 4 14:22:47 2012 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Fri, 4 May 2012 22:22:47 +0100 Subject: JavaFX and (Affine)Transforms In-Reply-To: <4FA447EE.1070101@oracle.com> References: <4FA403D0.603@oracle.com> <4FA447EE.1070101@oracle.com> Message-ID: Oh, ok, sure. Thanks for the info. Best regards, On Fri, May 4, 2012 at 10:19 PM, Alexander Kouznetsov < alexander.kouznetsov at oracle.com> wrote: > That's true. I just wanted to make a point that there is a workaround. > > Best regards, > Alexander Kouznetsov > > > On 05.05.2012 0:39, Pedro Duque Vieira wrote: > > Problem is, in certain apps, I have one like that, you do not want so > separate the label from the other components on the scene graph, you just > want to make it readable. > > It's a Billboard behavior, very used in 3D computer graphics, usually to > render sprites parallel to the camera but also useful in these cases. > > Thanks, > > On Fri, May 4, 2012 at 5:29 PM, Alexander Kouznetsov < > alexander.kouznetsov at oracle.com> wrote: > >> However there is another approach for that. You can put label in not >> transformed layer on top of other content and use localToScene methods to >> get the pivot point to move it along with the content. >> >> Best regards, >> Alexander Kouznetsov >> >> >> >> On 04.05.2012 19:34, Pedro Duque Vieira wrote: >> >>> +1 for this. >>> If you have a look at java3D they have this part pretty well figured, you >>> can get/set transforms and apply calculations to them. >>> >>> Related to this issue is this one: >>> http://javafx-jira.kenai.com/browse/RT-520 >>> >>> You can't do something like a Billboard behavior right now. >>> That is for instance, making a label in a 2d scene always show parallel >>> to >>> the bottom of the screen and left to right whatever the >>> transforms applied to its parents are, so the user can read it. >>> >>> Best regards, >>> >> > > > -- > Pedro Duque Vieira > > -- Pedro Duque Vieira From pedro.duquevieira at gmail.com Fri May 4 14:29:48 2012 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Fri, 4 May 2012 22:29:48 +0100 Subject: A supported public API for HTML Editor customization In-Reply-To: <4FA4487B.2050703@oracle.com> References: <4FA4487B.2050703@oracle.com> Message-ID: Hi Alexander, I've just filled the issue: http://javafx-jira.kenai.com/browse/RT-21386 Thanks for your support. Best regards, On Fri, May 4, 2012 at 10:22 PM, Alexander Kouznetsov < alexander.kouznetsov at oracle.com> wrote: > Hi Pedro, > > All sounds like a reasonable suggestions. Could you please file a bug on > that or I can do that for you. > > Thank you! > > Best regards, > Alexander Kouznetsov > > > > On 05.05.2012 0:43, Pedro Duque Vieira wrote: > >> I think my choice of words might not have been the best. I'll try to >> clarify my opinion: >> >> What I meant is, you should be able to have the rich text editor without >> the accompanying controls (like make bold, copy, etc). >> There should be methods on the HTMLEditor class for making the selected >> text bold, hyperlink, copy, etc like what exists now for the class >> TextInputControl. Than you could create whatever controls you'd like, and >> place them wherever you want, and call the methods on the HTMLEditor to >> perform the mentioned actions. >> >> Also shouldn't HTMLEditor be a subclass of TextInputControl? >> >> Cheers, thanks >> >> On Fri, May 4, 2012 at 4:40 PM, Pedro Duque Vieira< >> pedro.duquevieira at gmail.com> wrote: >> >> +1 for this one. >>> >>> I think the text editing controls shouldn't come with the control that >>> displays the HTML. >>> Those should be two separate things. >>> >>> A programmer should be able to create their own controls for interacting >>> with the HTML viewer/editor and hook them with the HTML viewer/editor by >>> calling the methods to edit/change the html within. >>> >>> -- >>> Pedro Duque Vieira >>> >>> >> >> -- Pedro Duque Vieira From alexander.kouznetsov at oracle.com Fri May 4 14:38:13 2012 From: alexander.kouznetsov at oracle.com (Alexander Kouznetsov) Date: Sat, 05 May 2012 01:38:13 +0400 Subject: Radial gradient used as a Stroke In-Reply-To: <127155.22797.16068-31718-1461680907-1336155516@seznam.cz> References: <127155.22797.16068-31718-1461680907-1336155516@seznam.cz> Message-ID: <4FA44C45.1000408@oracle.com> Hi Jiri, Radial gradient has its center. By default it is 0, 0. Circle also has its center which is not 0, 0 most of the time. So the gradient is not following the circle. You can fix that by set circle center to 0, 0, while changing its translateX and translateY values. Please let me know if it resolved your problem. Best regards, Alexander Kouznetsov On 04.05.2012 22:18, goddard at seznam.cz wrote: > Hello, > > I've got this piece of code https://github.com/g0dd4rd/TKE/blob/master/src/tke/Encounter.java where I use Circle as a clip for Rectangle to see the background. The Circle has a Stroke, but this Stroke is not shown when used with a clip. > Does it work as designed? > My goal is to use RadialGradient as a Stroke. I haven't found an issue for it for JIRA, so I'm asking here. > > Regards, Jiri From joshua at marinacci.org Fri May 4 14:58:18 2012 From: joshua at marinacci.org (Josh Marinacci) Date: Fri, 4 May 2012 14:58:18 -0700 Subject: Image class and paths relative to classpath In-Reply-To: <4FA13F9D.7080301@oracle.com> References: <6378D88FD8DA4460ADBCB6EA8F8D2DC2@marinacci.org> <4FA13F9D.7080301@oracle.com> Message-ID: Drag and drop seems even worse now. If you drag from another app like the Finder, the second the cursor moves over the FX app's window the app will hang. - Josh -- Josh Marinacci joshondesign.com On Wednesday, May 2, 2012 at 7:07 AM, Artem Ananiev wrote: > > On 5/1/2012 11:29 PM, Josh Marinacci wrote: > > tahnks. I appreciate the update. I found a bug about it on the Jira. > > Hopefully in 2.2 it will work. I guess I'll have to wait for that to > > be released before trying to ship a JavaFX version of Leo. The new > > Canvas API looks interesting as well. > > > > > JavaFX 2.2 builds are already available for download: > > http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.html > > Please, try your DnD test and check if it's resolved and file a bug if > it isn't. When the final 2.2 build is out, it will be too late to report > problems and want them to be resolved in 2.2 :) > > Thanks, > > Artem > > > - J From hang.vo at oracle.com Fri May 4 15:03:23 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 04 May 2012 22:03:23 +0000 Subject: hg: openjfx/2.2/controls/rt: fix an issue where menu validation event handler was getting invoked only for menuitems and not for menu. Message-ID: <20120504220324.9818E47162@hg.openjdk.java.net> Changeset: 933c86201b73 Author: Paru Somashekar Date: 2012-05-04 14:54 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/933c86201b73 fix an issue where menu validation event handler was getting invoked only for menuitems and not for menu. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/MenuButtonSkinBase.java ! javafx-ui-controls/src/javafx/scene/control/Menu.java ! javafx-ui-controls/src/javafx/scene/control/MenuItem.java From richard.bair at oracle.com Fri May 4 15:48:37 2012 From: richard.bair at oracle.com (Richard Bair) Date: Fri, 4 May 2012 15:48:37 -0700 Subject: API review request for RT-18980 In-Reply-To: <4FA45634.2010006@oracle.com> References: <4FA1718B.6080909@oracle.com> <4FA29485.3050202@oracle.com> <368C34D3-3401-4CAB-A5B8-420D790A286E@oracle.com> <4FA45634.2010006@oracle.com> Message-ID: <52618970-D443-491D-A943-6A8F5DE3276E@oracle.com> Looks good to me! On May 4, 2012, at 3:20 PM, Anton V. Tarasov wrote: > Hi, Richard, > > On 5/3/12 10:51 PM, Richard Bair wrote: >>>> - What if we call it WebHistory? I've been thinking we might add a "History" class at the app framework level at some point such that your app can have navigation history as well, so it would be nice to avoid a potential name class. Since we have WebView& WebEngine already, WebHistory seems appropriate. >>> Am I right, that you're talking about _another_ History class that you're planning to add to public API? (If so, I'm just curious what kind of history it's to present?) >>> Anyway, WebHistory name is fine for sure. >> Ya, and not necessarily something to be added in the near future (pending app framework discussions). See JFXFlow and Ensemble for examples. In these cases the application is built of "pages" -- although not HTML pages the concept is the same. You can also have history in Ensemble and hit back / forward buttons. So it isn't about navigating from one web page to another, but from one "screen" or page in your application to another. >> > Ok, I see. Thanks for the details. > > >>> So, I'll make the API conform to FX concepts according to your suggestions. >> Sounds good! Can you just post another message with the updated API when it is completed? >> > > Sure! =) Below is the updated version. Please, share your thoughts if you have any other ideas. > > /** > * The {@code WebHistory} class represents a session history associated with > * a {@link WebEngine} instance. > * > * There is a single instance of this class per {@code WebEngine} that can be > * obtained via the {@link WebEngine#getHistory()} method. > * > * The history is basically a list of entries each of them represents a visited page > * and provides access to relevant page info such as URL, title and visited date. > * The list can be obtained with help of the {@link #getEntries()} method. > * > * The history and thus the list of entries change as {@code WebEngine} navigates > * across the web. It may expand or shrink depending on browser actions. These > * changes can be listened to with help of the {@link javafx.collections.ObservableList} > * API that the list exposes. > * > * There is a notion of the current entry which is associated with the page currently > * visited by {@code WebEngine}. Its index in the history list is represented by the > * {@link currentIndexProperty}. The current index can be used to navigate to any > * entry in the history with help of the {@link #go(int)} method. The simple > * {@link #goBack()} and {@link #goForward()} methods are convenient methods to > * navigate one entry back and forward respectively. > * > * It is possible to limit the maximum history size, which is the size of the > * history list, by means of the {@link maxSizeProperty()}. > */ > public final class WebHistory { > > /** > * The {@code Entry} class represents a single entry in the session history. > * An entry instance is associated with a visited page. > */ > public final class Entry { > > /** > * Returns the {@link java.net.URL} of the page. > * > * @return the url of the page > */ > public URL getUrl(); > > /** > * Defines the title of the page. > */ > public ReadOnlyObjectProperty titleProperty(); > > public String getTitle(); > > /** > * Defines the {@link java.util.Date} the page was last visited. > */ > public ReadOnlyObjectProperty lastVisitedDateProperty(); > > public Date getLastVisitedDate(); > } > > /** > * Defines the index of the current {@code Entry} in the history. > * The current entry is the entry associated with the currently displayed page. > * The index belongs to the range (index >= 0 && index < getEntries().size()) > */ > public ReadOnlyIntegerProperty currentIndexProperty(); > > public int getCurrentIndex(); > > /** > * Defines the maximum size of the history list. > * If the list reaches its maximum and a new entry is added to the history, > * the first entry gets removed automatically. > *

> * A value of less than 0 will be treated as 0. > * > * @defaultValue 100 > */ > public IntegerProperty maxSizeProperty(); > > public void setMaxSize(int value); > > public int getMaxSize(); > > /** > * Returns an unmodifiable observable list of all entries in the history. > * > * @return list of all history entries > */ > public ObservableList getEntries(); > > /** > * Causes {@link WebView} to navigate to the page corresponding to > * the {@code Entry} within the specified position relative to the current > * entry. Negative (positive) {@code shift} value specifies the position > * left (right) to the current entry. For instance, -1 points to the previous > * entry and 1 points to the next entry. > * > * Zero {@code shift} value is silently ignored (no-op). > * > * The effective entry position should belong to the rage of [0..length-1], > * otherwise IndexOutOfBoundsException is thrown. > * > * @param shift negative (positive) value specifies a position relative > * to the left (right) from the current entry, zero value causes > * no effect > * @throws IndexOutOfBoundsException if the effective entry position is out > * of range > */ > public void go(int shift) throws IndexOutOfBoundsException; > > /** > * Causes {@link WebView} to navigate to the previous page in the > * history. A call to this method is equivalent to a {@code go(-1)} call. > * If the current entry is the first entry in the list, the call has no effect. > * > * @return true if the previous entry exists in the list, otherwise false > */ > public boolean goBack(); > > /** > * Causes {@link WebView} to navigate to the next page in the history. > * A call to this method is equivalent to a {@code go(1)} call. > * If the current entry is the last entry in the list, the call has no effect. > * > * @return true if the next entry exists in the list, otherwise false > */ > public boolean goForward(); > } > > --- > Thanks, > Anton. > From james.graham at oracle.com Fri May 4 16:33:05 2012 From: james.graham at oracle.com (Jim Graham) Date: Fri, 04 May 2012 16:33:05 -0700 Subject: Radial gradient used as a Stroke In-Reply-To: <127155.22797.16068-31718-1461680907-1336155516@seznam.cz> References: <127155.22797.16068-31718-1461680907-1336155516@seznam.cz> Message-ID: <4FA46731.7020700@oracle.com> For A.setClip(B), any pixel that B would render to is used as a mask to control where A is rendered to. The colors that B renders are ignored completely except for their alpha. The alpha controls the amount of masking it performs, but the color is discarded. So, the stroke on the circle shouldn't "appear" as a gradient filled ring - instead that ring will simply contribute to the area that you can see the underlying Rectangle through. So, if you are assigning a gradient of opaque colors to that circle's stroke and then installing the circle as a clip, you might as well just set the circle's stroke to an opaque Color instead. If you want to have a circular clip and you want to render the stroke of that circular region, then you'll have to use 2 nodes - one to install as a clip, and another one on top of it all to paint the border... ...jim On 5/4/2012 11:18 AM, goddard at seznam.cz wrote: > Hello, > > I've got this piece of code https://github.com/g0dd4rd/TKE/blob/master/src/tke/Encounter.java where I use Circle as a clip for Rectangle to see the background. The Circle has a Stroke, but this Stroke is not shown when used with a clip. > Does it work as designed? > My goal is to use RadialGradient as a Stroke. I haven't found an issue for it for JIRA, so I'm asking here. > > Regards, Jiri From goddard at seznam.cz Sat May 5 02:38:48 2012 From: goddard at seznam.cz (goddard at seznam.cz) Date: Sat, 05 May 2012 11:38:48 +0200 (CEST) Subject: =?us-ascii?Q?Re=3A=20Re=3A=20Radial=20gradient=20used=20as=20a=20Stroke?= In-Reply-To: <4FA46731.7020700@oracle.com> Message-ID: <127180.22225.15821-4108-1343680048-1336210728@seznam.cz> Thanks Jim :) What about that artifact looking like a 1px stroke between the circle and the actual stroke? Jiri ------------ P?vodn? zpr?va ------------ Od: Jim Graham P?edm?t: Re: Radial gradient used as a Stroke Datum: 05.5.2012 01:33:24 ---------------------------------------- For A.setClip(B), any pixel that B would render to is used as a mask to control where A is rendered to. The colors that B renders are ignored completely except for their alpha. The alpha controls the amount of masking it performs, but the color is discarded. So, the stroke on the circle shouldn't "appear" as a gradient filled ring - instead that ring will simply contribute to the area that you can see the underlying Rectangle through. So, if you are assigning a gradient of opaque colors to that circle's stroke and then installing the circle as a clip, you might as well just set the circle's stroke to an opaque Color instead. If you want to have a circular clip and you want to render the stroke of that circular region, then you'll have to use 2 nodes - one to install as a clip, and another one on top of it all to paint the border... ...jim On 5/4/2012 11:18 AM, goddard at seznam.cz wrote: > Hello, > > I've got this piece of code https://github.com/g0dd4rd/TKE/blob/master/src/tke/Encounter.java where I use Circle as a clip for Rectangle to see the background. The Circle has a Stroke, but this Stroke is not shown when used with a clip. > Does it work as designed? > My goal is to use RadialGradient as a Stroke. I haven't found an issue for it for JIRA, so I'm asking here. > > Regards, Jiri From anton.tarasov at oracle.com Sat May 5 03:13:25 2012 From: anton.tarasov at oracle.com (Anton V. Tarasov) Date: Sat, 05 May 2012 14:13:25 +0400 Subject: API review request for RT-18980 In-Reply-To: <52618970-D443-491D-A943-6A8F5DE3276E@oracle.com> References: <4FA1718B.6080909@oracle.com> <4FA29485.3050202@oracle.com> <368C34D3-3401-4CAB-A5B8-420D790A286E@oracle.com> <4FA45634.2010006@oracle.com> <52618970-D443-491D-A943-6A8F5DE3276E@oracle.com> Message-ID: <4FA4FD45.8050908@oracle.com> Thanks for the review, Richard! On 5/5/12 2:48 AM, Richard Bair wrote: > Looks good to me! > > On May 4, 2012, at 3:20 PM, Anton V. Tarasov wrote: > >> Hi, Richard, >> >> On 5/3/12 10:51 PM, Richard Bair wrote: >>>>> - What if we call it WebHistory? I've been thinking we might add a "History" class at the app framework level at some point such that your app can have navigation history as well, so it would be nice to avoid a potential name class. Since we have WebView& WebEngine already, WebHistory seems appropriate. >>>> Am I right, that you're talking about _another_ History class that you're planning to add to public API? (If so, I'm just curious what kind of history it's to present?) >>>> Anyway, WebHistory name is fine for sure. >>> Ya, and not necessarily something to be added in the near future (pending app framework discussions). See JFXFlow and Ensemble for examples. In these cases the application is built of "pages" -- although not HTML pages the concept is the same. You can also have history in Ensemble and hit back / forward buttons. So it isn't about navigating from one web page to another, but from one "screen" or page in your application to another. >>> >> Ok, I see. Thanks for the details. >> >> >>>> So, I'll make the API conform to FX concepts according to your suggestions. >>> Sounds good! Can you just post another message with the updated API when it is completed? >>> >> Sure! =) Below is the updated version. Please, share your thoughts if you have any other ideas. >> >> /** >> * The {@code WebHistory} class represents a session history associated with >> * a {@link WebEngine} instance. >> * >> * There is a single instance of this class per {@code WebEngine} that can be >> * obtained via the {@link WebEngine#getHistory()} method. >> * >> * The history is basically a list of entries each of them represents a visited page >> * and provides access to relevant page info such as URL, title and visited date. >> * The list can be obtained with help of the {@link #getEntries()} method. >> * >> * The history and thus the list of entries change as {@code WebEngine} navigates >> * across the web. It may expand or shrink depending on browser actions. These >> * changes can be listened to with help of the {@link javafx.collections.ObservableList} >> * API that the list exposes. >> * >> * There is a notion of the current entry which is associated with the page currently >> * visited by {@code WebEngine}. Its index in the history list is represented by the >> * {@link currentIndexProperty}. The current index can be used to navigate to any >> * entry in the history with help of the {@link #go(int)} method. The simple >> * {@link #goBack()} and {@link #goForward()} methods are convenient methods to >> * navigate one entry back and forward respectively. >> * >> * It is possible to limit the maximum history size, which is the size of the >> * history list, by means of the {@link maxSizeProperty()}. >> */ >> public final class WebHistory { >> >> /** >> * The {@code Entry} class represents a single entry in the session history. >> * An entry instance is associated with a visited page. >> */ >> public final class Entry { >> >> /** >> * Returns the {@link java.net.URL} of the page. >> * >> * @return the url of the page >> */ >> public URL getUrl(); >> >> /** >> * Defines the title of the page. >> */ >> public ReadOnlyObjectProperty titleProperty(); >> >> public String getTitle(); >> >> /** >> * Defines the {@link java.util.Date} the page was last visited. >> */ >> public ReadOnlyObjectProperty lastVisitedDateProperty(); >> >> public Date getLastVisitedDate(); >> } >> >> /** >> * Defines the index of the current {@code Entry} in the history. >> * The current entry is the entry associated with the currently displayed page. >> * The index belongs to the range (index>= 0&& index< getEntries().size()) >> */ >> public ReadOnlyIntegerProperty currentIndexProperty(); >> >> public int getCurrentIndex(); >> >> /** >> * Defines the maximum size of the history list. >> * If the list reaches its maximum and a new entry is added to the history, >> * the first entry gets removed automatically. >> *

>> * A value of less than 0 will be treated as 0. >> * >> * @defaultValue 100 >> */ >> public IntegerProperty maxSizeProperty(); >> >> public void setMaxSize(int value); >> >> public int getMaxSize(); >> >> /** >> * Returns an unmodifiable observable list of all entries in the history. >> * >> * @return list of all history entries >> */ >> public ObservableList getEntries(); >> >> /** >> * Causes {@link WebView} to navigate to the page corresponding to >> * the {@code Entry} within the specified position relative to the current >> * entry. Negative (positive) {@code shift} value specifies the position >> * left (right) to the current entry. For instance, -1 points to the previous >> * entry and 1 points to the next entry. >> * >> * Zero {@code shift} value is silently ignored (no-op). >> * >> * The effective entry position should belong to the rage of [0..length-1], >> * otherwise IndexOutOfBoundsException is thrown. >> * >> * @param shift negative (positive) value specifies a position relative >> * to the left (right) from the current entry, zero value causes >> * no effect >> * @throws IndexOutOfBoundsException if the effective entry position is out >> * of range >> */ >> public void go(int shift) throws IndexOutOfBoundsException; >> >> /** >> * Causes {@link WebView} to navigate to the previous page in the >> * history. A call to this method is equivalent to a {@code go(-1)} call. >> * If the current entry is the first entry in the list, the call has no effect. >> * >> * @return true if the previous entry exists in the list, otherwise false >> */ >> public boolean goBack(); >> >> /** >> * Causes {@link WebView} to navigate to the next page in the history. >> * A call to this method is equivalent to a {@code go(1)} call. >> * If the current entry is the last entry in the list, the call has no effect. >> * >> * @return true if the next entry exists in the list, otherwise false >> */ >> public boolean goForward(); >> } >> >> --- >> Thanks, >> Anton. >> From hang.vo at oracle.com Sun May 6 13:04:22 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sun, 06 May 2012 20:04:22 +0000 Subject: hg: openjfx/2.2/controls/rt: Fixed RT-21273: [Virtual Keyboard] Implement Visual Design Specs for Virtual Keyboard Message-ID: <20120506200426.652CB47180@hg.openjdk.java.net> Changeset: 80393953c550 Author: leifs Date: 2012-05-06 13:00 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/80393953c550 Fixed RT-21273: [Virtual Keyboard] Implement Visual Design Specs for Virtual Keyboard ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/FXVK.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/FXVKSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/TextInputControlSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/resources/controls.properties From hang.vo at oracle.com Sun May 6 15:49:01 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sun, 06 May 2012 22:49:01 +0000 Subject: hg: openjfx/2.2/controls/rt: 2 new changesets Message-ID: <20120506224904.24B6C47181@hg.openjdk.java.net> Changeset: 14596f886092 Author: jgiles Date: 2012-05-07 10:30 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/14596f886092 RT-14909: It should be possible to customise the TableColumn header area more ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/TableColumnHeader.java ! javafx-ui-controls/src/javafx/scene/control/TableColumn.java Changeset: 4fcb410cd5a4 Author: jgiles Date: 2012-05-07 10:33 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/4fcb410cd5a4 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/controls/jfx/rt From hang.vo at oracle.com Sun May 6 21:18:59 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 07 May 2012 04:18:59 +0000 Subject: hg: openjfx/2.2/controls/rt: Images for RT-21273: [Virtual Keyboard] Implement Visual Design Specs for Virtual Keyboard Message-ID: <20120507041902.8271D47185@hg.openjdk.java.net> Changeset: fafecccffdea Author: leifs Date: 2012-05-06 21:09 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/fafecccffdea Images for RT-21273: [Virtual Keyboard] Implement Visual Design Specs for Virtual Keyboard + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/fxvk-backspace-button.png + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/fxvk-capslock-button.png + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/fxvk-enter-button.png + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/fxvk-shift-button.png From lehmann at media-interactive.de Mon May 7 04:57:51 2012 From: lehmann at media-interactive.de (Werner Lehmann) Date: Mon, 7 May 2012 13:57:51 +0200 Subject: API change RT-19955: Configuring a PopupWindow so that it consumes the event used for hiding In-Reply-To: <4F9ACF45.1070207@oracle.com> References: <4F9A8279.7070708@oracle.com> <4F9A8BC7.7000909@media-interactive.de> <4F9ACF45.1070207@oracle.com> Message-ID: <4FA7B8BF.7030206@media-interactive.de> Hi Lubo, On 27.04.2012 18:54, Lubomir Nerad wrote: >> why do you think that the name is ambiguous? Seems clear to me. Some >> other thoughts: >> > > It seemed to me that it was not clear (from the name) whether we were > consuming the events which caused autohide or some autohide notification > events (there is the onAutoHide event handler property in PopupWindow > which usually implies the existence of a specific auto hide notification > event). I see. Wasn't aware of that event handler property. In my opinion the name consumeAutoHidingEvents is still ok: the property is named onAutoHide, not onAutoHideEvent. Also, it does not make much sense for someone to add an autoHide event handler and then expecting it not to be fired because of consumeAutoHidingEvents... Naturally the Javadoc could clarify that, too. Werner From lehmann at media-interactive.de Mon May 7 05:31:00 2012 From: lehmann at media-interactive.de (Werner Lehmann) Date: Mon, 7 May 2012 14:31:00 +0200 Subject: API change RT-19955: Configuring a PopupWindow so that it consumes the event used for hiding In-Reply-To: <4FA114C8.6050504@oracle.com> References: <4F9A8279.7070708@oracle.com> <4F9A8BC7.7000909@media-interactive.de> <4FA114C8.6050504@oracle.com> Message-ID: <4FA7C084.2090100@media-interactive.de> Hi Artem, thanks. At least there is some hope now ;-) Werner On 02.05.2012 13:04, Artem Ananiev wrote: >> Also, please allow me to mention RT-19953 once more which is about >> > autoHide not working with JFXPanel. This issue will be quite visible in >> > our Swing/FX application in autumn this year unless it gets fixed until >> > then. > I have just targeted it to 2.2, however right now I can't guarantee it > will be really done in 2.2 time frame... From hang.vo at oracle.com Mon May 7 06:48:50 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 07 May 2012 13:48:50 +0000 Subject: hg: openjfx/2.2/controls/rt: 2 new changesets Message-ID: <20120507134854.D25564718E@hg.openjdk.java.net> Changeset: 4bdb29f2879a Author: David Grieve Date: 2012-05-07 08:48 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/4bdb29f2879a RT-20066: ensure caught exceptions in StyleHelper are added to StyleManager errorProperty ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java Changeset: 53f061778112 Author: David Grieve Date: 2012-05-07 09:44 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/53f061778112 RT-21292: second attempt at fixing memory leak ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/test/unit/com/sun/javafx/css/Node_cssStyleMap_Test.java ! javafx-ui-common/test/unit/com/sun/javafx/css/StyleablePropertyTest.java From pedro.duquevieira at gmail.com Mon May 7 10:34:38 2012 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Mon, 7 May 2012 18:34:38 +0100 Subject: Scene Builder - add option to select property resource bundle Message-ID: Hi, I wanted to propose adding an option to the Scene Builder so that one could choose a property resource bundle to see how the interface appears after Internationalization and localization. Right now I can only see the the UI with the strange strings that are the keys of the resource bundles, which interferes in previewing how my UI will look like. Thanks, best regards, -- Pedro Duque Vieira From nicolas.lorain at oracle.com Mon May 7 11:00:05 2012 From: nicolas.lorain at oracle.com (Nicolas Lorain) Date: Mon, 07 May 2012 11:00:05 -0700 Subject: Scene Builder - add option to select property resource bundle In-Reply-To: References: Message-ID: <4FA80DA5.2000601@oracle.com> Hi Pedro Would you mind filing this as a feature request in Jira under the project "Scene Builder (DTL)"? On 5/7/12 10:34 AM, Pedro Duque Vieira wrote: > Hi, > > I wanted to propose adding an option to the Scene Builder so that one could > choose a property resource bundle to see how the interface appears > after Internationalization and localization. > Right now I can only see the the UI with the strange strings that are the > keys of the resource bundles, which interferes in previewing how my UI will > look like. > > Thanks, best regards, > From hang.vo at oracle.com Mon May 7 11:34:13 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 07 May 2012 18:34:13 +0000 Subject: hg: openjfx/2.2/controls/rt: Add workaround to load icon images for virtual keyboard. Message-ID: <20120507183415.654344719B@hg.openjdk.java.net> Changeset: d2703aaef913 Author: leifs Date: 2012-05-07 11:19 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/d2703aaef913 Add workaround to load icon images for virtual keyboard. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/FXVKSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css From james.graham at oracle.com Mon May 7 11:58:55 2012 From: james.graham at oracle.com (Jim Graham) Date: Mon, 07 May 2012 11:58:55 -0700 Subject: Radial gradient used as a Stroke In-Reply-To: <127180.22225.15821-4108-1343680048-1336210728@seznam.cz> References: <127180.22225.15821-4108-1343680048-1336210728@seznam.cz> Message-ID: <4FA81B6F.3080702@oracle.com> Hi Jiri, Can you clarify the problem you are seeing? ...jim On 5/5/2012 2:38 AM, goddard at seznam.cz wrote: > Thanks Jim :) What about that artifact looking like a 1px stroke between > the circle and the actual stroke? > > Jiri > > ------------ P?vodn? zpr?va ------------ > Od: Jim Graham > P?edm?t: Re: Radial gradient used as a Stroke > Datum: 05.5.2012 01:33:24 > ---------------------------------------- > For A.setClip(B), any pixel that B would render to is used as a mask to > control where A is rendered to. The colors that B renders are ignored > completely except for their alpha. The alpha controls the amount of > masking it performs, but the color is discarded. > > So, the stroke on the circle shouldn't "appear" as a gradient filled > ring - instead that ring will simply contribute to the area that you can > see the underlying Rectangle through. > > So, if you are assigning a gradient of opaque colors to that circle's > stroke and then installing the circle as a clip, you might as well just > set the circle's stroke to an opaque Color instead. > > If you want to have a circular clip and you want to render the stroke of > that circular region, then you'll have to use 2 nodes - one to install > as a clip, and another one on top of it all to paint the border... > > ...jim > > On 5/4/2012 11:18 AM, goddard at seznam.cz wrote: >> Hello, >> >> I've got this piece of code > https://github.com/g0dd4rd/TKE/blob/master/src/tke/Encounter.java where > I use > Circle as a clip for Rectangle to see the background. The Circle has a > Stroke, > but this Stroke is not shown when used with a clip. >> Does it work as designed? >> My goal is to use RadialGradient as a Stroke. I haven't found an issue >> for it > for JIRA, so I'm asking here. >> >> Regards, Jiri > > From lehmann at media-interactive.de Mon May 7 12:32:16 2012 From: lehmann at media-interactive.de (Werner Lehmann) Date: Mon, 7 May 2012 21:32:16 +0200 Subject: Custom Border for Callout Popup Message-ID: <4FA82340.5040005@media-interactive.de> Hi, I am creating a popup for a callout. The callout is basically a rectangle with a small arrow/tail on the top right corner and a single node for its content. That node may resize later and the callout has to adjust. http://i49.tinypic.com/21crux3.jpg First I tried to do this with -fx-shape and an svg path but without luck: could not make this work, never saw that shape. Unfortunately I also did not find any example... I suppose even an SVG path border would not resize automatically when the content changes - otherwise this would be exactly what I need ;-) Plan B is to use a Popup with a Path in the appropriate shape. This works but I am battling two things: 1. I have to know the popup content layout bounds before I can position the popup "right aligned". Currently solved by showing the popup offscreen (at -10000, 0) to get valid layoutBounds. Then I move it to the correct position. Is there a better way to get layoutBounds before showing a window? 2. When the content size changes, a similar problem arises: now I have to determine the new popup size, change the border Path to match the new size (PathElement binding might work here) and reposition the window. A resize animation would be nice, and some clipping will be needed also... This is when I got an idea: is it possible to create and use a custom border class? Looks as if I could extend com.sun.javafx.scene.layout.region.Border... In this way I would get content clipping and resizing (position of arrow/tail must be adjusted) for free. Any thoughts? Thanks. Werner From hang.vo at oracle.com Mon May 7 12:34:15 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 07 May 2012 19:34:15 +0000 Subject: hg: openjfx/2.2/controls/rt: [DOCS-ONLY] added SB-dependency: RT-XXXXX has been filed to track this comment for css related impl_ methods that are used by SceneBuilder Message-ID: <20120507193416.B60C44719E@hg.openjdk.java.net> Changeset: fbfd25ff3c22 Author: mickf Date: 2012-05-07 20:28 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/fbfd25ff3c22 [DOCS-ONLY] added SB-dependency: RT-XXXXX has been filed to track this comment for css related impl_ methods that are used by SceneBuilder ! javafx-ui-common/src/javafx/scene/Parent.java From richard.bair at oracle.com Mon May 7 12:36:12 2012 From: richard.bair at oracle.com (Richard Bair) Date: Mon, 7 May 2012 12:36:12 -0700 Subject: API REVIEW request for RT-19042: Add fontSmoothingType API to WebView In-Reply-To: <4FA3ECC1.1070405@oracle.com> References: <4FA3ECC1.1070405@oracle.com> Message-ID: <6280329F-B16A-4593-A1F9-44EC64153EB8@oracle.com> Hi Sergey, Looks fine. The one thing here is that the documentation states that it defaults to GRAY, but I think in WebView you want to default to LCD? Thanks Richard On May 4, 2012, at 7:50 AM, Sergey Malenkov wrote: > JIRA: http://javafx-jira.kenai.com/browse/RT-19042 > > We need ability to control the font smoothing type during the text rendering. > > Our proposal for JavaFX 2.2 is to add a new property to the WebView class, which should be similar to the fontSmoothingType property of the Text class. Also we should add new style class (web-view) to the default JavaFX style (caspian.css) and describe it in the CSS reference document (cssref.html). > > webrev: http://javaweb.us.oracle.com/jcg/fx-webrevs/RT-19042/2/ > > The proposed public API (including javadoc) is copied from the Text class: > > /** > * Specifies a requested font smoothing type : gray or LCD. > * > * The width of the bounding box is defined by the widest row. > * > * Note: LCD mode doesn't apply in numerous cases, such as various > * compositing modes, where effects are applied and very large glyphs. > * > * @defaultValue FontSmoothingType.GRAY > */ > private ObjectProperty fontSmoothingType; > > public final void setFontSmoothingType(FontSmoothingType value) {...} > > public final FontSmoothingType getFontSmoothingType() {...} > > public final ObjectProperty fontSmoothingTypeProperty() {...} > > /** > * Super-lazy instantiation pattern from Bill Pugh. > * StyleableProperties is referenced no earlier > * (and therefore loaded no earlier by the class loader) > * than the moment that {@code impl_CSS_STYLEABLES()} is called. > * > * @return list of supported styleable properties > * @treatAsPrivate implementation detail > * @deprecated this is an internal API > * that is not intended for use > * and will be removed in the next version > */ > @Deprecated > public static List impl_CSS_STYLEABLES() { > return WebView.StyleableProperties.STYLEABLES; > } > > /** > * RT-19263 > * > * @return list of supported styleable properties > * @treatAsPrivate implementation detail > * @deprecated this is an experimental API > * that is not intended for general use > * and is subject to change in future versions > */ > @Deprecated @Override > public List impl_getStyleableProperties() { > return impl_CSS_STYLEABLES(); > } > > > Thanks, > SAM From pedro.duquevieira at gmail.com Mon May 7 12:43:55 2012 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Mon, 7 May 2012 20:43:55 +0100 Subject: Scene Builder - add option to select property resource bundle Message-ID: Hi Nicolas, Sure. The url is: http://javafx-jira.kenai.com/browse/DTL-4523 In the future should I do this automatically, or wait for a response on this mailing list? Thanks, best regards, Hi Pedro > Would you mind filing this as a feature request in Jira under the > project "Scene Builder (DTL)"? -- Pedro Duque Vieira From hang.vo at oracle.com Mon May 7 13:18:42 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 07 May 2012 20:18:42 +0000 Subject: hg: openjfx/2.2/controls/rt: 2 new changesets Message-ID: <20120507201844.90505471A6@hg.openjdk.java.net> Changeset: 40594024f30e Author: leifs Date: 2012-05-07 13:05 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/40594024f30e [TEST ONLY] Disable failing test ! javafx-ui-controls/test/javafx/scene/control/MenuBarTest.java Changeset: d8121411b4e9 Author: leifs Date: 2012-05-07 13:08 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/d8121411b4e9 merge From hang.vo at oracle.com Mon May 7 13:34:12 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 07 May 2012 20:34:12 +0000 Subject: hg: openjfx/2.2/graphics/rt: RT-15011: Provide ability to alter the implicit "exit on last window closed" behavior Message-ID: <20120507203415.1DBA0471A7@hg.openjdk.java.net> Changeset: b26bab84097d Author: kcr Date: 2012-05-07 13:29 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/b26bab84097d RT-15011: Provide ability to alter the implicit "exit on last window closed" behavior ! javafx-ui-common/src/com/sun/javafx/application/LauncherImpl.java ! javafx-ui-common/src/com/sun/javafx/application/PlatformImpl.java ! javafx-ui-common/src/javafx/application/Application.java ! javafx-ui-common/src/javafx/application/Platform.java From richard.bair at oracle.com Mon May 7 13:43:29 2012 From: richard.bair at oracle.com (Richard Bair) Date: Mon, 7 May 2012 13:43:29 -0700 Subject: API change RT-19955: Configuring a PopupWindow so that it consumes the event used for hiding In-Reply-To: <4FA114C8.6050504@oracle.com> References: <4F9A8279.7070708@oracle.com> <4F9A8BC7.7000909@media-interactive.de> <4FA114C8.6050504@oracle.com> Message-ID: >> Hi Lubo, >> >> why do you think that the name is ambiguous? Seems clear to me. Some >> other thoughts: > > I don't remember how exactly the auto-hide feature for popups is implemented. Is it sometimes triggered from Glass ("ungrab" event)? What event will be consumed in this case? > > Are we confident we'll be able to implement this property? If a popup is auto-hidden from the ungrab event handler, there may be no direct connection between this event and the mouse/key/etc. event to consume. Before approving the API addition I guess we need to know the answer to this. Likewise, the default behavior I think is platform specific. At least in Safari, it seems that it does not consume mouse events by default that cause the popup to be closed. However I know Cocoa has an API for specifying what this behavior should be. If we add such an API, we probably will want to make sure it defaults to some platform specific value rather than always defaulting to "true" or "false"? Richard From tom.schindl at bestsolution.at Mon May 7 14:06:50 2012 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Mon, 07 May 2012 23:06:50 +0200 Subject: Redirecting log information Message-ID: <4FA8396A.2070305@bestsolution.at> Hi, I'm having a hard time redirecting log output generated by JavaFX library. Is there some API available or documentation? Tom -- B e s t S o l u t i o n . a t EDV Systemhaus GmbH ------------------------------------------------------------------------ tom schindl gesch?ftsf?hrer/CEO ------------------------------------------------------------------------ eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 http://www.BestSolution.at phone ++43 512 935834 From richard.bair at oracle.com Mon May 7 14:54:13 2012 From: richard.bair at oracle.com (Richard Bair) Date: Mon, 7 May 2012 14:54:13 -0700 Subject: Custom Border for Callout Popup In-Reply-To: <4FA82340.5040005@media-interactive.de> References: <4FA82340.5040005@media-interactive.de> Message-ID: <89DBC40C-1B23-4E56-B75C-25A86B34DEA5@oracle.com> I think what I would have done would be to extend from PopupControl. Then write a new Skin for your Callout. The skin would add the path as one of its children, and whatever content is added to the content would then be added after the path. The path would have "managed" set to false. Then, in the layoutChildren() method of your Callout, you would reposition the path based on the current bounds and then call super.layoutChildren() which would position and layout the content. So something like: public class Callout extends PopupControl { ... } // Doh! SkinBase is a private class, but you can copy/paste it into your code if it is GPL+classpath..., otherwise just see what it does and write a fresh Skin that does the same public class CalloutSkin extends SkinBase { private Path path; ... } Richard On May 7, 2012, at 12:32 PM, Werner Lehmann wrote: > Hi, > > I am creating a popup for a callout. The callout is basically a rectangle with a small arrow/tail on the top right corner and a single node for its content. That node may resize later and the callout has to adjust. http://i49.tinypic.com/21crux3.jpg > > First I tried to do this with -fx-shape and an svg path but without luck: could not make this work, never saw that shape. Unfortunately I also did not find any example... I suppose even an SVG path border would not resize automatically when the content changes - otherwise this would be exactly what I need ;-) > > Plan B is to use a Popup with a Path in the appropriate shape. This works but I am battling two things: > > 1. I have to know the popup content layout bounds before I can position the popup "right aligned". Currently solved by showing the popup offscreen (at -10000, 0) to get valid layoutBounds. Then I move it to the correct position. Is there a better way to get layoutBounds before showing a window? > > 2. When the content size changes, a similar problem arises: now I have to determine the new popup size, change the border Path to match the new size (PathElement binding might work here) and reposition the window. A resize animation would be nice, and some clipping will be needed also... > > This is when I got an idea: is it possible to create and use a custom border class? Looks as if I could extend com.sun.javafx.scene.layout.region.Border... In this way I would get content clipping and resizing (position of arrow/tail must be adjusted) for free. > > Any thoughts? > > Thanks. > Werner > From richard.bair at oracle.com Mon May 7 14:59:48 2012 From: richard.bair at oracle.com (Richard Bair) Date: Mon, 7 May 2012 14:59:48 -0700 Subject: JavaFX runtime redistribution In-Reply-To: <4F97C3BF.4070803@tbee.org> References: <84B217B916CE441EB6818EC0BD69CC36@marinacci.org> <0EC3FAE2-48B3-4B8C-A846-7890B952EF3A@oracle.com> <225694AD-4EA6-4220-B834-C9E51097905D@gmail.com> <4F97B975.7010508@bestsolution.at> <4F97BC13.8040009@bestsolution.at> <1EADDA89-4D5B-4419-A764-8EA1EA0F73B0@gmail.com> <4F97C3BF.4070803@tbee.org> Message-ID: +1 On Apr 25, 2012, at 2:28 AM, Tom Eugelink wrote: > > Welcome to the club. > > Tom > > > > On 25-4-2012 11:06, Daniel Zwolenski wrote: >> Bummer. I'm on my phone so hadn't actually tested it. Snookered again. >> >> Did I mention I hate this legal stuff. >> >> >> On 25/04/2012, at 6:55 PM, Tom Schindl wrote: >> >>> Well you have to agree to the license agreement before downloading the >>> zip-files. >>> >>> You can only download the samples zip without agreeing to the license. >>> >>> Tom >>> >>> Am 25.04.12 10:51, schrieb Daniel Zwolenski: >>>> Same with the zip file though and that seems to be ok. >>>> >>>> >>>> On 25/04/2012, at 6:44 PM, Tom Schindl wrote: >>>> >>>>> I guess the biggest problem with this is that you don't have to agree >>>>> that you read the license if it is in a maven repo, not? >>>>> >>>>> Tom >>>>> >>>>> Am 25.04.12 10:33, schrieb Daniel Zwolenski: >>>>>>> we provide zip file downloads as an alternative to native installers so you don't have to worry about that part. >>>>>> I've mentioned this before but if the JFX team were to run their own maven repository (free, easy to setup and can run on Tomcat) then we would have no legal problems here as oracle would still be distributing the jars. A maven repo is really just like a file/FTP server and very similar to your zip files above. >>>>>> >>>>>> Details on setting one up is here: >>>>>> http://www.theserverside.com/news/1364121/Setting-Up-a-Maven-Repository >>>>>> >>>>>> I'd be happy to talk someone through every step involved, I just legally can't do it myself. It has to be running on an oracle server and deployed by oracle staff. There is no risk to oracle here, as I said for all intents and purposes it is just like your zip files. >>>>>> >>>>>> >>>>> >>>>> -- >>>>> B e s t S o l u t i o n . a t EDV Systemhaus GmbH >>>>> ------------------------------------------------------------------------ >>>>> tom schindl gesch?ftsf?hrer/CEO >>>>> ------------------------------------------------------------------------ >>>>> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 >>>>> http://www.BestSolution.at phone ++43 512 935834 >>> >>> -- >>> B e s t S o l u t i o n . a t EDV Systemhaus GmbH >>> ------------------------------------------------------------------------ >>> tom schindl gesch?ftsf?hrer/CEO >>> ------------------------------------------------------------------------ >>> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 >>> http://www.BestSolution.at phone ++43 512 935834 > > From christian.schudt at gmx.de Mon May 7 15:25:18 2012 From: christian.schudt at gmx.de (Christian Schudt) Date: Tue, 8 May 2012 00:25:18 +0200 Subject: Redirecting log information In-Reply-To: <4FA8396A.2070305@bestsolution.at> References: <4FA8396A.2070305@bestsolution.at> Message-ID: <50376A1F-FEE5-410B-BFE4-AABE3F5AC352@gmx.de> You can redirect the System.err stream to your logger. See here: https://forums.oracle.com/forums/thread.jspa?messageID=10304321 http://stackoverflow.com/questions/1200175/log4j-redirect-stdout-to-dailyrollingfileappender/1370033#1370033 Christian Am 07.05.2012 um 23:06 schrieb Tom Schindl: > Hi, > > I'm having a hard time redirecting log output generated by JavaFX > library. Is there some API available or documentation? > > Tom > > -- > B e s t S o l u t i o n . a t EDV Systemhaus GmbH > ------------------------------------------------------------------------ > tom schindl gesch?ftsf?hrer/CEO > ------------------------------------------------------------------------ > eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 > http://www.BestSolution.at phone ++43 512 935834 From tom.schindl at bestsolution.at Mon May 7 15:22:03 2012 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Tue, 08 May 2012 00:22:03 +0200 Subject: Redirecting log information In-Reply-To: <50376A1F-FEE5-410B-BFE4-AABE3F5AC352@gmx.de> References: <4FA8396A.2070305@bestsolution.at> <50376A1F-FEE5-410B-BFE4-AABE3F5AC352@gmx.de> Message-ID: <4FA84B0B.5070303@bestsolution.at> I've tried that already and couldn't make it work. Did you try it and it worked? Then I'd give another try. Tom Am 08.05.12 00:25, schrieb Christian Schudt: > You can redirect the System.err stream to your logger. > > See here: > > https://forums.oracle.com/forums/thread.jspa?messageID=10304321 > http://stackoverflow.com/questions/1200175/log4j-redirect-stdout-to-dailyrollingfileappender/1370033#1370033 > > Christian > > > Am 07.05.2012 um 23:06 schrieb Tom Schindl: > >> Hi, >> >> I'm having a hard time redirecting log output generated by JavaFX >> library. Is there some API available or documentation? >> >> Tom >> >> -- >> B e s t S o l u t i o n . a t EDV Systemhaus GmbH >> ------------------------------------------------------------------------ >> tom schindl gesch?ftsf?hrer/CEO >> ------------------------------------------------------------------------ >> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 >> http://www.BestSolution.at phone ++43 512 935834 > -- B e s t S o l u t i o n . a t EDV Systemhaus GmbH ------------------------------------------------------------------------ tom schindl gesch?ftsf?hrer/CEO ------------------------------------------------------------------------ eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 http://www.BestSolution.at phone ++43 512 935834 From kimtopley at gmail.com Mon May 7 15:23:03 2012 From: kimtopley at gmail.com (Kim Topley) Date: Mon, 7 May 2012 18:23:03 -0400 Subject: Custom Border for Callout Popup In-Reply-To: <89DBC40C-1B23-4E56-B75C-25A86B34DEA5@oracle.com> References: <4FA82340.5040005@media-interactive.de> <89DBC40C-1B23-4E56-B75C-25A86B34DEA5@oracle.com> Message-ID: Richard, Your comment about SkinBase here reminds me of a question that I have been meaning to ask for some time. Is it likely that the classes and methods necessary to write CSS-aware and skinnable custom controls will be made public any time soon (e.g. for JavaFX 3.0?). I have never yet worked on a project of any size that did not require lots of custom AWT or Swing controls. At the moment, if I wanted to do move such an application to JavaFX, or to write a library of custom controls for JavaFX, I would need to either use non-public APIs or swallow the expense of writing everything myself. Either way, I would then have to rewrite everything later when the real APIs are made available. Given that the skinning and CSS APIs seem to be quite stable now, and you already have many controls that are designed around them, how much of a problem would it be to have a quick review and make them all public? Kim On Mon, May 7, 2012 at 5:54 PM, Richard Bair wrote: > I think what I would have done would be to extend from PopupControl. Then > write a new Skin for your Callout. The skin would add the path as one of > its children, and whatever content is added to the content would then be > added after the path. The path would have "managed" set to false. Then, in > the layoutChildren() method of your Callout, you would reposition the path > based on the current bounds and then call super.layoutChildren() which > would position and layout the content. > > So something like: > > public class Callout extends PopupControl { > ... > } > > // Doh! SkinBase is a private class, but you can copy/paste it into your > code if it is GPL+classpath..., otherwise just see what it does and write a > fresh Skin that does the same > public class CalloutSkin extends SkinBase { > private Path path; > ... > } > > Richard > > > > On May 7, 2012, at 12:32 PM, Werner Lehmann wrote: > > > Hi, > > > > I am creating a popup for a callout. The callout is basically a > rectangle with a small arrow/tail on the top right corner and a single node > for its content. That node may resize later and the callout has to adjust. > http://i49.tinypic.com/21crux3.jpg > > > > First I tried to do this with -fx-shape and an svg path but without > luck: could not make this work, never saw that shape. Unfortunately I also > did not find any example... I suppose even an SVG path border would not > resize automatically when the content changes - otherwise this would be > exactly what I need ;-) > > > > Plan B is to use a Popup with a Path in the appropriate shape. This > works but I am battling two things: > > > > 1. I have to know the popup content layout bounds before I can position > the popup "right aligned". Currently solved by showing the popup offscreen > (at -10000, 0) to get valid layoutBounds. Then I move it to the correct > position. Is there a better way to get layoutBounds before showing a window? > > > > 2. When the content size changes, a similar problem arises: now I have > to determine the new popup size, change the border Path to match the new > size (PathElement binding might work here) and reposition the window. A > resize animation would be nice, and some clipping will be needed also... > > > > This is when I got an idea: is it possible to create and use a custom > border class? Looks as if I could extend > com.sun.javafx.scene.layout.region.Border... In this way I would get > content clipping and resizing (position of arrow/tail must be adjusted) for > free. > > > > Any thoughts? > > > > Thanks. > > Werner > > > > From jonathan.giles at oracle.com Mon May 7 15:32:55 2012 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Tue, 08 May 2012 10:32:55 +1200 Subject: Custom Border for Callout Popup In-Reply-To: References: <4FA82340.5040005@media-interactive.de> <89DBC40C-1B23-4E56-B75C-25A86B34DEA5@oracle.com> Message-ID: <4FA84D97.4020601@oracle.com> The intention is to fully support custom control development in JavaFX 3.0. As you note, today it is supported with the use of the Skin interface, but for real control development it is desirable to have a more fleshed-out base implementation (i.e. SkinBase and friends). -- Jonathan On Tuesday, 8 May 2012 10:23:03 a.m., Kim Topley wrote: > Richard, > > Your comment about SkinBase here reminds me of a question that I have been > meaning to ask for some time. Is it likely that the classes and methods > necessary to write CSS-aware and skinnable custom controls will be made > public any time soon (e.g. for JavaFX 3.0?). I have never yet worked on a > project of any size that did not require lots of custom AWT or Swing > controls. At the moment, if I wanted to do move such an application to > JavaFX, or to write a library of custom controls for JavaFX, I would need > to either use non-public APIs or swallow the expense of writing everything > myself. Either way, I would then have to rewrite everything later when the > real APIs are made available. Given that the skinning and CSS APIs seem to > be quite stable now, and you already have many controls that are designed > around them, how much of a problem would it be to have a quick review and > make them all public? > > Kim > > > On Mon, May 7, 2012 at 5:54 PM, Richard Bairwrote: > >> I think what I would have done would be to extend from PopupControl. Then >> write a new Skin for your Callout. The skin would add the path as one of >> its children, and whatever content is added to the content would then be >> added after the path. The path would have "managed" set to false. Then, in >> the layoutChildren() method of your Callout, you would reposition the path >> based on the current bounds and then call super.layoutChildren() which >> would position and layout the content. >> >> So something like: >> >> public class Callout extends PopupControl { >> ... >> } >> >> // Doh! SkinBase is a private class, but you can copy/paste it into your >> code if it is GPL+classpath..., otherwise just see what it does and write a >> fresh Skin that does the same >> public class CalloutSkin extends SkinBase { >> private Path path; >> ... >> } >> >> Richard >> >> >> >> On May 7, 2012, at 12:32 PM, Werner Lehmann wrote: >> >>> Hi, >>> >>> I am creating a popup for a callout. The callout is basically a >> rectangle with a small arrow/tail on the top right corner and a single node >> for its content. That node may resize later and the callout has to adjust. >> http://i49.tinypic.com/21crux3.jpg >>> >>> First I tried to do this with -fx-shape and an svg path but without >> luck: could not make this work, never saw that shape. Unfortunately I also >> did not find any example... I suppose even an SVG path border would not >> resize automatically when the content changes - otherwise this would be >> exactly what I need ;-) >>> >>> Plan B is to use a Popup with a Path in the appropriate shape. This >> works but I am battling two things: >>> >>> 1. I have to know the popup content layout bounds before I can position >> the popup "right aligned". Currently solved by showing the popup offscreen >> (at -10000, 0) to get valid layoutBounds. Then I move it to the correct >> position. Is there a better way to get layoutBounds before showing a window? >>> >>> 2. When the content size changes, a similar problem arises: now I have >> to determine the new popup size, change the border Path to match the new >> size (PathElement binding might work here) and reposition the window. A >> resize animation would be nice, and some clipping will be needed also... >>> >>> This is when I got an idea: is it possible to create and use a custom >> border class? Looks as if I could extend >> com.sun.javafx.scene.layout.region.Border... In this way I would get >> content clipping and resizing (position of arrow/tail must be adjusted) for >> free. >>> >>> Any thoughts? >>> >>> Thanks. >>> Werner >>> >> >> From kimtopley at gmail.com Mon May 7 15:35:45 2012 From: kimtopley at gmail.com (Kim Topley) Date: Mon, 7 May 2012 18:35:45 -0400 Subject: Custom Border for Callout Popup In-Reply-To: <4FA84D97.4020601@oracle.com> References: <4FA82340.5040005@media-interactive.de> <89DBC40C-1B23-4E56-B75C-25A86B34DEA5@oracle.com> <4FA84D97.4020601@oracle.com> Message-ID: That's good news. Does the same apply to CSS - for example, will the styleable property classes (or something equivalent) be part of the public API? On Mon, May 7, 2012 at 6:32 PM, Jonathan Giles wrote: > The intention is to fully support custom control development in JavaFX > 3.0. As you note, today it is supported with the use of the Skin interface, > but for real control development it is desirable to have a more fleshed-out > base implementation (i.e. SkinBase and friends). > > -- Jonathan > > > On Tuesday, 8 May 2012 10:23:03 a.m., Kim Topley wrote: > >> Richard, >> >> Your comment about SkinBase here reminds me of a question that I have been >> meaning to ask for some time. Is it likely that the classes and methods >> necessary to write CSS-aware and skinnable custom controls will be made >> public any time soon (e.g. for JavaFX 3.0?). I have never yet worked on a >> project of any size that did not require lots of custom AWT or Swing >> controls. At the moment, if I wanted to do move such an application to >> JavaFX, or to write a library of custom controls for JavaFX, I would need >> to either use non-public APIs or swallow the expense of writing everything >> myself. Either way, I would then have to rewrite everything later when the >> real APIs are made available. Given that the skinning and CSS APIs seem >> to >> be quite stable now, and you already have many controls that are designed >> around them, how much of a problem would it be to have a quick review and >> make them all public? >> >> Kim >> >> >> On Mon, May 7, 2012 at 5:54 PM, Richard Bair** >> wrote: >> >> I think what I would have done would be to extend from PopupControl. Then >>> write a new Skin for your Callout. The skin would add the path as one of >>> its children, and whatever content is added to the content would then be >>> added after the path. The path would have "managed" set to false. Then, >>> in >>> the layoutChildren() method of your Callout, you would reposition the >>> path >>> based on the current bounds and then call super.layoutChildren() which >>> would position and layout the content. >>> >>> So something like: >>> >>> public class Callout extends PopupControl { >>> ... >>> } >>> >>> // Doh! SkinBase is a private class, but you can copy/paste it into your >>> code if it is GPL+classpath..., otherwise just see what it does and >>> write a >>> fresh Skin that does the same >>> public class CalloutSkin extends SkinBase { >>> private Path path; >>> ... >>> } >>> >>> Richard >>> >>> >>> >>> On May 7, 2012, at 12:32 PM, Werner Lehmann wrote: >>> >>> Hi, >>>> >>>> I am creating a popup for a callout. The callout is basically a >>>> >>> rectangle with a small arrow/tail on the top right corner and a single >>> node >>> for its content. That node may resize later and the callout has to >>> adjust. >>> http://i49.tinypic.com/**21crux3.jpg >>> >>>> >>>> First I tried to do this with -fx-shape and an svg path but without >>>> >>> luck: could not make this work, never saw that shape. Unfortunately I >>> also >>> did not find any example... I suppose even an SVG path border would not >>> resize automatically when the content changes - otherwise this would be >>> exactly what I need ;-) >>> >>>> >>>> Plan B is to use a Popup with a Path in the appropriate shape. This >>>> >>> works but I am battling two things: >>> >>>> >>>> 1. I have to know the popup content layout bounds before I can position >>>> >>> the popup "right aligned". Currently solved by showing the popup >>> offscreen >>> (at -10000, 0) to get valid layoutBounds. Then I move it to the correct >>> position. Is there a better way to get layoutBounds before showing a >>> window? >>> >>>> >>>> 2. When the content size changes, a similar problem arises: now I have >>>> >>> to determine the new popup size, change the border Path to match the new >>> size (PathElement binding might work here) and reposition the window. A >>> resize animation would be nice, and some clipping will be needed also... >>> >>>> >>>> This is when I got an idea: is it possible to create and use a custom >>>> >>> border class? Looks as if I could extend >>> com.sun.javafx.scene.layout.**region.Border... In this way I would get >>> content clipping and resizing (position of arrow/tail must be adjusted) >>> for >>> free. >>> >>>> >>>> Any thoughts? >>>> >>>> Thanks. >>>> Werner >>>> >>>> >>> >>> From jonathan.giles at oracle.com Mon May 7 15:39:06 2012 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Tue, 08 May 2012 10:39:06 +1200 Subject: Custom Border for Callout Popup In-Reply-To: References: <4FA82340.5040005@media-interactive.de> <89DBC40C-1B23-4E56-B75C-25A86B34DEA5@oracle.com> <4FA84D97.4020601@oracle.com> Message-ID: <4FA84F0A.8000504@oracle.com> CSS is crucial to building custom controls, so the ability to expose pseudoclass states and CSS properties is absolutely necessary. How we go about exposing this as public API is still a topic that is up for discussion. -- Jonathan On Tuesday, 8 May 2012 10:35:45 a.m., Kim Topley wrote: > That's good news. Does the same apply to CSS - for example, will the > styleable property classes (or something equivalent) be part of the > public API? > > On Mon, May 7, 2012 at 6:32 PM, Jonathan Giles > > wrote: > > The intention is to fully support custom control development in > JavaFX 3.0. As you note, today it is supported with the use of the > Skin interface, but for real control development it is desirable > to have a more fleshed-out base implementation (i.e. SkinBase and > friends). > > -- Jonathan > > > On Tuesday, 8 May 2012 10:23:03 a.m., Kim Topley wrote: > > Richard, > > Your comment about SkinBase here reminds me of a question that > I have been > meaning to ask for some time. Is it likely that the classes > and methods > necessary to write CSS-aware and skinnable custom controls > will be made > public any time soon (e.g. for JavaFX 3.0?). I have never yet > worked on a > project of any size that did not require lots of custom AWT or > Swing > controls. At the moment, if I wanted to do move such an > application to > JavaFX, or to write a library of custom controls for JavaFX, I > would need > to either use non-public APIs or swallow the expense of > writing everything > myself. Either way, I would then have to rewrite everything > later when the > real APIs are made available. Given that the skinning and CSS > APIs seem to > be quite stable now, and you already have many controls that > are designed > around them, how much of a problem would it be to have a quick > review and > make them all public? > > Kim > > > On Mon, May 7, 2012 at 5:54 PM, Richard > Bair >__wrote: > > I think what I would have done would be to extend from > PopupControl. Then > write a new Skin for your Callout. The skin would add the > path as one of > its children, and whatever content is added to the content > would then be > added after the path. The path would have "managed" set to > false. Then, in > the layoutChildren() method of your Callout, you would > reposition the path > based on the current bounds and then call > super.layoutChildren() which > would position and layout the content. > > So something like: > > public class Callout extends PopupControl { > ... > } > > // Doh! SkinBase is a private class, but you can > copy/paste it into your > code if it is GPL+classpath..., otherwise just see what it > does and write a > fresh Skin that does the same > public class CalloutSkin extends SkinBase { > private Path path; > ... > } > > Richard > > > > On May 7, 2012, at 12:32 PM, Werner Lehmann wrote: > > Hi, > > I am creating a popup for a callout. The callout is > basically a > > rectangle with a small arrow/tail on the top right corner > and a single node > for its content. That node may resize later and the > callout has to adjust. > http://i49.tinypic.com/__21crux3.jpg > > > > First I tried to do this with -fx-shape and an svg > path but without > > luck: could not make this work, never saw that shape. > Unfortunately I also > did not find any example... I suppose even an SVG path > border would not > resize automatically when the content changes - otherwise > this would be > exactly what I need ;-) > > > Plan B is to use a Popup with a Path in the > appropriate shape. This > > works but I am battling two things: > > > 1. I have to know the popup content layout bounds > before I can position > > the popup "right aligned". Currently solved by showing the > popup offscreen > (at -10000, 0) to get valid layoutBounds. Then I move it > to the correct > position. Is there a better way to get layoutBounds before > showing a window? > > > 2. When the content size changes, a similar problem > arises: now I have > > to determine the new popup size, change the border Path to > match the new > size (PathElement binding might work here) and reposition > the window. A > resize animation would be nice, and some clipping will be > needed also... > > > This is when I got an idea: is it possible to create > and use a custom > > border class? Looks as if I could extend > com.sun.javafx.scene.layout.__region.Border... In this way > I would get > content clipping and resizing (position of arrow/tail must > be adjusted) for > free. > > > Any thoughts? > > Thanks. > Werner > > > > From hang.vo at oracle.com Mon May 7 17:18:58 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 08 May 2012 00:18:58 +0000 Subject: hg: openjfx/2.2/controls/rt: RT-21412: need to create a stylehelper if the reference itself is null or the referent is null, not just if the referent is null. Message-ID: <20120508001859.44DCE471A8@hg.openjdk.java.net> Changeset: 472e57ab675c Author: David Grieve Date: 2012-05-07 20:08 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/472e57ab675c RT-21412: need to create a stylehelper if the reference itself is null or the referent is null, not just if the referent is null. ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/test/unit/com/sun/javafx/css/Node_cssStyleMap_Test.java ! javafx-ui-controls/test/javafx/scene/control/MenuBarTest.java From hang.vo at oracle.com Mon May 7 20:34:15 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 08 May 2012 03:34:15 +0000 Subject: hg: openjfx/2.2/controls/rt: RT-21412: redo changes to Node_cssStyleMap_Test to bring it into line with similar code in StyleablePropertyTest (which is the correct code) Message-ID: <20120508033416.20E80471AD@hg.openjdk.java.net> Changeset: e971e6a12a35 Author: David Grieve Date: 2012-05-07 23:29 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/e971e6a12a35 RT-21412: redo changes to Node_cssStyleMap_Test to bring it into line with similar code in StyleablePropertyTest (which is the correct code) ! javafx-ui-common/test/unit/com/sun/javafx/css/Node_cssStyleMap_Test.java From tbee at tbee.org Mon May 7 21:48:08 2012 From: tbee at tbee.org (Tom Eugelink) Date: Tue, 08 May 2012 06:48:08 +0200 Subject: Custom Border for Callout Popup In-Reply-To: <4FA84D97.4020601@oracle.com> References: <4FA82340.5040005@media-interactive.de> <89DBC40C-1B23-4E56-B75C-25A86B34DEA5@oracle.com> <4FA84D97.4020601@oracle.com> Message-ID: <4FA8A588.5040406@tbee.org> IMHO writing custom controls is not a big issue at this time. Tom On 2012-05-08 00:32, Jonathan Giles wrote: > The intention is to fully support custom control development in JavaFX 3.0. As you note, today it is supported with the use of the Skin interface, but for real control development it is desirable to have a more fleshed-out base implementation (i.e. SkinBase and friends). > > -- Jonathan From Peter.Zhelezniakov at oracle.com Mon May 7 21:49:53 2012 From: Peter.Zhelezniakov at oracle.com (Peter Zhelezniakov) Date: Tue, 8 May 2012 08:49:53 +0400 Subject: API REVIEW request for RT-19042: Add fontSmoothingType API to WebView In-Reply-To: References: Message-ID: <25BEC692-D1FF-494D-829C-2ACE0947D910@oracle.com> Hi Richard, > Looks fine. The one thing here is that the documentation states that it defaults to GRAY, but I think in WebView you want to default to LCD? (Sergey is on vacation now, so I'll take care of this request): Here we do the same thing Text node does, i.e. default to gray and override the default setting in CSS. This new property has the same meaning as Text.fontSmoothingType so we've decided to be consistent. Thanks! -- Peter From tom.schindl at bestsolution.at Tue May 8 03:34:53 2012 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Tue, 08 May 2012 12:34:53 +0200 Subject: Why is the windows runtime/sdk only provided as .exe In-Reply-To: <4F048053.6010107@oracle.com> References: <4F045E66.2020408@bestsolution.at> <4F047CCF.6080600@oracle.com> <4F047EA0.5060300@bestsolution.at> <4F048053.6010107@oracle.com> Message-ID: <4FA8F6CD.4000501@bestsolution.at> Kevin - can you take a look at this once more? Since the 2.1 release the zips for the SDKs are not available anymore! One can only download the one for 2.2 so it looks like the dev-release site was adjusted but the GA site not. For those of use doing cross platform development and packaging JavaFX with their apps getting geting the releases as zips is something really important. Sidenote: Even worse because I'm still on OS-X 10.6.8 I can't even install JavaFX because the JDK-7 release requires at least 10.7.0 (I know you are not support JavaFX prior to JDK 7) Thanks Tom Am 04.01.12 17:37, schrieb Kevin Rushforth: > Oh, maybe we don't actually release the SDK on the public web page > either (I knew we didn't release the runtime as a zip since we don't > even generate it internally). > > -- Kevin > > > Tom Schindl wrote: >> Hi Kevin, >> >> Well maybe I'm blind but for win32 the there is NO zip available from >> this page [1]. >> >> The only thing available currently as a zip is the OS-X SDK version >> which misses the win32 native libs not? I'll file a JIRA. >> >> [1]http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.html >> >> >> Am 04.01.12 17:22, schrieb Kevin Rushforth: >> >>> Good question. The SDK is available as both an installer and a zip, and >>> we could consider make the runtime available as a zip file as well, so >>> please file a JIRA feature request for this. >>> >>> As for your other question, it is not currently possible to have 2.0.2 >>> and 2.1 instaled side-by-side. >>> >>> -- Kevin >>> >>> >>> Tom Schindl wrote: >>> >>>> Hi, >>>> >>>> Now that since 2.0.2 (and also 2.1) are redistributeable it might make >>>> sense to provide them also as simple ZIP-Files. >>>> >>>> I find it odd that if I want to package JavaFX with my product that I >>>> first have to install something only my system, navigate to the install >>>> dir and copy over the stuff my own project directory. >>>> >>>> Is it BTW possible to have 2.1 and 2.0.2 installed next to each other? I >>>> guess not which makes it hard to test with both versions on the same >>>> system, which would be made much more easy if provided as simple >>>> ZIP-Files. >>>> >>>> Would you mind providing JavaFX 2.1 binaries (and maybe also > 2.0.2) as >>>> a simple zip-File like you do it with 2.1 OS-X ones? >>>> >>>> Tom >>>> >>>> >>>> >> >> >> -- B e s t S o l u t i o n . a t EDV Systemhaus GmbH ------------------------------------------------------------------------ tom schindl gesch?ftsf?hrer/CEO ------------------------------------------------------------------------ eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 http://www.BestSolution.at phone ++43 512 935834 From tom.schindl at bestsolution.at Tue May 8 05:19:57 2012 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Tue, 08 May 2012 14:19:57 +0200 Subject: Redirecting log information In-Reply-To: <4FA84B0B.5070303@bestsolution.at> References: <4FA8396A.2070305@bestsolution.at> <50376A1F-FEE5-410B-BFE4-AABE3F5AC352@gmx.de> <4FA84B0B.5070303@bestsolution.at> Message-ID: <4FA90F6D.4020704@bestsolution.at> Hi, The problem is the point at which one redirects the stderr. Take a look at this: > public class TestApp extends Application { > > @Override > public void start(Stage primaryStage) { > ByteArrayOutputStream out = new ByteArrayOutputStream(); > PrintStream orig = System.err; > System.setErr(new PrintStream(out)); // Works > vs. > public class TestApp extends Application { > > @Override > public void start(Stage primaryStage) { > ByteArrayOutputStream out = new ByteArrayOutputStream(); > PrintStream orig = System.err; > > Group g = new Group(); > System.setErr(new PrintStream(out)); // Does not work The problem is that Option 1 is not possible for me because I only have to redirect the logging information from JavaFX while your solution completely redirects STDERR with is not making much sense! Sad enough the Logging code is not yet opensourced so I still hope that a JavaFX dev with access to the code can help me. So I repeat my question. Can I somehow set a custom logger to the JavaFX platform? Tom Am 08.05.12 00:22, schrieb Tom Schindl: > I've tried that already and couldn't make it work. Did you try it and it > worked? Then I'd give another try. > > Tom > > Am 08.05.12 00:25, schrieb Christian Schudt: >> You can redirect the System.err stream to your logger. >> >> See here: >> >> https://forums.oracle.com/forums/thread.jspa?messageID=10304321 >> http://stackoverflow.com/questions/1200175/log4j-redirect-stdout-to-dailyrollingfileappender/1370033#1370033 >> >> Christian >> >> >> Am 07.05.2012 um 23:06 schrieb Tom Schindl: >> >>> Hi, >>> >>> I'm having a hard time redirecting log output generated by JavaFX >>> library. Is there some API available or documentation? >>> >>> Tom >>> >>> -- >>> B e s t S o l u t i o n . a t EDV Systemhaus GmbH >>> ------------------------------------------------------------------------ >>> tom schindl gesch?ftsf?hrer/CEO >>> ------------------------------------------------------------------------ >>> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 >>> http://www.BestSolution.at phone ++43 512 935834 >> > > -- B e s t S o l u t i o n . a t EDV Systemhaus GmbH ------------------------------------------------------------------------ tom schindl gesch?ftsf?hrer/CEO ------------------------------------------------------------------------ eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 http://www.BestSolution.at phone ++43 512 935834 From joshua at marinacci.org Tue May 8 06:35:51 2012 From: joshua at marinacci.org (Josh Marinacci) Date: Tue, 8 May 2012 06:35:51 -0700 Subject: JavaFX runtime redistribution In-Reply-To: References: <84B217B916CE441EB6818EC0BD69CC36@marinacci.org> <0EC3FAE2-48B3-4B8C-A846-7890B952EF3A@oracle.com> <225694AD-4EA6-4220-B834-C9E51097905D@gmail.com> <4F97B975.7010508@bestsolution.at> <4F97BC13.8040009@bestsolution.at> <1EADDA89-4D5B-4419-A764-8EA1EA0F73B0@gmail.com> <4F97C3BF.4070803@tbee.org> Message-ID: <07E475776EDB43D68B6B35518543CCCE@marinacci.org> For the time being I'm working on instructions and a script that will require the dev to download the SDK zips to a common directory first. It would be insanely awesome of Oracle would set up their own Maven repo for this, especially since JavaFX is planned to be open source. BTW: to the Maven haters (which includes myself), we can use Maven repos without using Maven. Think of it as the Debian archive system of the Java world. - Josh -- Josh Marinacci joshondesign.com On Monday, May 7, 2012 at 2:59 PM, Richard Bair wrote: > +1 > > On Apr 25, 2012, at 2:28 AM, Tom Eugelink wrote: > > > > > Welcome to the club. > > > > Tom > > > > > > > > On 25-4-2012 11:06, Daniel Zwolenski wrote: > > > Bummer. I'm on my phone so hadn't actually tested it. Snookered again. > > > > > > Did I mention I hate this legal stuff. > > > > > > > > > On 25/04/2012, at 6:55 PM, Tom Schindl wrote: > > > > > > > Well you have to agree to the license agreement before downloading the > > > > zip-files. > > > > > > > > You can only download the samples zip without agreeing to the license. > > > > > > > > Tom > > > > > > > > Am 25.04.12 10:51, schrieb Daniel Zwolenski: > > > > > Same with the zip file though and that seems to be ok. > > > > > > > > > > > > > > > On 25/04/2012, at 6:44 PM, Tom Schindl wrote: > > > > > > > > > > > I guess the biggest problem with this is that you don't have to agree > > > > > > that you read the license if it is in a maven repo, not? > > > > > > > > > > > > Tom > > > > > > > > > > > > Am 25.04.12 10:33, schrieb Daniel Zwolenski: > > > > > > > > we provide zip file downloads as an alternative to native installers so you don't have to worry about that part. > > > > > > > > > > > > > > I've mentioned this before but if the JFX team were to run their own maven repository (free, easy to setup and can run on Tomcat) then we would have no legal problems here as oracle would still be distributing the jars. A maven repo is really just like a file/FTP server and very similar to your zip files above. > > > > > > > > > > > > > > Details on setting one up is here: > > > > > > > http://www.theserverside.com/news/1364121/Setting-Up-a-Maven-Repository > > > > > > > > > > > > > > I'd be happy to talk someone through every step involved, I just legally can't do it myself. It has to be running on an oracle server and deployed by oracle staff. There is no risk to oracle here, as I said for all intents and purposes it is just like your zip files. > > > > > > > > > > > > -- > > > > > > B e s t S o l u t i o n . a t EDV Systemhaus GmbH > > > > > > ------------------------------------------------------------------------ > > > > > > tom schindl gesch?ftsf?hrer/CEO > > > > > > ------------------------------------------------------------------------ > > > > > > eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 > > > > > > http://www.BestSolution.at phone ++43 512 935834 > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > B e s t S o l u t i o n . a t EDV Systemhaus GmbH > > > > ------------------------------------------------------------------------ > > > > tom schindl gesch?ftsf?hrer/CEO > > > > ------------------------------------------------------------------------ > > > > eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 > > > > http://www.BestSolution.at phone ++43 512 935834 > > > > > > > > > > > > > > > > > From kevin.rushforth at oracle.com Tue May 8 06:40:20 2012 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Tue, 08 May 2012 06:40:20 -0700 Subject: Why is the windows runtime/sdk only provided as .exe In-Reply-To: <4FA8F6CD.4000501@bestsolution.at> References: <4F045E66.2020408@bestsolution.at> <4F047CCF.6080600@oracle.com> <4F047EA0.5060300@bestsolution.at> <4F048053.6010107@oracle.com> <4FA8F6CD.4000501@bestsolution.at> Message-ID: <4FA92244.8090202@oracle.com> Hi Tom, I just looked and you are right...only see the .exe files were released for 2.1. I will check into this and get back to you. The Mac issue will be trickier since we don't have any tested / supported standalone bundles of JavaFX 2.1 on Mac. As a released product JavaFX 2.1 for Mac is only available as part of JDK 7u4. -- Kevin Tom Schindl wrote: > Kevin - can you take a look at this once more? Since the 2.1 release the > zips for the SDKs are not available anymore! > > One can only download the one for 2.2 so it looks like the dev-release > site was adjusted but the GA site not. > > For those of use doing cross platform development and packaging JavaFX > with their apps getting geting the releases as zips is something really > important. > > Sidenote: Even worse because I'm still on OS-X 10.6.8 I can't even > install JavaFX because the JDK-7 release requires at least 10.7.0 (I > know you are not support JavaFX prior to JDK 7) > > Thanks > > Tom > > Am 04.01.12 17:37, schrieb Kevin Rushforth: > >> Oh, maybe we don't actually release the SDK on the public web page >> either (I knew we didn't release the runtime as a zip since we don't >> even generate it internally). >> >> -- Kevin >> >> >> Tom Schindl wrote: >> >>> Hi Kevin, >>> >>> Well maybe I'm blind but for win32 the there is NO zip available from >>> this page [1]. >>> >>> The only thing available currently as a zip is the OS-X SDK version >>> which misses the win32 native libs not? I'll file a JIRA. >>> >>> [1]http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.html >>> >>> >>> Am 04.01.12 17:22, schrieb Kevin Rushforth: >>> >>> >>>> Good question. The SDK is available as both an installer and a zip, and >>>> we could consider make the runtime available as a zip file as well, so >>>> please file a JIRA feature request for this. >>>> >>>> As for your other question, it is not currently possible to have 2.0.2 >>>> and 2.1 instaled side-by-side. >>>> >>>> -- Kevin >>>> >>>> >>>> Tom Schindl wrote: >>>> >>>> >>>>> Hi, >>>>> >>>>> Now that since 2.0.2 (and also 2.1) are redistributeable it might make >>>>> sense to provide them also as simple ZIP-Files. >>>>> >>>>> I find it odd that if I want to package JavaFX with my product that I >>>>> first have to install something only my system, navigate to the install >>>>> dir and copy over the stuff my own project directory. >>>>> >>>>> Is it BTW possible to have 2.1 and 2.0.2 installed next to each other? I >>>>> guess not which makes it hard to test with both versions on the same >>>>> system, which would be made much more easy if provided as simple >>>>> ZIP-Files. >>>>> >>>>> Would you mind providing JavaFX 2.1 binaries (and maybe also > 2.0.2) as >>>>> a simple zip-File like you do it with 2.1 OS-X ones? >>>>> >>>>> Tom >>>>> >>>>> >>>>> >>>>> >>> >>> > > > From tom.schindl at bestsolution.at Tue May 8 06:43:31 2012 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Tue, 8 May 2012 15:43:31 +0200 Subject: Why is the windows runtime/sdk only provided as .exe In-Reply-To: <4FA92244.8090202@oracle.com> References: <4F045E66.2020408@bestsolution.at> <4F047CCF.6080600@oracle.com> <4F047EA0.5060300@bestsolution.at> <4F048053.6010107@oracle.com> <4FA8F6CD.4000501@bestsolution.at> <4FA92244.8090202@oracle.com> Message-ID: <9F82B134-6E8E-474C-90AC-A656CBE4746D@bestsolution.at> Haveing the SDK-zips will solve all my current problems. Thanks for taking a Look. Tom Von meinem iPhone gesendet Am 08.05.2012 um 15:40 schrieb Kevin Rushforth : > Hi Tom, > > I just looked and you are right...only see the .exe files were released for 2.1. I will check into this and get back to you. > > The Mac issue will be trickier since we don't have any tested / supported standalone bundles of JavaFX 2.1 on Mac. As a released product JavaFX 2.1 for Mac is only available as part of JDK 7u4. > > -- Kevin > > > Tom Schindl wrote: >> >> Kevin - can you take a look at this once more? Since the 2.1 release the >> zips for the SDKs are not available anymore! >> >> One can only download the one for 2.2 so it looks like the dev-release >> site was adjusted but the GA site not. >> >> For those of use doing cross platform development and packaging JavaFX >> with their apps getting geting the releases as zips is something really >> important. >> >> Sidenote: Even worse because I'm still on OS-X 10.6.8 I can't even >> install JavaFX because the JDK-7 release requires at least 10.7.0 (I >> know you are not support JavaFX prior to JDK 7) >> >> Thanks >> >> Tom >> >> Am 04.01.12 17:37, schrieb Kevin Rushforth: >> >>> Oh, maybe we don't actually release the SDK on the public web page >>> either (I knew we didn't release the runtime as a zip since we don't >>> even generate it internally). >>> >>> -- Kevin >>> >>> >>> Tom Schindl wrote: >>> >>>> Hi Kevin, >>>> >>>> Well maybe I'm blind but for win32 the there is NO zip available from >>>> this page [1]. >>>> >>>> The only thing available currently as a zip is the OS-X SDK version >>>> which misses the win32 native libs not? I'll file a JIRA. >>>> >>>> [1]http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.html >>>> >>>> >>>> Am 04.01.12 17:22, schrieb Kevin Rushforth: >>>> >>>> >>>>> Good question. The SDK is available as both an installer and a zip, and >>>>> we could consider make the runtime available as a zip file as well, so >>>>> please file a JIRA feature request for this. >>>>> >>>>> As for your other question, it is not currently possible to have 2.0.2 >>>>> and 2.1 instaled side-by-side. >>>>> >>>>> -- Kevin >>>>> >>>>> >>>>> Tom Schindl wrote: >>>>> >>>>> >>>>>> Hi, >>>>>> >>>>>> Now that since 2.0.2 (and also 2.1) are redistributeable it might make >>>>>> sense to provide them also as simple ZIP-Files. >>>>>> >>>>>> I find it odd that if I want to package JavaFX with my product that I >>>>>> first have to install something only my system, navigate to the install >>>>>> dir and copy over the stuff my own project directory. >>>>>> >>>>>> Is it BTW possible to have 2.1 and 2.0.2 installed next to each other? I >>>>>> guess not which makes it hard to test with both versions on the same >>>>>> system, which would be made much more easy if provided as simple >>>>>> ZIP-Files. >>>>>> >>>>>> Would you mind providing JavaFX 2.1 binaries (and maybe also > 2.0.2) as >>>>>> a simple zip-File like you do it with 2.1 OS-X ones? >>>>>> >>>>>> Tom >>>>>> >>>>>> >>>>>> >>>>>> >>>> >>>> >> >> >> From richard.bair at oracle.com Tue May 8 08:21:11 2012 From: richard.bair at oracle.com (Richard Bair) Date: Tue, 8 May 2012 08:21:11 -0700 Subject: Redirecting log information In-Reply-To: <4FA90F6D.4020704@bestsolution.at> References: <4FA8396A.2070305@bestsolution.at> <50376A1F-FEE5-410B-BFE4-AABE3F5AC352@gmx.de> <4FA84B0B.5070303@bestsolution.at> <4FA90F6D.4020704@bestsolution.at> Message-ID: Not all JavaFx code is consistent on logging. In particular, the graphics code just uses System.out and System.err, whereas controls use a Logger which goes to System.out unless you enable JDK logging, in which case it uses a JDK Logger. I feel we ought to use the same logging method consistently, and then it should be quite easy for you to redirect by utilizing the JDK logging mechanism? On May 8, 2012, at 5:19 AM, Tom Schindl wrote: > Hi, > > The problem is the point at which one redirects the stderr. Take a look > at this: > >> public class TestApp extends Application { >> >> @Override >> public void start(Stage primaryStage) { >> ByteArrayOutputStream out = new ByteArrayOutputStream(); >> PrintStream orig = System.err; >> System.setErr(new PrintStream(out)); // Works >> > > vs. > >> public class TestApp extends Application { >> >> @Override >> public void start(Stage primaryStage) { >> ByteArrayOutputStream out = new ByteArrayOutputStream(); >> PrintStream orig = System.err; >> >> Group g = new Group(); >> System.setErr(new PrintStream(out)); // Does not work > > The problem is that Option 1 is not possible for me because I only have > to redirect the logging information from JavaFX while your solution > completely redirects STDERR with is not making much sense! > > Sad enough the Logging code is not yet opensourced so I still hope that > a JavaFX dev with access to the code can help me. > > So I repeat my question. Can I somehow set a custom logger to the JavaFX > platform? > > Tom > > Am 08.05.12 00:22, schrieb Tom Schindl: >> I've tried that already and couldn't make it work. Did you try it and it >> worked? Then I'd give another try. >> >> Tom >> >> Am 08.05.12 00:25, schrieb Christian Schudt: >>> You can redirect the System.err stream to your logger. >>> >>> See here: >>> >>> https://forums.oracle.com/forums/thread.jspa?messageID=10304321 >>> http://stackoverflow.com/questions/1200175/log4j-redirect-stdout-to-dailyrollingfileappender/1370033#1370033 >>> >>> Christian >>> >>> >>> Am 07.05.2012 um 23:06 schrieb Tom Schindl: >>> >>>> Hi, >>>> >>>> I'm having a hard time redirecting log output generated by JavaFX >>>> library. Is there some API available or documentation? >>>> >>>> Tom >>>> >>>> -- >>>> B e s t S o l u t i o n . a t EDV Systemhaus GmbH >>>> ------------------------------------------------------------------------ >>>> tom schindl gesch?ftsf?hrer/CEO >>>> ------------------------------------------------------------------------ >>>> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 >>>> http://www.BestSolution.at phone ++43 512 935834 >>> >> >> > > > -- > B e s t S o l u t i o n . a t EDV Systemhaus GmbH > ------------------------------------------------------------------------ > tom schindl gesch?ftsf?hrer/CEO > ------------------------------------------------------------------------ > eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 > http://www.BestSolution.at phone ++43 512 935834 From lehmann at media-interactive.de Tue May 8 08:24:18 2012 From: lehmann at media-interactive.de (Werner Lehmann) Date: Tue, 8 May 2012 17:24:18 +0200 Subject: Custom Border for Callout Popup In-Reply-To: <89DBC40C-1B23-4E56-B75C-25A86B34DEA5@oracle.com> References: <4FA82340.5040005@media-interactive.de> <89DBC40C-1B23-4E56-B75C-25A86B34DEA5@oracle.com> Message-ID: <4FA93AA2.7000908@media-interactive.de> Hi Richard, I tried to do what you suggested. It works... sort of. After quite some code reading I ended up with the code below. The remaining main problem is that I have to use the tip of the arrow/tail as hotspot to position the callout popup. In my original attempt I showed it offscreen to get the actual size, then moved it to the right spot. With separate control/skin classes this has become more difficult because only the skin knows how to compute that hotspot but the control does not know the skin (intentionally, I assume). Furthermore, the skin instance does not even exist before the control shows. So, how can I measure the width before it is even visible on screen? In the skin constructor the popup width is still zero. I need the width to move the popup origin to the left because the arrow/tail hotspot is on the right side. I have been moving code back and forth and back but could not figure this out. Thanks... Werner ------- .mint-callout-popup { -fx-skin: "mint.javafx.stage.MintCalloutPopup2Skin"; -fx-padding: 15 5 0 5; } ------- public class MintCalloutPopup2 extends PopupControl { private static final String DEFAULT_STYLE_CLASS = "mint-callout-popup"; static { StyleManager.getInstance().addUserAgentStylesheet( MintCalloutPopup2.class.getResource( "MintCalloutPopup2.css").toExternalForm()); } private final ObjectProperty contentNode = new SimpleObjectProperty(this, "contentNode"); private final ObjectProperty target = new SimpleObjectProperty(this, "target"); public MintCalloutPopup2() { getStyleClass().setAll(DEFAULT_STYLE_CLASS); setAutoHide(true); setHideOnEscape(true); } public ObjectProperty contentNodeProperty() { return contentNode; } public Node getContentNode() { return contentNode.get(); } public void setContentNode(Node value) { contentNode.set(value); } public ObjectProperty targetProperty() { return target; } public Node getTarget() { return target.get(); } public void setTarget(Node value) { target.set(value); } public void showAtTarget() { show(getTarget().getScene().getWindow()); } } ------- public class MintCalloutPopup2Skin implements Skin { private MintCalloutPopup2 callout; private StackPane root; private StackPane content; public MintCalloutPopup2Skin(MintCalloutPopup2 callout) { this.callout = callout; content = new StackPane(); replaceContent(); callout.contentNodeProperty().addListener( new InvalidationListener() { @Override public void invalidated(Observable observable) { replaceContent(); } }); root = new StackPane(); root.getChildren().addAll(createCalloutShape(), content); root.getStyleClass().setAll(callout.getStyleClass()); root.setStyle(callout.getStyle()); root.setId(callout.getId()); // <------------- the popup bounds are unknown here, how // can I relocate it "right/top aligned"? } private void replaceContent() { if (callout.getContentNode() == null) content.getChildren().clear(); else content.getChildren().setAll(callout.getContentNode()); } @Override public MintCalloutPopup2 getSkinnable() { return callout; } @Override public Node getNode() { return root; } @Override public void dispose() { callout = null; } private Shape createCalloutShape() { MoveTo e0 ... // bound to widthProperty/heightProperty // ... ClosePath e7 = new ClosePath(); return PathBuilder.create() .managed(false) .strokeWidth(1) .smooth(false) .strokeType(StrokeType.OUTSIDE) .fill(javafx.scene.paint.Color.WHITE) .elements(e0, e1, e2, e3, e4, e5, e6, e7) .build(); } } On 07.05.2012 23:54, Richard Bair wrote: > I think what I would have done would be to extend from PopupControl. > Then write a new Skin for your Callout. The skin would add the path > as one of its children, and whatever content is added to the content > would then be added after the path. The path would have "managed" set > to false. Then, in the layoutChildren() method of your Callout, you > would reposition the path based on the current bounds and then call > super.layoutChildren() which would position and layout the content. > > So something like: > > public class Callout extends PopupControl { ... } > > // Doh! SkinBase is a private class, but you can copy/paste it into > your code if it is GPL+classpath..., otherwise just see what it does > and write a fresh Skin that does the same public class CalloutSkin > extends SkinBase { private Path path; ... } > > Richard > > > > On May 7, 2012, at 12:32 PM, Werner Lehmann wrote: > >> Hi, >> >> I am creating a popup for a callout. The callout is basically a >> rectangle with a small arrow/tail on the top right corner and a >> single node for its content. That node may resize later and the >> callout has to adjust. http://i49.tinypic.com/21crux3.jpg >> >> First I tried to do this with -fx-shape and an svg path but without >> luck: could not make this work, never saw that shape. Unfortunately >> I also did not find any example... I suppose even an SVG path >> border would not resize automatically when the content changes - >> otherwise this would be exactly what I need ;-) >> >> Plan B is to use a Popup with a Path in the appropriate shape. This >> works but I am battling two things: >> >> 1. I have to know the popup content layout bounds before I can >> position the popup "right aligned". Currently solved by showing the >> popup offscreen (at -10000, 0) to get valid layoutBounds. Then I >> move it to the correct position. Is there a better way to get >> layoutBounds before showing a window? >> >> 2. When the content size changes, a similar problem arises: now I >> have to determine the new popup size, change the border Path to >> match the new size (PathElement binding might work here) and >> reposition the window. A resize animation would be nice, and some >> clipping will be needed also... >> >> This is when I got an idea: is it possible to create and use a >> custom border class? Looks as if I could extend >> com.sun.javafx.scene.layout.region.Border... In this way I would >> get content clipping and resizing (position of arrow/tail must be >> adjusted) for free. >> >> Any thoughts? >> >> Thanks. Werner >> > -- -------------------------------------------------------- MINT MEDIA INTERACTIVE Software Systems GmbH Kiel Science Centre / Wissenschaftszentrum Fraunhoferstr. 13 D-24118 Kiel, Germany Phone: +49 (0)431 530215-0 Fax: +49 (0)431 5302090 Mail: lehmann at media-interactive.de Web: www.media-interactive.de -------------------------------------------------------- -------------------------------------------------------- Sitz der Gesellschaft / Corporate HQ: Kiel Reg.-eintragung / Registration: Amtsgericht Kiel HRB 4860 Ust-ID Nr. DE 197455787 Gesch?ftsf?hrer / Managing Director: J?rg Latteier -------------------------------------------------------- From kevin.rushforth at oracle.com Tue May 8 08:28:21 2012 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Tue, 08 May 2012 08:28:21 -0700 Subject: Redirecting log information In-Reply-To: References: <4FA8396A.2070305@bestsolution.at> <50376A1F-FEE5-410B-BFE4-AABE3F5AC352@gmx.de> <4FA84B0B.5070303@bestsolution.at> <4FA90F6D.4020704@bestsolution.at> Message-ID: <4FA93B95.2080104@oracle.com> This would certainly make everyone's life easier. In any case, library code should never write debug/warning/error meesages to System.out / stdout (and yes, I know that some of the graphics currently does). Best is to use logging where possible for the reasons Richard mentioned, and System.err / stderr where not. -- Kevin Richard Bair wrote: > Not all JavaFx code is consistent on logging. In particular, the graphics code just uses System.out and System.err, whereas controls use a Logger which goes to System.out unless you enable JDK logging, in which case it uses a JDK Logger. > > I feel we ought to use the same logging method consistently, and then it should be quite easy for you to redirect by utilizing the JDK logging mechanism? > > On May 8, 2012, at 5:19 AM, Tom Schindl wrote: > > >> Hi, >> >> The problem is the point at which one redirects the stderr. Take a look >> at this: >> >> >>> public class TestApp extends Application { >>> >>> @Override >>> public void start(Stage primaryStage) { >>> ByteArrayOutputStream out = new ByteArrayOutputStream(); >>> PrintStream orig = System.err; >>> System.setErr(new PrintStream(out)); // Works >>> >>> >> vs. >> >> >>> public class TestApp extends Application { >>> >>> @Override >>> public void start(Stage primaryStage) { >>> ByteArrayOutputStream out = new ByteArrayOutputStream(); >>> PrintStream orig = System.err; >>> >>> Group g = new Group(); >>> System.setErr(new PrintStream(out)); // Does not work >>> >> The problem is that Option 1 is not possible for me because I only have >> to redirect the logging information from JavaFX while your solution >> completely redirects STDERR with is not making much sense! >> >> Sad enough the Logging code is not yet opensourced so I still hope that >> a JavaFX dev with access to the code can help me. >> >> So I repeat my question. Can I somehow set a custom logger to the JavaFX >> platform? >> >> Tom >> >> Am 08.05.12 00:22, schrieb Tom Schindl: >> >>> I've tried that already and couldn't make it work. Did you try it and it >>> worked? Then I'd give another try. >>> >>> Tom >>> >>> Am 08.05.12 00:25, schrieb Christian Schudt: >>> >>>> You can redirect the System.err stream to your logger. >>>> >>>> See here: >>>> >>>> https://forums.oracle.com/forums/thread.jspa?messageID=10304321 >>>> http://stackoverflow.com/questions/1200175/log4j-redirect-stdout-to-dailyrollingfileappender/1370033#1370033 >>>> >>>> Christian >>>> >>>> >>>> Am 07.05.2012 um 23:06 schrieb Tom Schindl: >>>> >>>> >>>>> Hi, >>>>> >>>>> I'm having a hard time redirecting log output generated by JavaFX >>>>> library. Is there some API available or documentation? >>>>> >>>>> Tom >>>>> >>>>> -- >>>>> B e s t S o l u t i o n . a t EDV Systemhaus GmbH >>>>> ------------------------------------------------------------------------ >>>>> tom schindl gesch?ftsf?hrer/CEO >>>>> ------------------------------------------------------------------------ >>>>> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 >>>>> http://www.BestSolution.at phone ++43 512 935834 >>>>> >>> >> -- >> B e s t S o l u t i o n . a t EDV Systemhaus GmbH >> ------------------------------------------------------------------------ >> tom schindl gesch?ftsf?hrer/CEO >> ------------------------------------------------------------------------ >> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 >> http://www.BestSolution.at phone ++43 512 935834 >> From philip.race at oracle.com Tue May 8 09:06:20 2012 From: philip.race at oracle.com (Phil Race) Date: Tue, 08 May 2012 09:06:20 -0700 Subject: Redirecting log information In-Reply-To: <4FA93B95.2080104@oracle.com> References: <4FA8396A.2070305@bestsolution.at> <50376A1F-FEE5-410B-BFE4-AABE3F5AC352@gmx.de> <4FA84B0B.5070303@bestsolution.at> <4FA90F6D.4020704@bestsolution.at> <4FA93B95.2080104@oracle.com> Message-ID: <4FA9447C.4030906@oracle.com> I think the graphics code mostly if not always, guards those printlns with a check for a debugging flag. Unless used in a similar manner, the logging API carries overhead. There was a fix in JDK 7 to eliminate dependency on logging from AWT/2D/Swing. In part that was because of modularisation .. I don't know the full story on why that mattered. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6879044 : Eliminate the dependency on logging from the AWT/2D/Swing classes -phil. On 5/8/2012 8:28 AM, Kevin Rushforth wrote: > This would certainly make everyone's life easier. > > In any case, library code should never write debug/warning/error > meesages to System.out / stdout (and yes, I know that some of the > graphics currently does). Best is to use logging where possible for > the reasons Richard mentioned, and System.err / stderr where not. > > -- Kevin > > > Richard Bair wrote: >> Not all JavaFx code is consistent on logging. In particular, the >> graphics code just uses System.out and System.err, whereas controls >> use a Logger which goes to System.out unless you enable JDK logging, >> in which case it uses a JDK Logger. >> >> I feel we ought to use the same logging method consistently, and then >> it should be quite easy for you to redirect by utilizing the JDK >> logging mechanism? >> >> On May 8, 2012, at 5:19 AM, Tom Schindl >> wrote: >> >>> Hi, >>> >>> The problem is the point at which one redirects the stderr. Take a look >>> at this: >>> >>>> public class TestApp extends Application { >>>> >>>> @Override >>>> public void start(Stage primaryStage) { >>>> ByteArrayOutputStream out = new ByteArrayOutputStream(); >>>> PrintStream orig = System.err; >>>> System.setErr(new PrintStream(out)); // Works >>> vs. >>> >>>> public class TestApp extends Application { >>>> >>>> @Override >>>> public void start(Stage primaryStage) { >>>> ByteArrayOutputStream out = new ByteArrayOutputStream(); >>>> PrintStream orig = System.err; >>>> Group g = new Group(); >>>> System.setErr(new PrintStream(out)); // Does not work >>> The problem is that Option 1 is not possible for me because I only have >>> to redirect the logging information from JavaFX while your solution >>> completely redirects STDERR with is not making much sense! >>> >>> Sad enough the Logging code is not yet opensourced so I still hope that >>> a JavaFX dev with access to the code can help me. >>> >>> So I repeat my question. Can I somehow set a custom logger to the >>> JavaFX >>> platform? >>> >>> Tom >>> >>> Am 08.05.12 00:22, schrieb Tom Schindl: >>>> I've tried that already and couldn't make it work. Did you try it >>>> and it >>>> worked? Then I'd give another try. >>>> >>>> Tom >>>> >>>> Am 08.05.12 00:25, schrieb Christian Schudt: >>>>> You can redirect the System.err stream to your logger. >>>>> >>>>> See here: >>>>> >>>>> https://forums.oracle.com/forums/thread.jspa?messageID=10304321 >>>>> http://stackoverflow.com/questions/1200175/log4j-redirect-stdout-to-dailyrollingfileappender/1370033#1370033 >>>>> >>>>> >>>>> Christian >>>>> >>>>> >>>>> Am 07.05.2012 um 23:06 schrieb Tom Schindl: >>>>> >>>>>> Hi, >>>>>> >>>>>> I'm having a hard time redirecting log output generated by JavaFX >>>>>> library. Is there some API available or documentation? >>>>>> >>>>>> Tom >>>>>> >>>>>> -- >>>>>> B e s t S o l u t i o n . a t EDV >>>>>> Systemhaus GmbH >>>>>> ------------------------------------------------------------------------ >>>>>> >>>>>> tom schindl gesch?ftsf?hrer/CEO >>>>>> ------------------------------------------------------------------------ >>>>>> >>>>>> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 >>>>>> 935833 >>>>>> http://www.BestSolution.at phone ++43 512 >>>>>> 935834 >>> -- >>> B e s t S o l u t i o n . a t EDV Systemhaus >>> GmbH >>> ------------------------------------------------------------------------ >>> >>> tom schindl gesch?ftsf?hrer/CEO >>> ------------------------------------------------------------------------ >>> >>> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 >>> 935833 >>> http://www.BestSolution.at phone ++43 512 >>> 935834 From hang.vo at oracle.com Tue May 8 09:18:40 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 08 May 2012 16:18:40 +0000 Subject: hg: openjfx/2.2/graphics/rt: 35 new changesets Message-ID: <20120508161907.B769D471BB@hg.openjdk.java.net> Changeset: 66ba0daf77a7 Author: Paru Somashekar Date: 2012-04-30 16:38 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/66ba0daf77a7 fix RT-21124 ColorPicker setValue dont affect obviously. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPalette.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPickerSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/CustomColorDialog.java Changeset: d41e65ac94a5 Author: David Grieve Date: 2012-05-01 08:54 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/d41e65ac94a5 RT-20714: redo - added initializer to sync all styleable properties and redid the InvalidationListener. Now all the styleables are in sync. Also added a unit test. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/LabeledImpl.java + javafx-ui-controls/test/com/sun/javafx/scene/control/skin/LabeledImplTest.java Changeset: 6f138e004e5b Author: leifs Date: 2012-05-01 11:18 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/6f138e004e5b Fixed RT-10392: Allow the ellipsis for Labeled to be customizable ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/LabeledSkinBase.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/Utils.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/resources/controls.properties ! javafx-ui-controls/src/javafx/scene/control/Labeled.java Changeset: 4f81320ed486 Author: leifs Date: 2012-05-01 13:39 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/4f81320ed486 [TEST ONLY] Fix broken test. ! javafx-ui-controls/test/com/sun/javafx/scene/control/skin/LabeledImplTest.java Changeset: b4d1ce106712 Author: Kinsley Wong Date: 2012-05-01 13:42 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/b4d1ce106712 RT-21117: [Pagination] page indicator count can be done very large, so that selected page indicator is not shown. RT-21119: [Pagination] controls pref size doesn't affect, when it is less, then size of indicators. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/PaginationSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css Changeset: 9b05b030c354 Author: Paru Somashekar Date: 2012-05-01 16:21 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/9b05b030c354 fix RT-19709 API to enable accelerators lazily. ! javafx-ui-controls/nbproject/project.xml ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/MenuButtonSkinBase.java ! javafx-ui-controls/src/javafx/scene/control/Menu.java ! javafx-ui-controls/src/javafx/scene/control/MenuItem.java Changeset: fea9c6ae21cf Author: Paru Somashekar Date: 2012-05-01 16:31 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/fea9c6ae21cf Backed out changeset 9b05b030c354 ! javafx-ui-controls/nbproject/project.xml ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/MenuButtonSkinBase.java ! javafx-ui-controls/src/javafx/scene/control/Menu.java ! javafx-ui-controls/src/javafx/scene/control/MenuItem.java Changeset: 69d6942a96f6 Author: Paru Somashekar Date: 2012-05-01 16:34 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/69d6942a96f6 fix RT-19709 API to enable accelerators lazily. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/MenuButtonSkinBase.java ! javafx-ui-controls/src/javafx/scene/control/Menu.java ! javafx-ui-controls/src/javafx/scene/control/MenuItem.java Changeset: 23f0508a4f05 Author: Kinsley Wong Date: 2012-05-01 16:44 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/23f0508a4f05 RT-21166: Making a Tab closeable has no effect until you mouseover the Tab. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/TabPaneSkin.java Changeset: 79b5c12b47ab Author: David Grieve Date: 2012-05-01 23:46 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/79b5c12b47ab RT-18097: ensure default property value and initial css value agree. Added unit tests ! javafx-ui-common/src/com/sun/javafx/css/StyleableProperty.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/src/javafx/scene/layout/GridPane.java ! javafx-ui-common/src/javafx/scene/shape/Line.java ! javafx-ui-common/src/javafx/scene/shape/Path.java ! javafx-ui-common/src/javafx/scene/shape/Polyline.java ! javafx-ui-common/src/javafx/scene/shape/Shape.java ! javafx-ui-common/test/unit/com/sun/javafx/css/StyleablePropertyTest.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxListCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxTableCell.java ! javafx-ui-controls/src/javafx/scene/chart/Axis.java ! javafx-ui-controls/src/javafx/scene/control/Accordion.java ! javafx-ui-controls/src/javafx/scene/control/Cell.java ! javafx-ui-controls/src/javafx/scene/control/Control.java ! javafx-ui-controls/src/javafx/scene/control/Hyperlink.java ! javafx-ui-controls/src/javafx/scene/control/Label.java ! javafx-ui-controls/src/javafx/scene/control/Labeled.java ! javafx-ui-controls/src/javafx/scene/control/MenuBar.java ! javafx-ui-controls/src/javafx/scene/control/ProgressBar.java ! javafx-ui-controls/src/javafx/scene/control/ProgressIndicator.java ! javafx-ui-controls/src/javafx/scene/control/RadioButton.java ! javafx-ui-controls/src/javafx/scene/control/ScrollBar.java ! javafx-ui-controls/src/javafx/scene/control/ScrollPane.java ! javafx-ui-controls/src/javafx/scene/control/Separator.java ! javafx-ui-controls/src/javafx/scene/control/SplitPane.java ! javafx-ui-controls/src/javafx/scene/control/ToggleButton.java ! javafx-ui-controls/src/javafx/scene/control/ToolBar.java ! javafx-ui-controls/test/javafx/scene/control/ControlTest.java Changeset: 8196e66ed67a Author: Paru Somashekar Date: 2012-05-01 22:46 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/8196e66ed67a fix broken unit test ! javafx-ui-controls/src/javafx/scene/control/Menu.java Changeset: f36bc4562297 Author: Paru Somashekar Date: 2012-05-02 14:43 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/f36bc4562297 fix an issue with firing menu validation event. ! javafx-ui-controls/src/javafx/scene/control/Menu.java ! javafx-ui-controls/src/javafx/scene/control/MenuItem.java Changeset: 6d31db9184b6 Author: David Grieve Date: 2012-05-02 18:21 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/6d31db9184b6 RT-21292: style cache lookup is slow on deeply nested scenegraphs. rework style cache lookup to avoid array search. ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/test/unit/com/sun/javafx/css/Node_cssStyleMap_Test.java ! javafx-ui-common/test/unit/com/sun/javafx/css/StyleablePropertyTest.java Changeset: c94ff7a27a08 Author: leifs Date: 2012-05-03 10:31 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/c94ff7a27a08 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/MASTER/rt Changeset: 59ae894c63c3 Author: David Grieve Date: 2012-05-03 23:17 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/59ae894c63c3 RT-21292: fix for leaking CalculatedValue ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java Changeset: 83430f042b23 Author: David Grieve Date: 2012-05-03 23:41 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/83430f042b23 [DOCS-ONLY] add "SB-dependency: RT-XXXXX has been filed to track this" comment for css related impl_ methods that are used by SceneBuilder ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/src/javafx/scene/Parent.java ! javafx-ui-controls/src/javafx/scene/control/MenuItem.java ! javafx-ui-controls/src/javafx/scene/control/PopupControl.java ! javafx-ui-controls/src/javafx/scene/control/Tab.java Changeset: fc135f987a0c Author: David Grieve Date: 2012-05-04 00:41 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/fc135f987a0c RT-21185: only apply a css value if the new value is not equals the current value. ! javafx-ui-common/src/com/sun/javafx/css/StyleableProperty.java ! javafx-ui-common/test/unit/com/sun/javafx/css/StyleablePropertyTest.java Changeset: 365cde0469cd Author: Paru Somashekar Date: 2012-05-04 01:09 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/365cde0469cd ColorPicker changes including adding Tooltip, context menu to delete custom color. ! javafx-ui-controls/src/com/sun/javafx/scene/control/ColorPicker.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPalette.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPickerSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/CustomColorDialog.java Changeset: 1547cbd2e620 Author: mickf Date: 2012-05-04 17:49 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/1547cbd2e620 [DOCS-ONLY] added SB-dependency: RT-XXXXX has been filed to track this comment for css related impl_ methods that are used by SceneBuilder ! javafx-ui-common/src/javafx/scene/Scene.java Changeset: e894075f1b23 Author: mickf Date: 2012-05-04 18:57 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/e894075f1b23 RT-20779 : Scaling UI Controls down to QVGA: ScrollBar ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ScrollBarSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/Utils.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css Changeset: 9e562a96597c Author: mickf Date: 2012-05-04 19:03 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/9e562a96597c RT-20780 : Scaling UI Controls down to QVGA: ScrollPane ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ScrollPaneSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css ! javafx-ui-controls/test/com/sun/javafx/scene/control/skin/ScrollPaneSkinTest.java Changeset: 933c86201b73 Author: Paru Somashekar Date: 2012-05-04 14:54 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/933c86201b73 fix an issue where menu validation event handler was getting invoked only for menuitems and not for menu. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/MenuButtonSkinBase.java ! javafx-ui-controls/src/javafx/scene/control/Menu.java ! javafx-ui-controls/src/javafx/scene/control/MenuItem.java Changeset: 80393953c550 Author: leifs Date: 2012-05-06 13:00 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/80393953c550 Fixed RT-21273: [Virtual Keyboard] Implement Visual Design Specs for Virtual Keyboard ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/FXVK.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/FXVKSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/TextInputControlSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/resources/controls.properties Changeset: 14596f886092 Author: jgiles Date: 2012-05-07 10:30 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/14596f886092 RT-14909: It should be possible to customise the TableColumn header area more ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/TableColumnHeader.java ! javafx-ui-controls/src/javafx/scene/control/TableColumn.java Changeset: 4fcb410cd5a4 Author: jgiles Date: 2012-05-07 10:33 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/4fcb410cd5a4 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/controls/jfx/rt Changeset: fafecccffdea Author: leifs Date: 2012-05-06 21:09 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/fafecccffdea Images for RT-21273: [Virtual Keyboard] Implement Visual Design Specs for Virtual Keyboard + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/fxvk-backspace-button.png + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/fxvk-capslock-button.png + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/fxvk-enter-button.png + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/fxvk-shift-button.png Changeset: 4bdb29f2879a Author: David Grieve Date: 2012-05-07 08:48 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/4bdb29f2879a RT-20066: ensure caught exceptions in StyleHelper are added to StyleManager errorProperty ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java Changeset: 53f061778112 Author: David Grieve Date: 2012-05-07 09:44 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/53f061778112 RT-21292: second attempt at fixing memory leak ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/test/unit/com/sun/javafx/css/Node_cssStyleMap_Test.java ! javafx-ui-common/test/unit/com/sun/javafx/css/StyleablePropertyTest.java Changeset: d2703aaef913 Author: leifs Date: 2012-05-07 11:19 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/d2703aaef913 Add workaround to load icon images for virtual keyboard. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/FXVKSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css Changeset: fbfd25ff3c22 Author: mickf Date: 2012-05-07 20:28 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/fbfd25ff3c22 [DOCS-ONLY] added SB-dependency: RT-XXXXX has been filed to track this comment for css related impl_ methods that are used by SceneBuilder ! javafx-ui-common/src/javafx/scene/Parent.java Changeset: 40594024f30e Author: leifs Date: 2012-05-07 13:05 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/40594024f30e [TEST ONLY] Disable failing test ! javafx-ui-controls/test/javafx/scene/control/MenuBarTest.java Changeset: d8121411b4e9 Author: leifs Date: 2012-05-07 13:08 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/d8121411b4e9 merge Changeset: 472e57ab675c Author: David Grieve Date: 2012-05-07 20:08 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/472e57ab675c RT-21412: need to create a stylehelper if the reference itself is null or the referent is null, not just if the referent is null. ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/test/unit/com/sun/javafx/css/Node_cssStyleMap_Test.java ! javafx-ui-controls/test/javafx/scene/control/MenuBarTest.java Changeset: e971e6a12a35 Author: David Grieve Date: 2012-05-07 23:29 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/e971e6a12a35 RT-21412: redo changes to Node_cssStyleMap_Test to bring it into line with similar code in StyleablePropertyTest (which is the correct code) ! javafx-ui-common/test/unit/com/sun/javafx/css/Node_cssStyleMap_Test.java Changeset: 804bd3cdb04f Author: jpgodine at JPGODINE-LAP.st-users.us.oracle.com Date: 2012-05-08 09:03 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/804bd3cdb04f Automated merge with ssh://jpgodine at jfxsrc.us.oracle.com//javafx/2.2/MASTER/jfx/rt ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/src/javafx/scene/Parent.java ! javafx-ui-common/src/javafx/scene/Scene.java From richard.bair at oracle.com Tue May 8 09:54:40 2012 From: richard.bair at oracle.com (Richard Bair) Date: Tue, 8 May 2012 09:54:40 -0700 Subject: Redirecting log information In-Reply-To: <4FA9447C.4030906@oracle.com> References: <4FA8396A.2070305@bestsolution.at> <50376A1F-FEE5-410B-BFE4-AABE3F5AC352@gmx.de> <4FA84B0B.5070303@bestsolution.at> <4FA90F6D.4020704@bestsolution.at> <4FA93B95.2080104@oracle.com> <4FA9447C.4030906@oracle.com> Message-ID: <44FA9AA8-130C-46DF-9979-3A7912706312@oracle.com> Ya, both JDK logging and JFX logging have the same flag checks available. On May 8, 2012, at 9:06 AM, Phil Race wrote: > I think the graphics code mostly if not always, guards those printlns with a check for > a debugging flag. Unless used in a similar manner, the logging API carries overhead. > There was a fix in JDK 7 to eliminate dependency on logging from AWT/2D/Swing. > In part that was because of modularisation .. I don't know the full story on why > that mattered. > > http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6879044 : > Eliminate the dependency on logging from the AWT/2D/Swing classes > > -phil. > > On 5/8/2012 8:28 AM, Kevin Rushforth wrote: >> This would certainly make everyone's life easier. >> >> In any case, library code should never write debug/warning/error meesages to System.out / stdout (and yes, I know that some of the graphics currently does). Best is to use logging where possible for the reasons Richard mentioned, and System.err / stderr where not. >> >> -- Kevin >> >> >> Richard Bair wrote: >>> Not all JavaFx code is consistent on logging. In particular, the graphics code just uses System.out and System.err, whereas controls use a Logger which goes to System.out unless you enable JDK logging, in which case it uses a JDK Logger. >>> >>> I feel we ought to use the same logging method consistently, and then it should be quite easy for you to redirect by utilizing the JDK logging mechanism? >>> >>> On May 8, 2012, at 5:19 AM, Tom Schindl wrote: >>> >>>> Hi, >>>> >>>> The problem is the point at which one redirects the stderr. Take a look >>>> at this: >>>> >>>>> public class TestApp extends Application { >>>>> >>>>> @Override >>>>> public void start(Stage primaryStage) { >>>>> ByteArrayOutputStream out = new ByteArrayOutputStream(); >>>>> PrintStream orig = System.err; >>>>> System.setErr(new PrintStream(out)); // Works >>>> vs. >>>> >>>>> public class TestApp extends Application { >>>>> >>>>> @Override >>>>> public void start(Stage primaryStage) { >>>>> ByteArrayOutputStream out = new ByteArrayOutputStream(); >>>>> PrintStream orig = System.err; >>>>> Group g = new Group(); >>>>> System.setErr(new PrintStream(out)); // Does not work >>>> The problem is that Option 1 is not possible for me because I only have >>>> to redirect the logging information from JavaFX while your solution >>>> completely redirects STDERR with is not making much sense! >>>> >>>> Sad enough the Logging code is not yet opensourced so I still hope that >>>> a JavaFX dev with access to the code can help me. >>>> >>>> So I repeat my question. Can I somehow set a custom logger to the JavaFX >>>> platform? >>>> >>>> Tom >>>> >>>> Am 08.05.12 00:22, schrieb Tom Schindl: >>>>> I've tried that already and couldn't make it work. Did you try it and it >>>>> worked? Then I'd give another try. >>>>> >>>>> Tom >>>>> >>>>> Am 08.05.12 00:25, schrieb Christian Schudt: >>>>>> You can redirect the System.err stream to your logger. >>>>>> >>>>>> See here: >>>>>> >>>>>> https://forums.oracle.com/forums/thread.jspa?messageID=10304321 >>>>>> http://stackoverflow.com/questions/1200175/log4j-redirect-stdout-to-dailyrollingfileappender/1370033#1370033 >>>>>> >>>>>> Christian >>>>>> >>>>>> >>>>>> Am 07.05.2012 um 23:06 schrieb Tom Schindl: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> I'm having a hard time redirecting log output generated by JavaFX >>>>>>> library. Is there some API available or documentation? >>>>>>> >>>>>>> Tom >>>>>>> >>>>>>> -- >>>>>>> B e s t S o l u t i o n . a t EDV Systemhaus GmbH >>>>>>> ------------------------------------------------------------------------ >>>>>>> tom schindl gesch?ftsf?hrer/CEO >>>>>>> ------------------------------------------------------------------------ >>>>>>> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 >>>>>>> http://www.BestSolution.at phone ++43 512 935834 >>>> -- >>>> B e s t S o l u t i o n . a t EDV Systemhaus GmbH >>>> ------------------------------------------------------------------------ >>>> tom schindl gesch?ftsf?hrer/CEO >>>> ------------------------------------------------------------------------ >>>> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 >>>> http://www.BestSolution.at phone ++43 512 935834 > From kirill.prazdnikov at oracle.com Tue May 8 10:54:29 2012 From: kirill.prazdnikov at oracle.com (Kirill.Prazdnikov) Date: Tue, 08 May 2012 21:54:29 +0400 Subject: Redirecting log information In-Reply-To: <50376A1F-FEE5-410B-BFE4-AABE3F5AC352@gmx.de> References: <4FA8396A.2070305@bestsolution.at> <50376A1F-FEE5-410B-BFE4-AABE3F5AC352@gmx.de> Message-ID: <4FA95DD5.4080507@oracle.com> On 08-May-12 2:25, Christian Schudt wrote: > You can redirect the System.err stream to your logger. Unfortunately you can`t redirect log such way. -Kirill From hang.vo at oracle.com Tue May 8 11:33:50 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 08 May 2012 18:33:50 +0000 Subject: hg: openjfx/2.2/controls/rt: RT-21405: Implement visual designs for pagination. Message-ID: <20120508183353.4F2CE471C8@hg.openjdk.java.net> Changeset: 9c1fd1804113 Author: Kinsley Wong Date: 2012-05-08 11:22 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/9c1fd1804113 RT-21405: Implement visual designs for pagination. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/PaginationSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css From hang.vo at oracle.com Tue May 8 12:48:42 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 08 May 2012 19:48:42 +0000 Subject: hg: openjfx/2.2/controls/rt: Enable FX virtual keyboard on embedded platform. Message-ID: <20120508194844.1CC08471CC@hg.openjdk.java.net> Changeset: 8b0708f5ed25 Author: leifs Date: 2012-05-08 12:33 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/8b0708f5ed25 Enable FX virtual keyboard on embedded platform. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/TextInputControlSkin.java From hang.vo at oracle.com Tue May 8 13:33:40 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 08 May 2012 20:33:40 +0000 Subject: hg: openjfx/2.2/controls/rt: Fix broken unit test. Message-ID: <20120508203341.C5B32471CD@hg.openjdk.java.net> Changeset: 64ccfd96361b Author: Kinsley Wong Date: 2012-05-08 13:25 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/64ccfd96361b Fix broken unit test. ! javafx-ui-controls/test/javafx/scene/control/PaginationTest.java From hang.vo at oracle.com Tue May 8 14:03:44 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 08 May 2012 21:03:44 +0000 Subject: hg: openjfx/2.2/controls/rt: 4 new changesets Message-ID: <20120508210348.0303A471CF@hg.openjdk.java.net> Changeset: e07711c31a88 Author: jgiles Date: 2012-05-08 11:53 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/e07711c31a88 Added a Format StringConverter, and updated other Format-related classes to play nicely (and reduce duplication). ! javafx-util-converter/src/javafx/util/converter/CurrencyStringConverter.java + javafx-util-converter/src/javafx/util/converter/FormatStringConverter.java ! javafx-util-converter/src/javafx/util/converter/NumberStringConverter.java ! javafx-util-converter/src/javafx/util/converter/PercentageStringConverter.java Changeset: aecf95ea8ca1 Author: jgiles Date: 2012-05-08 15:49 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/aecf95ea8ca1 Various improvements for RT-19452: TableView: Item renderers and item editors, including: * Add getter/setter/property methods to cells * Add public default constructors to cells * Add public default constructor to CheckBoxTreeItem * Add FormatStringConverter (in java.util.converter package) * Remove StringFormat* cell code (as it now duplicates FormatStringConverter) * Merge StringConverter* cell and TextField* cell code -> called TextField* cell * Allow for combobox* cells to support editable and non-editable ComboBox ! javafx-ui-controls/src/com/sun/javafx/scene/control/CheckBoxTreeItem.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxListCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxTableCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxTreeCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxListCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxTableCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxTreeCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxListCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxTableCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxTreeCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ProgressBarTableCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterCellFactory.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterListCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterTableCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterTreeCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatCellFactory.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatListCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatTableCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatTreeCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldListCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldTableCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldTreeCell.java Changeset: 0b06e88df716 Author: jgiles Date: 2012-05-08 15:51 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/0b06e88df716 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/controls/jfx/rt - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterCellFactory.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterListCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterTableCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterTreeCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatCellFactory.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatListCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatTableCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatTreeCell.java Changeset: eac369b8d9f8 Author: jgiles Date: 2012-05-09 08:30 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/eac369b8d9f8 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/controls/jfx/rt - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterCellFactory.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterListCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterTableCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterTreeCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatCellFactory.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatListCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatTableCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatTreeCell.java From hang.vo at oracle.com Tue May 8 14:33:34 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 08 May 2012 21:33:34 +0000 Subject: hg: openjfx/2.2/graphics/rt: [DOC-ONLY]: Added SB-dependency comment to renderToImage and Image conversion methods Message-ID: <20120508213336.1A4F1471D0@hg.openjdk.java.net> Changeset: 3df48424b375 Author: kcr Date: 2012-05-08 14:15 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/3df48424b375 [DOC-ONLY]: Added SB-dependency comment to renderToImage and Image conversion methods ! javafx-ui-common/src/javafx/scene/Scene.java ! javafx-ui-common/src/javafx/scene/image/Image.java From hang.vo at oracle.com Tue May 8 15:03:47 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 08 May 2012 22:03:47 +0000 Subject: hg: openjfx/2.2/controls/rt: 3 new changesets Message-ID: <20120508220349.D3058471D1@hg.openjdk.java.net> Changeset: 9ce986d68033 Author: jgiles Date: 2012-05-09 09:54 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/9ce986d68033 Further improvements for RT-19452: TableView: Item renderers and item editors, including: * CellUtils methods should be singletons * Move various util classes into CellUtils * add style classes to all cells ctors ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CellUtils.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxListCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxTableCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxTreeCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxListCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxTableCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxTreeCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxListCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxTableCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxTreeCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldListCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldTableCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldTreeCell.java Changeset: ac63ba1fca72 Author: jgiles Date: 2012-05-09 09:56 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/ac63ba1fca72 Backed out changeset: e07711c31a88 ! javafx-util-converter/src/javafx/util/converter/CurrencyStringConverter.java - javafx-util-converter/src/javafx/util/converter/FormatStringConverter.java ! javafx-util-converter/src/javafx/util/converter/NumberStringConverter.java ! javafx-util-converter/src/javafx/util/converter/PercentageStringConverter.java Changeset: 670383f61836 Author: jgiles Date: 2012-05-09 10:00 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/670383f61836 Readding FormatStringConverter without any changes to the related Format converter classes. + javafx-util-converter/src/javafx/util/converter/FormatStringConverter.java From jonathan.giles at oracle.com Tue May 8 15:14:34 2012 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Wed, 09 May 2012 10:14:34 +1200 Subject: [Review request] Adding pre-built cells and cell factories to JavaFX Message-ID: <4FA99ACA.4000504@oracle.com> Hi all, http://javafx-jira.kenai.com/browse/RT-19452 This jira feature request asks for JavaFX to include a number of pre-built cell factories for use in ListView, TreeView and TableView. This was always intended functionality, it just took some time to get around to adding it. These cell factories are intended to support functionality such as editing by TextField, ChoiceBox, ComboBox, and CheckBox, easily converting objects into strings, and values into progress bars. I intend to move com.sun.javafx.scene.control.CheckBoxTreeItem into javafx.scene.control. The classes below I intend to move to javafx.scene.control.cell: com.sun.javafx.scene.control.cell.CheckBoxCellFactory com.sun.javafx.scene.control.cell.CheckBoxListCell com.sun.javafx.scene.control.cell.CheckBoxTableCell com.sun.javafx.scene.control.cell.CheckBoxTreeCell com.sun.javafx.scene.control.cell.ChoiceBoxCellFactory com.sun.javafx.scene.control.cell.ChoiceBoxListCell com.sun.javafx.scene.control.cell.ChoiceBoxTableCell com.sun.javafx.scene.control.cell.ChoiceBoxTreeCell com.sun.javafx.scene.control.cell.ComboBoxCellFactory com.sun.javafx.scene.control.cell.ComboBoxListCell com.sun.javafx.scene.control.cell.ComboBoxTableCell com.sun.javafx.scene.control.cell.ComboBoxTreeCell com.sun.javafx.scene.control.cell.ProgressBarCellFactory com.sun.javafx.scene.control.cell.ProgressBarTableCell com.sun.javafx.scene.control.cell.TextFieldCellFactory com.sun.javafx.scene.control.cell.TextFieldListCell com.sun.javafx.scene.control.cell.TextFieldTableCell com.sun.javafx.scene.control.cell.TextFieldTreeCell In addition to these classes, I am also introducing other, related classes, including: javafx.util.converter.FormatStringConverter com.sun.javafx.scene.control.cell.MapValueFactory (which will move to javafx.scene.control.cell to work alongside the PropertyValueFactory) To support the CheckBox inside a TreeView case, I'm including the CheckBoxTreeItem class that can ensure that parent and children tree items are updated when a tree item is selected or deselected. I have included considerable javadoc documentation already, but I intend to add more soon to include a number of worked examples on how to use this new API. I look forward to your feedback. -- Jonathan From richard.bair at oracle.com Tue May 8 15:25:28 2012 From: richard.bair at oracle.com (Richard Bair) Date: Tue, 8 May 2012 15:25:28 -0700 Subject: Custom Border for Callout Popup In-Reply-To: <4FA93AA2.7000908@media-interactive.de> References: <4FA82340.5040005@media-interactive.de> <89DBC40C-1B23-4E56-B75C-25A86B34DEA5@oracle.com> <4FA93AA2.7000908@media-interactive.de> Message-ID: <8EC4B291-4C79-4DCD-8F76-21BC11E6AC73@oracle.com> Hi Werner, Here is an updated Skin which works a bit better. What I added here I found in the TooltipSkin class, which you can peruse as it is open source. It uses the root node of the skin to do the layout of the background shape (which for simplicity I used a Rectangle, you could either use a path with known path elements that you reposition during layout or you can recreate the path elements each time). /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package mint.javafx.stage; import javafx.beans.InvalidationListener; import javafx.beans.Observable; import javafx.geometry.Insets; import javafx.scene.Node; import javafx.scene.control.Skin; import javafx.scene.layout.StackPane; import javafx.scene.shape.PathBuilder; import javafx.scene.shape.Rectangle; import javafx.scene.shape.Shape; import javafx.scene.shape.StrokeType; /** * * @author richardbair */ public class MintCalloutPopup2Skin implements Skin { private MintCalloutPopup2 callout; private Rectangle backgroundShape; private StackPane root; public MintCalloutPopup2Skin(final MintCalloutPopup2 callout) { this.callout = callout; backgroundShape = (Rectangle) createCalloutShape(); root = new StackPane() { @Override protected void layoutChildren() { final Insets insets = getInsets(); final double x = insets.getLeft(); final double y = insets.getTop(); final double width = getWidth() - insets.getLeft() - insets.getRight(); final double height = getHeight() - insets.getTop() - insets.getBottom(); backgroundShape.setX(0); backgroundShape.setY(0); backgroundShape.setWidth(getWidth()); backgroundShape.setHeight(getHeight()); Node content = callout.getContentNode(); if (content != null) { content.resizeRelocate(x, y, width, height); } } @Override protected double computeMinWidth(double width) { return (callout.getMinWidth() != -1) ? callout.getMinWidth() : computePrefWidth(width); } @Override protected double computeMinHeight(double height) { return (callout.getMinHeight() != -1) ? callout.getMinHeight() : computePrefHeight(height); } @Override protected double computePrefWidth(double width) { if(callout.getPrefWidth() != -1 ) { return callout.getPrefWidth(); } final Node content = callout.getContentNode(); final double contentWidth = content == null ? 0 : content.prefWidth(-1); return getInsets().getLeft() + contentWidth + getInsets().getRight(); } @Override protected double computePrefHeight(double height) { final Insets insets = getInsets(); final Node content = callout.getContentNode(); if (content == null) { return insets.getTop() + insets.getBottom(); } else if (callout.getPrefWidth() != -1) { return insets.getTop() + content.prefHeight(callout.getPrefWidth() - insets.getLeft() - insets.getRight()) + insets.getBottom(); } else { return insets.getTop() + content.prefHeight(-1) + insets.getBottom(); } } @Override protected double computeMaxWidth(double width) { return (callout.getMaxWidth() != -1) ? callout.getMaxWidth() : computePrefWidth(width); } @Override protected double computeMaxHeight(double height) { return (callout.getMaxHeight() != -1) ? callout.getMaxHeight() : computePrefHeight(height); } }; root.getChildren().add(backgroundShape); root.getStyleClass().setAll(callout.getStyleClass()); root.setStyle(callout.getStyle()); root.setId(callout.getId()); if (callout.getContentNode() != null) { root.getChildren().add(callout.getContentNode()); } callout.contentNodeProperty().addListener(new InvalidationListener() { @Override public void invalidated(Observable c) { final Node content = callout.getContentNode(); if (content == null) { root.getChildren().setAll(backgroundShape); } else { root.getChildren().setAll(backgroundShape, content); } } }); } @Override public MintCalloutPopup2 getSkinnable() { return callout; } @Override public Node getNode() { return root; } @Override public void dispose() { callout = null; } private Shape createCalloutShape() { //MoveTo e0 ... // bound to widthProperty/heightProperty // ... //ClosePath e7 = new ClosePath(); return new Rectangle(0, 0, 100, 100); // return PathBuilder.create() // .managed(false) // .strokeWidth(1) // .smooth(false) // .strokeType(StrokeType.OUTSIDE) // .fill(javafx.scene.paint.Color.WHITE) // .elements(e0, e1, e2, e3, e4, e5, e6, e7) // .build(); } } On May 8, 2012, at 8:24 AM, Werner Lehmann wrote: > Hi Richard, > > I tried to do what you suggested. It works... sort of. After quite some code reading I ended up with the code below. The remaining main problem is that I have to use the tip of the arrow/tail as hotspot to position the callout popup. > > In my original attempt I showed it offscreen to get the actual size, then moved it to the right spot. With separate control/skin classes this has become more difficult because only the skin knows how to compute that hotspot but the control does not know the skin (intentionally, I assume). Furthermore, the skin instance does not even exist before the control shows. > > So, how can I measure the width before it is even visible on screen? In the skin constructor the popup width is still zero. I need the width to move the popup origin to the left because the arrow/tail hotspot is on the right side. > > I have been moving code back and forth and back but could not figure this out. > > Thanks... > Werner > > ------- > > .mint-callout-popup { > -fx-skin: "mint.javafx.stage.MintCalloutPopup2Skin"; > -fx-padding: 15 5 0 5; > } > > ------- > > public class MintCalloutPopup2 extends PopupControl > { > private static final String DEFAULT_STYLE_CLASS = > "mint-callout-popup"; > > static { > StyleManager.getInstance().addUserAgentStylesheet( > MintCalloutPopup2.class.getResource( > "MintCalloutPopup2.css").toExternalForm()); > } > > private final ObjectProperty contentNode = > new SimpleObjectProperty(this, "contentNode"); > private final ObjectProperty target = > new SimpleObjectProperty(this, "target"); > > public MintCalloutPopup2() > { > getStyleClass().setAll(DEFAULT_STYLE_CLASS); > setAutoHide(true); > setHideOnEscape(true); > } > > public ObjectProperty contentNodeProperty() { return contentNode; } > public Node getContentNode() { return contentNode.get(); } > public void setContentNode(Node value) { contentNode.set(value); } > > public ObjectProperty targetProperty() { return target; } > public Node getTarget() { return target.get(); } > public void setTarget(Node value) { target.set(value); } > > public void showAtTarget() > { > show(getTarget().getScene().getWindow()); > } > } > > ------- > > public class MintCalloutPopup2Skin implements Skin > { > private MintCalloutPopup2 callout; > private StackPane root; > private StackPane content; > > public MintCalloutPopup2Skin(MintCalloutPopup2 callout) > { > this.callout = callout; > content = new StackPane(); > replaceContent(); > callout.contentNodeProperty().addListener( > new InvalidationListener() { > @Override public void invalidated(Observable observable) > { replaceContent(); } > }); > > root = new StackPane(); > root.getChildren().addAll(createCalloutShape(), content); > root.getStyleClass().setAll(callout.getStyleClass()); > root.setStyle(callout.getStyle()); > root.setId(callout.getId()); > > // <------------- the popup bounds are unknown here, how > // can I relocate it "right/top aligned"? > } > > private void replaceContent() > { > if (callout.getContentNode() == null) > content.getChildren().clear(); > else > content.getChildren().setAll(callout.getContentNode()); > } > > @Override public MintCalloutPopup2 getSkinnable() { return callout; } > @Override public Node getNode() { return root; } > @Override public void dispose() { callout = null; } > > private Shape createCalloutShape() > { > MoveTo e0 ... // bound to widthProperty/heightProperty > // ... > ClosePath e7 = new ClosePath(); > > return PathBuilder.create() > .managed(false) > .strokeWidth(1) > .smooth(false) > .strokeType(StrokeType.OUTSIDE) > .fill(javafx.scene.paint.Color.WHITE) > .elements(e0, e1, e2, e3, e4, e5, e6, e7) > .build(); > } > } > > > On 07.05.2012 23:54, Richard Bair wrote: >> I think what I would have done would be to extend from PopupControl. >> Then write a new Skin for your Callout. The skin would add the path >> as one of its children, and whatever content is added to the content >> would then be added after the path. The path would have "managed" set >> to false. Then, in the layoutChildren() method of your Callout, you >> would reposition the path based on the current bounds and then call >> super.layoutChildren() which would position and layout the content. >> >> So something like: >> >> public class Callout extends PopupControl { ... } >> >> // Doh! SkinBase is a private class, but you can copy/paste it into >> your code if it is GPL+classpath..., otherwise just see what it does >> and write a fresh Skin that does the same public class CalloutSkin >> extends SkinBase { private Path path; ... } >> >> Richard >> >> >> >> On May 7, 2012, at 12:32 PM, Werner Lehmann wrote: >> >>> Hi, >>> >>> I am creating a popup for a callout. The callout is basically a >>> rectangle with a small arrow/tail on the top right corner and a >>> single node for its content. That node may resize later and the >>> callout has to adjust. http://i49.tinypic.com/21crux3.jpg >>> >>> First I tried to do this with -fx-shape and an svg path but without >>> luck: could not make this work, never saw that shape. Unfortunately >>> I also did not find any example... I suppose even an SVG path >>> border would not resize automatically when the content changes - >>> otherwise this would be exactly what I need ;-) >>> >>> Plan B is to use a Popup with a Path in the appropriate shape. This >>> works but I am battling two things: >>> >>> 1. I have to know the popup content layout bounds before I can >>> position the popup "right aligned". Currently solved by showing the >>> popup offscreen (at -10000, 0) to get valid layoutBounds. Then I >>> move it to the correct position. Is there a better way to get >>> layoutBounds before showing a window? >>> >>> 2. When the content size changes, a similar problem arises: now I >>> have to determine the new popup size, change the border Path to >>> match the new size (PathElement binding might work here) and >>> reposition the window. A resize animation would be nice, and some >>> clipping will be needed also... >>> >>> This is when I got an idea: is it possible to create and use a >>> custom border class? Looks as if I could extend >>> com.sun.javafx.scene.layout.region.Border... In this way I would >>> get content clipping and resizing (position of arrow/tail must be >>> adjusted) for free. >>> >>> Any thoughts? >>> >>> Thanks. Werner >>> >> > > -- > -------------------------------------------------------- > MINT MEDIA INTERACTIVE Software Systems GmbH > Kiel Science Centre / Wissenschaftszentrum > Fraunhoferstr. 13 > D-24118 Kiel, Germany > Phone: +49 (0)431 530215-0 > Fax: +49 (0)431 5302090 > Mail: lehmann at media-interactive.de > Web: www.media-interactive.de > -------------------------------------------------------- > -------------------------------------------------------- > Sitz der Gesellschaft / Corporate HQ: Kiel > Reg.-eintragung / Registration: > Amtsgericht Kiel HRB 4860 > Ust-ID Nr. DE 197455787 > Gesch?ftsf?hrer / Managing Director: J?rg Latteier > -------------------------------------------------------- > > From richard.bair at oracle.com Tue May 8 15:29:19 2012 From: richard.bair at oracle.com (Richard Bair) Date: Tue, 8 May 2012 15:29:19 -0700 Subject: [Review request] Adding pre-built cells and cell factories to JavaFX In-Reply-To: <4FA99ACA.4000504@oracle.com> References: <4FA99ACA.4000504@oracle.com> Message-ID: <5F839606-5C9F-4695-B3C0-8E454BC06165@oracle.com> I've been over this a few times with Jonathan and I think the API is really quite nice. I would especially like to hear any feedback from folks using FXML, from SceneBuilder, and from anybody who gives it a try. The API is essentially what Jonathan had done in DataFX and has had a significant amount of usage already so we're pretty confident that it is friendly to use :-). Thanks Richard On May 8, 2012, at 3:14 PM, Jonathan Giles wrote: > Hi all, > > http://javafx-jira.kenai.com/browse/RT-19452 > > This jira feature request asks for JavaFX to include a number of pre-built cell factories for use in ListView, TreeView and TableView. This was always intended functionality, it just took some time to get around to adding it. These cell factories are intended to support functionality such as editing by TextField, ChoiceBox, ComboBox, and CheckBox, easily converting objects into strings, and values into progress bars. > > I intend to move com.sun.javafx.scene.control.CheckBoxTreeItem into javafx.scene.control. > > The classes below I intend to move to javafx.scene.control.cell: > com.sun.javafx.scene.control.cell.CheckBoxCellFactory > com.sun.javafx.scene.control.cell.CheckBoxListCell > com.sun.javafx.scene.control.cell.CheckBoxTableCell > com.sun.javafx.scene.control.cell.CheckBoxTreeCell > com.sun.javafx.scene.control.cell.ChoiceBoxCellFactory > com.sun.javafx.scene.control.cell.ChoiceBoxListCell > com.sun.javafx.scene.control.cell.ChoiceBoxTableCell > com.sun.javafx.scene.control.cell.ChoiceBoxTreeCell > com.sun.javafx.scene.control.cell.ComboBoxCellFactory > com.sun.javafx.scene.control.cell.ComboBoxListCell > com.sun.javafx.scene.control.cell.ComboBoxTableCell > com.sun.javafx.scene.control.cell.ComboBoxTreeCell > com.sun.javafx.scene.control.cell.ProgressBarCellFactory > com.sun.javafx.scene.control.cell.ProgressBarTableCell > com.sun.javafx.scene.control.cell.TextFieldCellFactory > com.sun.javafx.scene.control.cell.TextFieldListCell > com.sun.javafx.scene.control.cell.TextFieldTableCell > com.sun.javafx.scene.control.cell.TextFieldTreeCell > > In addition to these classes, I am also introducing other, related classes, including: > javafx.util.converter.FormatStringConverter > com.sun.javafx.scene.control.cell.MapValueFactory (which will move to javafx.scene.control.cell to work alongside the PropertyValueFactory) > > To support the CheckBox inside a TreeView case, I'm including the CheckBoxTreeItem class that can ensure that parent and children tree items are updated when a tree item is selected or deselected. > > I have included considerable javadoc documentation already, but I intend to add more soon to include a number of worked examples on how to use this new API. > > I look forward to your feedback. > > -- Jonathan From hang.vo at oracle.com Tue May 8 15:48:45 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 08 May 2012 22:48:45 +0000 Subject: hg: openjfx/2.2/controls/rt: RT-19548: Issues with tabs on Right, Bottom or Left of TabPane Message-ID: <20120508224846.A5859471D2@hg.openjdk.java.net> Changeset: 26c6c56d8dfe Author: Kinsley Wong Date: 2012-05-08 15:34 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/26c6c56d8dfe RT-19548: Issues with tabs on Right, Bottom or Left of TabPane ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/TabPaneSkin.java From richard.bair at oracle.com Tue May 8 16:01:02 2012 From: richard.bair at oracle.com (Richard Bair) Date: Tue, 8 May 2012 16:01:02 -0700 Subject: [Review request] Adding pre-built cells and cell factories to JavaFX In-Reply-To: <5F839606-5C9F-4695-B3C0-8E454BC06165@oracle.com> References: <4FA99ACA.4000504@oracle.com> <5F839606-5C9F-4695-B3C0-8E454BC06165@oracle.com> Message-ID: Jonathan, I was just thinking (I know we talked about this before some time back but I don't remember the reasoning), why do we have the ***Factory classes? Why not just move those factory methods onto the appropriate Cells? So it would be: listView.setCellFactory(TextFieldCell.cellFactory(...)); Just thinking four fewer classes, and associating the factory methods with the class itself. What do you think? Richard On May 8, 2012, at 3:29 PM, Richard Bair wrote: > I've been over this a few times with Jonathan and I think the API is really quite nice. I would especially like to hear any feedback from folks using FXML, from SceneBuilder, and from anybody who gives it a try. The API is essentially what Jonathan had done in DataFX and has had a significant amount of usage already so we're pretty confident that it is friendly to use :-). > > Thanks > Richard > > On May 8, 2012, at 3:14 PM, Jonathan Giles wrote: > >> Hi all, >> >> http://javafx-jira.kenai.com/browse/RT-19452 >> >> This jira feature request asks for JavaFX to include a number of pre-built cell factories for use in ListView, TreeView and TableView. This was always intended functionality, it just took some time to get around to adding it. These cell factories are intended to support functionality such as editing by TextField, ChoiceBox, ComboBox, and CheckBox, easily converting objects into strings, and values into progress bars. >> >> I intend to move com.sun.javafx.scene.control.CheckBoxTreeItem into javafx.scene.control. >> >> The classes below I intend to move to javafx.scene.control.cell: >> com.sun.javafx.scene.control.cell.CheckBoxCellFactory >> com.sun.javafx.scene.control.cell.CheckBoxListCell >> com.sun.javafx.scene.control.cell.CheckBoxTableCell >> com.sun.javafx.scene.control.cell.CheckBoxTreeCell >> com.sun.javafx.scene.control.cell.ChoiceBoxCellFactory >> com.sun.javafx.scene.control.cell.ChoiceBoxListCell >> com.sun.javafx.scene.control.cell.ChoiceBoxTableCell >> com.sun.javafx.scene.control.cell.ChoiceBoxTreeCell >> com.sun.javafx.scene.control.cell.ComboBoxCellFactory >> com.sun.javafx.scene.control.cell.ComboBoxListCell >> com.sun.javafx.scene.control.cell.ComboBoxTableCell >> com.sun.javafx.scene.control.cell.ComboBoxTreeCell >> com.sun.javafx.scene.control.cell.ProgressBarCellFactory >> com.sun.javafx.scene.control.cell.ProgressBarTableCell >> com.sun.javafx.scene.control.cell.TextFieldCellFactory >> com.sun.javafx.scene.control.cell.TextFieldListCell >> com.sun.javafx.scene.control.cell.TextFieldTableCell >> com.sun.javafx.scene.control.cell.TextFieldTreeCell >> >> In addition to these classes, I am also introducing other, related classes, including: >> javafx.util.converter.FormatStringConverter >> com.sun.javafx.scene.control.cell.MapValueFactory (which will move to javafx.scene.control.cell to work alongside the PropertyValueFactory) >> >> To support the CheckBox inside a TreeView case, I'm including the CheckBoxTreeItem class that can ensure that parent and children tree items are updated when a tree item is selected or deselected. >> >> I have included considerable javadoc documentation already, but I intend to add more soon to include a number of worked examples on how to use this new API. >> >> I look forward to your feedback. >> >> -- Jonathan > From hang.vo at oracle.com Tue May 8 16:03:40 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 08 May 2012 23:03:40 +0000 Subject: hg: openjfx/2.2/controls/rt: 2 new changesets Message-ID: <20120508230342.6F4BD471D4@hg.openjdk.java.net> Changeset: e8b01c712677 Author: jgiles Date: 2012-05-09 10:56 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/e8b01c712677 Fixing build failure due to reference to deleted class in new cell factories code. ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxListCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxTableCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxTreeCell.java Changeset: 2446e3d7580f Author: jgiles Date: 2012-05-09 10:57 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/2446e3d7580f Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/controls/jfx/rt From joseph.andresen at oracle.com Tue May 8 16:16:45 2012 From: joseph.andresen at oracle.com (joe andresen) Date: Tue, 08 May 2012 16:16:45 -0700 Subject: API Review: ImagePattern In-Reply-To: <4FA9A5A1.1080906@oracle.com> References: <4FA9A5A1.1080906@oracle.com> Message-ID: <4FA9A95D.5080301@oracle.com> Hello All, I propose to add a new paint class in the javafx.scene.paint package called ImagePattern. Many of you familiar with Java2D TexturePaint will be familiar with this class. ImagePattern allows developers to add an image as a paint to primitives in JavaFX. The developer may specify the anchor rectangle, which defines the position, width, and height of the image relative to the upper left corner of the shape. If the shape is larger than the anchor rectangle, the image is tiled. -Joe Jira: http://javafx-jira.kenai.com/browse/RT-6917 A list of the methods can be found below. public class ImagePattern extends Paint public ImagePattern(Image image); public ImagePattern(Image image, double x, double y, double width, double height, boolean proportional); /** * The image to be used as a pattern. */ public final Image getImage(); /** * The x origin of the anchor rectangle. * * @default 0.0 */ public final double getX(); /** * The y origin of the anchor rectangle. * * @default 0.0 */ public final double getY() ; /** * The width of the anchor rectangle. * * @default 1.0 */ public final double getWidth() { return width; } ** * The height of the anchor rectangle. * * @default 1.0 */ public final double getHeight(); /** * Indicates whether start and end locations are proportional or absolute. * If this flag is true, the two end points are defined in a coordinate * space where coordinates in the range {@code [0..1]} are scaled to map * onto the bounds of the shape that the pattern fills. * If this flag is false, then the coordinates are specified in the local * coordinate system of the node. * * @defaultValue true */ public final boolean isProportional(); From Richard.Bair at oracle.com Tue May 8 16:27:24 2012 From: Richard.Bair at oracle.com (Richard Bair) Date: Tue, 8 May 2012 16:27:24 -0700 Subject: API Review: ImagePattern In-Reply-To: <4FA9A95D.5080301@oracle.com> References: <4FA9A5A1.1080906@oracle.com> <4FA9A95D.5080301@oracle.com> Message-ID: Looks good. I hope there are javadocs for the class & constructors as well :-). The class should probably be final, like RadialGradient, LinearGradient, and Color. Cheers Richard On May 8, 2012, at 4:16 PM, joe andresen wrote: > Hello All, > > I propose to add a new paint class in the javafx.scene.paint package called ImagePattern. Many of you familiar with Java2D TexturePaint will be familiar with this class. ImagePattern allows developers to add an image as a paint to primitives in JavaFX. The developer may specify the anchor rectangle, which defines the position, width, and height of the image relative to the upper left corner of the shape. If the shape is larger than the anchor rectangle, the image is tiled. > > -Joe > > Jira: http://javafx-jira.kenai.com/browse/RT-6917 > > A list of the methods can be found below. > > public class ImagePattern extends Paint > > public ImagePattern(Image image); > public ImagePattern(Image image, double x, double y, double width, double height, boolean proportional); > > /** > * The image to be used as a pattern. > */ > public final Image getImage(); > > /** > * The x origin of the anchor rectangle. > * > * @default 0.0 > */ > public final double getX(); > > /** > * The y origin of the anchor rectangle. > * > * @default 0.0 > */ > public final double getY() ; > > /** > * The width of the anchor rectangle. > * > * @default 1.0 > */ > public final double getWidth() { > return width; > } > > ** > * The height of the anchor rectangle. > * > * @default 1.0 > */ > public final double getHeight(); > > /** > * Indicates whether start and end locations are proportional or absolute. > * If this flag is true, the two end points are defined in a coordinate > * space where coordinates in the range {@code [0..1]} are scaled to map > * onto the bounds of the shape that the pattern fills. > * If this flag is false, then the coordinates are specified in the local > * coordinate system of the node. > * > * @defaultValue true > */ > public final boolean isProportional(); > From jonathan.giles at oracle.com Tue May 8 17:11:17 2012 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Wed, 09 May 2012 12:11:17 +1200 Subject: [Review request] Adding pre-built cells and cell factories to JavaFX In-Reply-To: References: <4FA99ACA.4000504@oracle.com> <5F839606-5C9F-4695-B3C0-8E454BC06165@oracle.com> Message-ID: <4FA9B625.1050700@oracle.com> The reason for the current approach is, as always, discoverability of API. But I never seem to win with that argument either :-) I am totally happy with having the API on the specific cell classes themselves, or in their current location. I don't have a strong gut feeling either way, so hopefully others may chime in with their preference. If not, I'll make the switch tomorrow. -- Jonathan On Wednesday, 9 May 2012 11:01:02 a.m., Richard Bair wrote: > Jonathan, I was just thinking (I know we talked about this before some time back but I don't remember the reasoning), why do we have the ***Factory classes? Why not just move those factory methods onto the appropriate Cells? So it would be: > > listView.setCellFactory(TextFieldCell.cellFactory(...)); > > Just thinking four fewer classes, and associating the factory methods with the class itself. What do you think? > > Richard > > On May 8, 2012, at 3:29 PM, Richard Bair wrote: > >> I've been over this a few times with Jonathan and I think the API is really quite nice. I would especially like to hear any feedback from folks using FXML, from SceneBuilder, and from anybody who gives it a try. The API is essentially what Jonathan had done in DataFX and has had a significant amount of usage already so we're pretty confident that it is friendly to use :-). >> >> Thanks >> Richard >> >> On May 8, 2012, at 3:14 PM, Jonathan Giles wrote: >> >>> Hi all, >>> >>> http://javafx-jira.kenai.com/browse/RT-19452 >>> >>> This jira feature request asks for JavaFX to include a number of pre-built cell factories for use in ListView, TreeView and TableView. This was always intended functionality, it just took some time to get around to adding it. These cell factories are intended to support functionality such as editing by TextField, ChoiceBox, ComboBox, and CheckBox, easily converting objects into strings, and values into progress bars. >>> >>> I intend to move com.sun.javafx.scene.control.CheckBoxTreeItem into javafx.scene.control. >>> >>> The classes below I intend to move to javafx.scene.control.cell: >>> com.sun.javafx.scene.control.cell.CheckBoxCellFactory >>> com.sun.javafx.scene.control.cell.CheckBoxListCell >>> com.sun.javafx.scene.control.cell.CheckBoxTableCell >>> com.sun.javafx.scene.control.cell.CheckBoxTreeCell >>> com.sun.javafx.scene.control.cell.ChoiceBoxCellFactory >>> com.sun.javafx.scene.control.cell.ChoiceBoxListCell >>> com.sun.javafx.scene.control.cell.ChoiceBoxTableCell >>> com.sun.javafx.scene.control.cell.ChoiceBoxTreeCell >>> com.sun.javafx.scene.control.cell.ComboBoxCellFactory >>> com.sun.javafx.scene.control.cell.ComboBoxListCell >>> com.sun.javafx.scene.control.cell.ComboBoxTableCell >>> com.sun.javafx.scene.control.cell.ComboBoxTreeCell >>> com.sun.javafx.scene.control.cell.ProgressBarCellFactory >>> com.sun.javafx.scene.control.cell.ProgressBarTableCell >>> com.sun.javafx.scene.control.cell.TextFieldCellFactory >>> com.sun.javafx.scene.control.cell.TextFieldListCell >>> com.sun.javafx.scene.control.cell.TextFieldTableCell >>> com.sun.javafx.scene.control.cell.TextFieldTreeCell >>> >>> In addition to these classes, I am also introducing other, related classes, including: >>> javafx.util.converter.FormatStringConverter >>> com.sun.javafx.scene.control.cell.MapValueFactory (which will move to javafx.scene.control.cell to work alongside the PropertyValueFactory) >>> >>> To support the CheckBox inside a TreeView case, I'm including the CheckBoxTreeItem class that can ensure that parent and children tree items are updated when a tree item is selected or deselected. >>> >>> I have included considerable javadoc documentation already, but I intend to add more soon to include a number of worked examples on how to use this new API. >>> >>> I look forward to your feedback. >>> >>> -- Jonathan >> > From kinsley.wong at oracle.com Tue May 8 18:28:00 2012 From: kinsley.wong at oracle.com (Kinsley Wong) Date: Tue, 08 May 2012 18:28:00 -0700 Subject: API Review request for RT-19375 Pagination UI Control In-Reply-To: References: <4F95DB6C.2070608@oracle.com> <4F95DC12.7060106@bestsolution.at> <4F95DC94.7080007@oracle.com> Message-ID: <4FA9C820.4050008@oracle.com> After talking to Jasper. We would like to add these two method to show or hide the arrow indicators. boolean isArrowsVisible() setArrowsVisible(boolean) Also we would like to rename the PageIndicatorCount property to MaxPageIndicatorCount. This is a better description the property. /** * The maximum number of page indicators to use for this pagination control. This * value must be greater than or equal to 1. The number of page indicators will be * reduced if MaxPageIndicatorCount cannot fit within this control. * * The default is 10 page indicators. */ public final IntegerProperty MaxPageIndicatorCountProperty() Kinsley On 4/25/2012 1:54 PM, Richard Bair wrote: > First off, although this API design is quite different than what I was initially expecting I think it is quite a bit better and more useful than what I had in mind. The API looks good to me. > >> I'd be keen to see the design docs too. > I've emailed Jindra to see if he can get the text& images uploaded and public (can't attach things to email or I'd just send it.) > >> One thought: is the use of an integer index the best way to reference >> pages? Creates some possible complexities when pages are added and removed. >> e.g. I want to jump to the 'details' tab, is this page 2 or 3? Perhaps a >> generic 'ID value' would be useful, then the developer can use integers, >> enums, strings or custom objects? I'm not sure either is best, just >> thinking out loud. > Personally I like the simplicity of the int. I think one of the differences between this and a TabPane is that it doesn't have names on pages. I'm thinking about, for example, search results with pages of data. Each page isn't closable. Pages are conceptually a serially stream that you pass through, rather than random access. > >> Interested why were animations assumed to be not included? Just for effort >> saving, or some other reason? > I think just for the effort -- we want animations to be specified via CSS and it isn't all there yet. That said, I would fully expect the swipe based navigation to stay with your finger, so it animates. Just upping Kinsley's complexity factor a bit :-) > >> I'm very interested in the page virtualisation stuff. What are the thoughts >> around this? The API uses a factory to create pages, but TabPane does not. >> What's the rationale behind this difference (not complaining, just >> wondering)? How/when will this be called (e.g. each time a page is shown, >> or the first time and then it is cached, etc)? If the tab changes does the >> page get notified that it is active/inactive? > Ya, I found this interesting as well because originally I was thinking Pagination was just a simple TabPane subclass with a different skin. But I really like what they did, because it really is a different beast (see above). So it isn't meant to be such a thing that the user directly interacts with to "close" a page, for example. They re-run their query or something in order to change the content (assuming it isn't static content). > >> What happens if the factory returns the same instance of a 'page' for two >> different tabs (is this allowed or an error)? > I'm not sure, good question. It seems like if you're going to get animated swipe like behavior then you will want to have two different nodes and then can just reuse them. But in any case I think it should be allowed to reuse node content between pages. Seems like for performance this would be a requirement on mobile / embedded devices. > >> Just thought of one thing with both TabPane and this - I'd like the ability >> to prevent the user from leaving the current tab. In the case of form >> entering if the user has entered some dodgy data I'd like to prevent them >> from changing tabs (e.g. intercept and consume the change tab event) until >> they fix the data up. Is this possible, should I file a separate JIRA? > That's a great requirement. Is there a JIRA already for the tab requirement? We should definitely have that. It would be great to have some events when the user leaves a page too. > > Thanks! > Richard From jonathan.giles at oracle.com Tue May 8 18:46:09 2012 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Wed, 09 May 2012 13:46:09 +1200 Subject: API Review request for RT-19375 Pagination UI Control In-Reply-To: <4FA9C820.4050008@oracle.com> References: <4F95DB6C.2070608@oracle.com> <4F95DC12.7060106@bestsolution.at> <4F95DC94.7080007@oracle.com> <4FA9C820.4050008@oracle.com> Message-ID: <4FA9CC61.7010506@oracle.com> Hey Kinsley, I presume there would also be a arrowVisibleProperty() as well? Also, I'm guessing the upper-case M was used mistakenly for the MaxPageIndicatorCountProperty() method (and javadoc)? -- Jonathan On 9/05/2012 1:28 p.m., Kinsley Wong wrote: > After talking to Jasper. We would like to add these two method to > show or hide the arrow indicators. > > boolean isArrowsVisible() > setArrowsVisible(boolean) > > Also we would like to rename the PageIndicatorCount property to > MaxPageIndicatorCount. This is a better description the property. > > /** > * The maximum number of page indicators to use for this > pagination control. This > * value must be greater than or equal to 1. The number of page > indicators will be > * reduced if MaxPageIndicatorCount cannot fit within this control. > * > * The default is 10 page indicators. > */ > public final IntegerProperty MaxPageIndicatorCountProperty() > > > Kinsley > > On 4/25/2012 1:54 PM, Richard Bair wrote: >> First off, although this API design is quite different than what I >> was initially expecting I think it is quite a bit better and more >> useful than what I had in mind. The API looks good to me. >> >>> I'd be keen to see the design docs too. >> I've emailed Jindra to see if he can get the text& images uploaded >> and public (can't attach things to email or I'd just send it.) >> >>> One thought: is the use of an integer index the best way to reference >>> pages? Creates some possible complexities when pages are added and >>> removed. >>> e.g. I want to jump to the 'details' tab, is this page 2 or 3? >>> Perhaps a >>> generic 'ID value' would be useful, then the developer can use >>> integers, >>> enums, strings or custom objects? I'm not sure either is best, just >>> thinking out loud. >> Personally I like the simplicity of the int. I think one of the >> differences between this and a TabPane is that it doesn't have names >> on pages. I'm thinking about, for example, search results with pages >> of data. Each page isn't closable. Pages are conceptually a serially >> stream that you pass through, rather than random access. >> >>> Interested why were animations assumed to be not included? Just for >>> effort >>> saving, or some other reason? >> I think just for the effort -- we want animations to be specified via >> CSS and it isn't all there yet. That said, I would fully expect the >> swipe based navigation to stay with your finger, so it animates. Just >> upping Kinsley's complexity factor a bit :-) >> >>> I'm very interested in the page virtualisation stuff. What are the >>> thoughts >>> around this? The API uses a factory to create pages, but TabPane >>> does not. >>> What's the rationale behind this difference (not complaining, just >>> wondering)? How/when will this be called (e.g. each time a page is >>> shown, >>> or the first time and then it is cached, etc)? If the tab changes >>> does the >>> page get notified that it is active/inactive? >> Ya, I found this interesting as well because originally I was >> thinking Pagination was just a simple TabPane subclass with a >> different skin. But I really like what they did, because it really is >> a different beast (see above). So it isn't meant to be such a thing >> that the user directly interacts with to "close" a page, for example. >> They re-run their query or something in order to change the content >> (assuming it isn't static content). >> >>> What happens if the factory returns the same instance of a 'page' >>> for two >>> different tabs (is this allowed or an error)? >> I'm not sure, good question. It seems like if you're going to get >> animated swipe like behavior then you will want to have two different >> nodes and then can just reuse them. But in any case I think it should >> be allowed to reuse node content between pages. Seems like for >> performance this would be a requirement on mobile / embedded devices. >> >>> Just thought of one thing with both TabPane and this - I'd like the >>> ability >>> to prevent the user from leaving the current tab. In the case of form >>> entering if the user has entered some dodgy data I'd like to prevent >>> them >>> from changing tabs (e.g. intercept and consume the change tab event) >>> until >>> they fix the data up. Is this possible, should I file a separate JIRA? >> That's a great requirement. Is there a JIRA already for the tab >> requirement? We should definitely have that. It would be great to >> have some events when the user leaves a page too. >> >> Thanks! >> Richard From joshua at marinacci.org Tue May 8 19:45:58 2012 From: joshua at marinacci.org (Josh Marinacci) Date: Tue, 8 May 2012 19:45:58 -0700 Subject: API Review: ImagePattern In-Reply-To: <4FA9A95D.5080301@oracle.com> References: <4FA9A5A1.1080906@oracle.com> <4FA9A95D.5080301@oracle.com> Message-ID: Incidentally, this is a far superior solution to drawing a grid than trying to do it with tons of line objects. -- Josh Marinacci joshondesign.com On Tuesday, May 8, 2012 at 4:16 PM, joe andresen wrote: > Hello All, > > I propose to add a new paint class in the javafx.scene.paint package > called ImagePattern. Many of you familiar with Java2D TexturePaint will > be familiar with this class. ImagePattern allows developers to add an > image as a paint to primitives in JavaFX. The developer may specify the > anchor rectangle, which defines the position, width, and height of the > image relative to the upper left corner of the shape. If the shape is > larger than the anchor rectangle, the image is tiled. > > -Joe > > Jira: http://javafx-jira.kenai.com/browse/RT-6917 > > A list of the methods can be found below. > > public class ImagePattern extends Paint > > public ImagePattern(Image image); > public ImagePattern(Image image, double x, double y, double width, > double height, boolean proportional); > > /** > * The image to be used as a pattern. > */ > public final Image getImage(); > > /** > * The x origin of the anchor rectangle. > * > * @default 0.0 > */ > public final double getX(); > > /** > * The y origin of the anchor rectangle. > * > * @default 0.0 > */ > public final double getY() ; > > /** > * The width of the anchor rectangle. > * > * @default 1.0 > */ > public final double getWidth() { > return width; > } > > ** > * The height of the anchor rectangle. > * > * @default 1.0 > */ > public final double getHeight(); > > /** > * Indicates whether start and end locations are proportional or > absolute. > * If this flag is true, the two end points are defined in a > coordinate > * space where coordinates in the range {@code [0..1]} are scaled > to map > * onto the bounds of the shape that the pattern fills. > * If this flag is false, then the coordinates are specified in the > local > * coordinate system of the node. > * > * @defaultValue true > */ > public final boolean isProportional(); > > From hang.vo at oracle.com Tue May 8 21:33:32 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 09 May 2012 04:33:32 +0000 Subject: hg: openjfx/2.2/controls/rt: 3 new changesets Message-ID: <20120509043336.1A961471E4@hg.openjdk.java.net> Changeset: 2880c42fddab Author: jgiles Date: 2012-05-09 14:26 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/2880c42fddab Further refactoring of cell factory code to remove separate cell factory classes, instead moving the public static methods into the class that they belong to. - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxCellFactory.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxListCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxTableCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxTreeCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxCellFactory.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxListCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxTableCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxTreeCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxCellFactory.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxListCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxTableCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxTreeCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ProgressBarCellFactory.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ProgressBarTableCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldCellFactory.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldListCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldTableCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldTreeCell.java Changeset: e739e6766777 Author: jgiles Date: 2012-05-09 16:12 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/e739e6766777 RT-19452: TableView: Item renderers and item editors - javafx-ui-controls/src/com/sun/javafx/scene/control/CheckBoxTreeItem.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CellUtils.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/MapValueFactory.java + javafx-ui-controls/src/javafx/scene/control/CheckBoxTreeItem.java + javafx-ui-controls/src/javafx/scene/control/cell/CellUtils.java ! javafx-ui-controls/src/javafx/scene/control/cell/CheckBoxListCell.java < javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxListCell.java ! javafx-ui-controls/src/javafx/scene/control/cell/CheckBoxTableCell.java < javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxTableCell.java ! javafx-ui-controls/src/javafx/scene/control/cell/CheckBoxTreeCell.java < javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxTreeCell.java ! javafx-ui-controls/src/javafx/scene/control/cell/ChoiceBoxListCell.java < javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxListCell.java ! javafx-ui-controls/src/javafx/scene/control/cell/ChoiceBoxTableCell.java < javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxTableCell.java ! javafx-ui-controls/src/javafx/scene/control/cell/ChoiceBoxTreeCell.java < javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxTreeCell.java ! javafx-ui-controls/src/javafx/scene/control/cell/ComboBoxListCell.java < javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxListCell.java ! javafx-ui-controls/src/javafx/scene/control/cell/ComboBoxTableCell.java < javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxTableCell.java ! javafx-ui-controls/src/javafx/scene/control/cell/ComboBoxTreeCell.java < javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxTreeCell.java + javafx-ui-controls/src/javafx/scene/control/cell/MapValueFactory.java ! javafx-ui-controls/src/javafx/scene/control/cell/ProgressBarTableCell.java < javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ProgressBarTableCell.java ! javafx-ui-controls/src/javafx/scene/control/cell/PropertyValueFactory.java ! javafx-ui-controls/src/javafx/scene/control/cell/TextFieldListCell.java < javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldListCell.java ! javafx-ui-controls/src/javafx/scene/control/cell/TextFieldTableCell.java < javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldTableCell.java ! javafx-ui-controls/src/javafx/scene/control/cell/TextFieldTreeCell.java < javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldTreeCell.java Changeset: 3a3c81105d68 Author: jgiles Date: 2012-05-09 16:14 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/3a3c81105d68 Temporarily disabling the automatic generation of the ProgressBarTableCellBuilder, as it leads to compilation failure. ! javafx-ui-controls/src/javafx/scene/control/cell/ProgressBarTableCell.java From Claus.Luethje at osys.ch Tue May 8 22:35:08 2012 From: Claus.Luethje at osys.ch (Claus Luethje) Date: Wed, 9 May 2012 05:35:08 +0000 Subject: [Review request] Adding pre-built cells and cell factories to JavaFX In-Reply-To: <4FA9B625.1050700@oracle.com> References: <4FA99ACA.4000504@oracle.com> <5F839606-5C9F-4695-B3C0-8E454BC06165@oracle.com> <4FA9B625.1050700@oracle.com> Message-ID: <193FF4ED343AF14F8CDC65B4792C954D0E0F61@Jeri.osys.ch> I prefer having the setCellFactory() methods attached to controls, because it shows the connection between the control and the defined cell factories better. In my view, it enhances readability of the code. Just my 0.02$ Claus -----Original Message----- From: openjfx-dev-bounces at openjdk.java.net [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Jonathan Giles Sent: Mittwoch, 9. Mai 2012 02:11 To: Richard Bair Cc: openjfx-dev at openjdk.java.net Subject: Re: [Review request] Adding pre-built cells and cell factories to JavaFX The reason for the current approach is, as always, discoverability of API. But I never seem to win with that argument either :-) I am totally happy with having the API on the specific cell classes themselves, or in their current location. I don't have a strong gut feeling either way, so hopefully others may chime in with their preference. If not, I'll make the switch tomorrow. -- Jonathan On Wednesday, 9 May 2012 11:01:02 a.m., Richard Bair wrote: > Jonathan, I was just thinking (I know we talked about this before some time back but I don't remember the reasoning), why do we have the ***Factory classes? Why not just move those factory methods onto the appropriate Cells? So it would be: > > listView.setCellFactory(TextFieldCell.cellFactory(...)); > > Just thinking four fewer classes, and associating the factory methods with the class itself. What do you think? > > Richard > > On May 8, 2012, at 3:29 PM, Richard Bair wrote: > >> I've been over this a few times with Jonathan and I think the API is really quite nice. I would especially like to hear any feedback from folks using FXML, from SceneBuilder, and from anybody who gives it a try. The API is essentially what Jonathan had done in DataFX and has had a significant amount of usage already so we're pretty confident that it is friendly to use :-). >> >> Thanks >> Richard >> >> On May 8, 2012, at 3:14 PM, Jonathan Giles wrote: >> >>> Hi all, >>> >>> http://javafx-jira.kenai.com/browse/RT-19452 >>> >>> This jira feature request asks for JavaFX to include a number of pre-built cell factories for use in ListView, TreeView and TableView. This was always intended functionality, it just took some time to get around to adding it. These cell factories are intended to support functionality such as editing by TextField, ChoiceBox, ComboBox, and CheckBox, easily converting objects into strings, and values into progress bars. >>> >>> I intend to move com.sun.javafx.scene.control.CheckBoxTreeItem into javafx.scene.control. >>> >>> The classes below I intend to move to javafx.scene.control.cell: >>> com.sun.javafx.scene.control.cell.CheckBoxCellFactory >>> com.sun.javafx.scene.control.cell.CheckBoxListCell >>> com.sun.javafx.scene.control.cell.CheckBoxTableCell >>> com.sun.javafx.scene.control.cell.CheckBoxTreeCell >>> com.sun.javafx.scene.control.cell.ChoiceBoxCellFactory >>> com.sun.javafx.scene.control.cell.ChoiceBoxListCell >>> com.sun.javafx.scene.control.cell.ChoiceBoxTableCell >>> com.sun.javafx.scene.control.cell.ChoiceBoxTreeCell >>> com.sun.javafx.scene.control.cell.ComboBoxCellFactory >>> com.sun.javafx.scene.control.cell.ComboBoxListCell >>> com.sun.javafx.scene.control.cell.ComboBoxTableCell >>> com.sun.javafx.scene.control.cell.ComboBoxTreeCell >>> com.sun.javafx.scene.control.cell.ProgressBarCellFactory >>> com.sun.javafx.scene.control.cell.ProgressBarTableCell >>> com.sun.javafx.scene.control.cell.TextFieldCellFactory >>> com.sun.javafx.scene.control.cell.TextFieldListCell >>> com.sun.javafx.scene.control.cell.TextFieldTableCell >>> com.sun.javafx.scene.control.cell.TextFieldTreeCell >>> >>> In addition to these classes, I am also introducing other, related classes, including: >>> javafx.util.converter.FormatStringConverter >>> com.sun.javafx.scene.control.cell.MapValueFactory (which will move >>> to javafx.scene.control.cell to work alongside the >>> PropertyValueFactory) >>> >>> To support the CheckBox inside a TreeView case, I'm including the CheckBoxTreeItem class that can ensure that parent and children tree items are updated when a tree item is selected or deselected. >>> >>> I have included considerable javadoc documentation already, but I intend to add more soon to include a number of worked examples on how to use this new API. >>> >>> I look forward to your feedback. >>> >>> -- Jonathan >> > From jonathan.giles at oracle.com Tue May 8 23:06:39 2012 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Wed, 09 May 2012 18:06:39 +1200 Subject: [Review request] Adding pre-built cells and cell factories to JavaFX In-Reply-To: <193FF4ED343AF14F8CDC65B4792C954D0E0F61@Jeri.osys.ch> References: <4FA99ACA.4000504@oracle.com> <5F839606-5C9F-4695-B3C0-8E454BC06165@oracle.com> <4FA9B625.1050700@oracle.com> <193FF4ED343AF14F8CDC65B4792C954D0E0F61@Jeri.osys.ch> Message-ID: <4FAA096F.10107@oracle.com> setCellFactory is, and will remain, on the ListView, TreeView and TableView controls. Richards question was not targeted at this particular API. Instead, he was questioning the need for, say, a TextFieldCellFactory class, that has a bunch of forListView(), etc methods (forListView(), forTreeView(), and forTableView(), with a bunch of different acceptable parameters). Richard's suggestion was to move all the TextField listView cell factories to the TextFieldListCell class, all the TextField TreeView cell factories to TextFieldTreeCell, etc. This is closer to where the cell factories belong, but it comes at the cost of distributing the cell factories to a number of different classes, rather than centralising them. The main gain was the removal of four classes, where every class has a cost that we are very conscious of. -- Jonathan On 9/05/2012 5:35 p.m., Claus Luethje wrote: > I prefer having the setCellFactory() methods attached to controls, because it shows the connection between the control and the defined cell factories better. In my view, it enhances readability of the code. > Just my 0.02$ > > Claus > > -----Original Message----- > From: openjfx-dev-bounces at openjdk.java.net [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Jonathan Giles > Sent: Mittwoch, 9. Mai 2012 02:11 > To: Richard Bair > Cc: openjfx-dev at openjdk.java.net > Subject: Re: [Review request] Adding pre-built cells and cell factories to JavaFX > > The reason for the current approach is, as always, discoverability of API. But I never seem to win with that argument either :-) > > I am totally happy with having the API on the specific cell classes themselves, or in their current location. I don't have a strong gut feeling either way, so hopefully others may chime in with their preference. If not, I'll make the switch tomorrow. > > -- Jonathan > > On Wednesday, 9 May 2012 11:01:02 a.m., Richard Bair wrote: >> Jonathan, I was just thinking (I know we talked about this before some time back but I don't remember the reasoning), why do we have the ***Factory classes? Why not just move those factory methods onto the appropriate Cells? So it would be: >> >> listView.setCellFactory(TextFieldCell.cellFactory(...)); >> >> Just thinking four fewer classes, and associating the factory methods with the class itself. What do you think? >> >> Richard >> >> On May 8, 2012, at 3:29 PM, Richard Bair wrote: >> >>> I've been over this a few times with Jonathan and I think the API is really quite nice. I would especially like to hear any feedback from folks using FXML, from SceneBuilder, and from anybody who gives it a try. The API is essentially what Jonathan had done in DataFX and has had a significant amount of usage already so we're pretty confident that it is friendly to use :-). >>> >>> Thanks >>> Richard >>> >>> On May 8, 2012, at 3:14 PM, Jonathan Giles wrote: >>> >>>> Hi all, >>>> >>>> http://javafx-jira.kenai.com/browse/RT-19452 >>>> >>>> This jira feature request asks for JavaFX to include a number of pre-built cell factories for use in ListView, TreeView and TableView. This was always intended functionality, it just took some time to get around to adding it. These cell factories are intended to support functionality such as editing by TextField, ChoiceBox, ComboBox, and CheckBox, easily converting objects into strings, and values into progress bars. >>>> >>>> I intend to move com.sun.javafx.scene.control.CheckBoxTreeItem into javafx.scene.control. >>>> >>>> The classes below I intend to move to javafx.scene.control.cell: >>>> com.sun.javafx.scene.control.cell.CheckBoxCellFactory >>>> com.sun.javafx.scene.control.cell.CheckBoxListCell >>>> com.sun.javafx.scene.control.cell.CheckBoxTableCell >>>> com.sun.javafx.scene.control.cell.CheckBoxTreeCell >>>> com.sun.javafx.scene.control.cell.ChoiceBoxCellFactory >>>> com.sun.javafx.scene.control.cell.ChoiceBoxListCell >>>> com.sun.javafx.scene.control.cell.ChoiceBoxTableCell >>>> com.sun.javafx.scene.control.cell.ChoiceBoxTreeCell >>>> com.sun.javafx.scene.control.cell.ComboBoxCellFactory >>>> com.sun.javafx.scene.control.cell.ComboBoxListCell >>>> com.sun.javafx.scene.control.cell.ComboBoxTableCell >>>> com.sun.javafx.scene.control.cell.ComboBoxTreeCell >>>> com.sun.javafx.scene.control.cell.ProgressBarCellFactory >>>> com.sun.javafx.scene.control.cell.ProgressBarTableCell >>>> com.sun.javafx.scene.control.cell.TextFieldCellFactory >>>> com.sun.javafx.scene.control.cell.TextFieldListCell >>>> com.sun.javafx.scene.control.cell.TextFieldTableCell >>>> com.sun.javafx.scene.control.cell.TextFieldTreeCell >>>> >>>> In addition to these classes, I am also introducing other, related classes, including: >>>> javafx.util.converter.FormatStringConverter >>>> com.sun.javafx.scene.control.cell.MapValueFactory (which will move >>>> to javafx.scene.control.cell to work alongside the >>>> PropertyValueFactory) >>>> >>>> To support the CheckBox inside a TreeView case, I'm including the CheckBoxTreeItem class that can ensure that parent and children tree items are updated when a tree item is selected or deselected. >>>> >>>> I have included considerable javadoc documentation already, but I intend to add more soon to include a number of worked examples on how to use this new API. >>>> >>>> I look forward to your feedback. >>>> >>>> -- Jonathan From Claus.Luethje at osys.ch Tue May 8 23:11:18 2012 From: Claus.Luethje at osys.ch (Claus Luethje) Date: Wed, 9 May 2012 06:11:18 +0000 Subject: [Review request] Adding pre-built cells and cell factories to JavaFX In-Reply-To: <4FAA096F.10107@oracle.com> References: <4FA99ACA.4000504@oracle.com> <5F839606-5C9F-4695-B3C0-8E454BC06165@oracle.com> <4FA9B625.1050700@oracle.com> <193FF4ED343AF14F8CDC65B4792C954D0E0F61@Jeri.osys.ch> <4FAA096F.10107@oracle.com> Message-ID: <193FF4ED343AF14F8CDC65B4792C954D0E107F@Jeri.osys.ch> Oh, thanks for the clarification. I misunderstood the original mail. Claus -----Original Message----- From: openjfx-dev-bounces at openjdk.java.net [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Jonathan Giles Sent: Mittwoch, 9. Mai 2012 08:07 To: Claus Luethje Cc: openjfx-dev at openjdk.java.net Subject: Re: [Review request] Adding pre-built cells and cell factories to JavaFX setCellFactory is, and will remain, on the ListView, TreeView and TableView controls. Richards question was not targeted at this particular API. Instead, he was questioning the need for, say, a TextFieldCellFactory class, that has a bunch of forListView(), etc methods (forListView(), forTreeView(), and forTableView(), with a bunch of different acceptable parameters). Richard's suggestion was to move all the TextField listView cell factories to the TextFieldListCell class, all the TextField TreeView cell factories to TextFieldTreeCell, etc. This is closer to where the cell factories belong, but it comes at the cost of distributing the cell factories to a number of different classes, rather than centralising them. The main gain was the removal of four classes, where every class has a cost that we are very conscious of. -- Jonathan On 9/05/2012 5:35 p.m., Claus Luethje wrote: > I prefer having the setCellFactory() methods attached to controls, because it shows the connection between the control and the defined cell factories better. In my view, it enhances readability of the code. > Just my 0.02$ > > Claus > > -----Original Message----- > From: openjfx-dev-bounces at openjdk.java.net > [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Jonathan > Giles > Sent: Mittwoch, 9. Mai 2012 02:11 > To: Richard Bair > Cc: openjfx-dev at openjdk.java.net > Subject: Re: [Review request] Adding pre-built cells and cell > factories to JavaFX > > The reason for the current approach is, as always, discoverability of > API. But I never seem to win with that argument either :-) > > I am totally happy with having the API on the specific cell classes themselves, or in their current location. I don't have a strong gut feeling either way, so hopefully others may chime in with their preference. If not, I'll make the switch tomorrow. > > -- Jonathan > > On Wednesday, 9 May 2012 11:01:02 a.m., Richard Bair wrote: >> Jonathan, I was just thinking (I know we talked about this before some time back but I don't remember the reasoning), why do we have the ***Factory classes? Why not just move those factory methods onto the appropriate Cells? So it would be: >> >> listView.setCellFactory(TextFieldCell.cellFactory(...)); >> >> Just thinking four fewer classes, and associating the factory methods with the class itself. What do you think? >> >> Richard >> >> On May 8, 2012, at 3:29 PM, Richard Bair wrote: >> >>> I've been over this a few times with Jonathan and I think the API is really quite nice. I would especially like to hear any feedback from folks using FXML, from SceneBuilder, and from anybody who gives it a try. The API is essentially what Jonathan had done in DataFX and has had a significant amount of usage already so we're pretty confident that it is friendly to use :-). >>> >>> Thanks >>> Richard >>> >>> On May 8, 2012, at 3:14 PM, Jonathan Giles wrote: >>> >>>> Hi all, >>>> >>>> http://javafx-jira.kenai.com/browse/RT-19452 >>>> >>>> This jira feature request asks for JavaFX to include a number of pre-built cell factories for use in ListView, TreeView and TableView. This was always intended functionality, it just took some time to get around to adding it. These cell factories are intended to support functionality such as editing by TextField, ChoiceBox, ComboBox, and CheckBox, easily converting objects into strings, and values into progress bars. >>>> >>>> I intend to move com.sun.javafx.scene.control.CheckBoxTreeItem into javafx.scene.control. >>>> >>>> The classes below I intend to move to javafx.scene.control.cell: >>>> com.sun.javafx.scene.control.cell.CheckBoxCellFactory >>>> com.sun.javafx.scene.control.cell.CheckBoxListCell >>>> com.sun.javafx.scene.control.cell.CheckBoxTableCell >>>> com.sun.javafx.scene.control.cell.CheckBoxTreeCell >>>> com.sun.javafx.scene.control.cell.ChoiceBoxCellFactory >>>> com.sun.javafx.scene.control.cell.ChoiceBoxListCell >>>> com.sun.javafx.scene.control.cell.ChoiceBoxTableCell >>>> com.sun.javafx.scene.control.cell.ChoiceBoxTreeCell >>>> com.sun.javafx.scene.control.cell.ComboBoxCellFactory >>>> com.sun.javafx.scene.control.cell.ComboBoxListCell >>>> com.sun.javafx.scene.control.cell.ComboBoxTableCell >>>> com.sun.javafx.scene.control.cell.ComboBoxTreeCell >>>> com.sun.javafx.scene.control.cell.ProgressBarCellFactory >>>> com.sun.javafx.scene.control.cell.ProgressBarTableCell >>>> com.sun.javafx.scene.control.cell.TextFieldCellFactory >>>> com.sun.javafx.scene.control.cell.TextFieldListCell >>>> com.sun.javafx.scene.control.cell.TextFieldTableCell >>>> com.sun.javafx.scene.control.cell.TextFieldTreeCell >>>> >>>> In addition to these classes, I am also introducing other, related classes, including: >>>> javafx.util.converter.FormatStringConverter >>>> com.sun.javafx.scene.control.cell.MapValueFactory (which will move >>>> to javafx.scene.control.cell to work alongside the >>>> PropertyValueFactory) >>>> >>>> To support the CheckBox inside a TreeView case, I'm including the CheckBoxTreeItem class that can ensure that parent and children tree items are updated when a tree item is selected or deselected. >>>> >>>> I have included considerable javadoc documentation already, but I intend to add more soon to include a number of worked examples on how to use this new API. >>>> >>>> I look forward to your feedback. >>>> >>>> -- Jonathan From mp at jugs.org Tue May 8 23:32:11 2012 From: mp at jugs.org (Dr. Michael Paus) Date: Wed, 09 May 2012 08:32:11 +0200 Subject: API Review: ImagePattern In-Reply-To: References: <4FA9A5A1.1080906@oracle.com> <4FA9A95D.5080301@oracle.com> Message-ID: <4FAA0F6B.8010005@jugs.org> Am 09.05.2012 04:45, schrieb Josh Marinacci: > Incidentally, this is a far superior solution to drawing a grid than trying to do it with tons of line objects. > But only if your grid is static and you do not want to zoom in and out of it. -- -------------------------------------------------------------------------------------- Dr. Michael Paus, Chairman of the Java User Group Stuttgart e.V. (JUGS). For more information visit www.jugs.de. From jerome.cambon at oracle.com Wed May 9 00:34:54 2012 From: jerome.cambon at oracle.com (Jerome Cambon) Date: Wed, 09 May 2012 09:34:54 +0200 Subject: Scene Builder - add option to select property resource bundle In-Reply-To: References: Message-ID: <4FAA1E1E.6000305@oracle.com> Hi, This feature is already implemented, and will be available soon in the next update of Scene Builder Developer Preview. It will allow to link your FXML file to a resource bundle, and to set a text property to a key. regards, Jerome On 5/7/12 7:34 PM, Pedro Duque Vieira wrote: > Hi, > > I wanted to propose adding an option to the Scene Builder so that one could > choose a property resource bundle to see how the interface appears > after Internationalization and localization. > Right now I can only see the the UI with the strange strings that are the > keys of the resource bundles, which interferes in previewing how my UI will > look like. > > Thanks, best regards, > From hang.vo at oracle.com Wed May 9 01:18:59 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 09 May 2012 08:18:59 +0000 Subject: hg: openjfx/2.2/controls/rt: implement ColorPicker visual spec Message-ID: <20120509081901.089A6471E7@hg.openjdk.java.net> Changeset: de2d96aed7c8 Author: Paru Somashekar Date: 2012-05-09 01:09 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/de2d96aed7c8 implement ColorPicker visual spec ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPalette.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/CustomColorDialog.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css From lehmann at media-interactive.de Wed May 9 02:28:37 2012 From: lehmann at media-interactive.de (Werner Lehmann) Date: Wed, 9 May 2012 11:28:37 +0200 Subject: Custom Border for Callout Popup In-Reply-To: <8EC4B291-4C79-4DCD-8F76-21BC11E6AC73@oracle.com> References: <4FA82340.5040005@media-interactive.de> <89DBC40C-1B23-4E56-B75C-25A86B34DEA5@oracle.com> <4FA93AA2.7000908@media-interactive.de> <8EC4B291-4C79-4DCD-8F76-21BC11E6AC73@oracle.com> Message-ID: <4FAA38C5.5000004@media-interactive.de> Hi Richard, thanks for taking the time. Actually, I was borrowing from the TooltipSkin already. In a previous version I had something similar to your code. That's when I discovered that I did not need to override anything in the root stackpane to layout the children or handle the min/pref/max width/height. It just works as is regarding the shape or resizing behaviour. Or, maybe I did not find the case where it does not work but I tested a few things. Your skin works as good as mine I think - but alas does not handle my question: how to know the width of the popup before showing it, so that I can show it further to the left, and the callout hotspot is considered. Fortunately I was able to solve this meanwhile: an invalidation listener on the callout's widthProperty works for repositioning the popup to the hotspot: callout.widthProperty().addListener(new InvalidationListener() { @Override public void invalidated(Observable paramObservable) { if (callout.getWidth() <= 0) return; Point2D hotspot = new Point2D( callout.getWidth() - 1.5 * ARROW_SIZE.getWidth(), 0); ... callout.setX(screenPoint.getX()); callout.setY(screenPoint.getY()); } }); Werner On 09.05.2012 00:25, Richard Bair wrote: > Hi Werner, > > Here is an updated Skin which works a bit better. What I added here I > found in the TooltipSkin class, which you can peruse as it is open > source. It uses the root node of the skin to do the layout of the > background shape (which for simplicity I used a Rectangle, you could > either use a path with known path elements that you reposition during > layout or you can recreate the path elements each time). From lehmann at media-interactive.de Wed May 9 02:51:17 2012 From: lehmann at media-interactive.de (Werner Lehmann) Date: Wed, 9 May 2012 11:51:17 +0200 Subject: Custom Border for Callout Popup In-Reply-To: <6CE06099-8264-4540-9D3A-535170E9C7E7@oracle.com> References: <4FA82340.5040005@media-interactive.de> <89DBC40C-1B23-4E56-B75C-25A86B34DEA5@oracle.com> <4FA93AA2.7000908@media-interactive.de> <8EC4B291-4C79-4DCD-8F76-21BC11E6AC73@oracle.com> <6CE06099-8264-4540-9D3A-535170E9C7E7@oracle.com> Message-ID: <4FAA3E15.2040302@media-interactive.de> Hi Jasper, thanks - however, you are not using a skin class, and the ColorPicker has a fixed size, . So it is dancing around the problems I had, such as: 1. Control is requested to show the popup but only the skin knows the hotspot position. But the control cannot tell the skin because it does not know the skin instance. 2. To position the control I need to know its size but I get that only when showing the control first at a bogus position. Chicken/egg stuff. Solved it though, see my other email. Werner PS: converting to screen coordinates should be available out of the box in my opinion. You just need it for the popup, context menu, etc. Maybe it helps to provide some code? :-) /** * Converts point in local coordinates of specified node into screen coordinates. * The node must be attached to a scene and a window. * * @param node local coordinates are relative to this node * @param local relative coordinates * @return absolute screen coordinates */ public static Point2D localToScreen(Node node, Point2D local) { Scene scene = node.getScene(); Window window = scene.getWindow(); Point2D sceneLocal = node.localToScene(local); return new Point2D( window.getX() + scene.getX() + sceneLocal.getX(), window.getY() + scene.getY() + sceneLocal.getY()); } On 09.05.2012 01:09, Jasper Potts wrote: > Hi, > > You can look at what I did for the color picker for FXExperience > tools. It is a hard coded size but might prove interesting. > > https://github.com/fxexperience/code/blob/master/FXExperienceControls/src/com/fxexperience/javafx/scene/control/colorpicker/ColorPickerPopover.java > > > > Jasper From hang.vo at oracle.com Wed May 9 04:18:43 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 09 May 2012 11:18:43 +0000 Subject: hg: openjfx/2.2/graphics/rt: [DOC-ONLY] Fixed broken links in documentation [RT-21256]. Message-ID: <20120509111845.84375471EA@hg.openjdk.java.net> Changeset: eaf4f5402b56 Author: Michael Heinrichs Date: 2012-05-09 13:04 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/eaf4f5402b56 [DOC-ONLY] Fixed broken links in documentation [RT-21256]. ! javafx-ui-common/src/javafx/animation/ParallelTransition.java ! javafx-ui-common/src/javafx/animation/SequentialTransition.java From pavel.safrata at oracle.com Wed May 9 04:20:20 2012 From: pavel.safrata at oracle.com (Pavel Safrata) Date: Wed, 09 May 2012 13:20:20 +0200 Subject: Multiple-click events In-Reply-To: <4FA15776.5030807@oracle.com> References: <4F9AB876.6030508@oracle.com> <353535825-1335540238-cardhu_decombobulator_blackberry.rim.net-135158866-@b1.c12.bise6.blackberry> <180971B9-6797-414A-A5F2-052447A52974@reportmill.com> <4F9AC4A5.5030408@oracle.com> <1470656124-1335543352-cardhu_decombobulator_blackberry.rim.net-1895564359-@b1.c12.bise6.blackberry> <4F9AC6A7.6050702@oracle.com> <872024149-1335543700-cardhu_decombobulator_blackberry.rim.net-871228946-@b1.c12.bise6.blackberry> <4F9AC87F.6090404@oracle.com> <1296427510-1335544427-cardhu_decombobulator_blackberry.rim.net-36084016-@b1.c12.bise6.blackberry> <4F9E86A8.2060400@oracle.com> <4FA15776.5030807@oracle.com> Message-ID: <4FAA52F4.7020306@oracle.com> Hello, I tried to get approval for the new event and our architects raised the same objections I've had: "I don't really think we should add this API. It just doesn't seem like something any UI should be doing. It seems in every case we could think of when a single, double, triple click is associated with a single node (such as Text, etc), the double click builds upon what the single click did, and the triple click builds on what the double click did. It is never a case where the double click is going to do something quite different from a single click, and if such a situation comes up, it seems bad UI design." ... "We think we ought not go down this road." I completely agree and won't add the functionality unless a really compelling use-case is presented. Switching an application to full-screen can definitely be solved other way (without introducing unnecessary waiting for each slide). Shanliang, you claimed SceneBuilder needs this, what is your use-case? Thanks, Pavel On 2.5.2012 17:49, Alexander Kouznetsov wrote: > Hi Pavel, > > I believe ClickSequenceFinished is an interesting event that may be > useful. > > I have two usecase: > > 1. Presentation app > * one click to proceed to next slide > * double-click to enter fullscreen mode > 2. MediaPlayer > * one click to pause > * double-click to enter fullscreen mode > > Actually second example works without this event (by pausing on first > click and playing again on second one). But the first one doesn't. > > Best regards, > Alexander Kouznetsov > > On 30.04.2012 16:33, Pavel Safrata wrote: >> Hello, >> we discussed the matter again, considering all the raised issues. We >> agree that the delay really is a problem. We cannot find any common >> use-case in the native environments that would do an action on >> single-click that wouldn't be done as part of a double click. I think >> this pattern should be strongly discouraged, because it will make the >> UI feel pretty laggy (and thus FX seem slow). Default timeout on >> Windows is over half a second and can be increased by user to more >> than two and a half. Waiting any noticeable time for a click to be >> recognized would bother almost everybody I think, even the >> half-second is a multiple of the recommended reaction time. >> >> We're not happy this is requested for our internal tools. We can, >> however, fulfill the request by a new event, something like >> ClickSequenceFinished, but we don't want to promote this so there >> would be no setOn* method. It would be possible for the special cases >> to add a handler for this event to find out when user finished clicking. >> >> Is that acceptable? >> Thanks, >> Pavel >> >> On 27.4.2012 18:33, kimtopley at gmail.com wrote: >>> Selection was only an example. The point is that there are cases >>> where the single-click response will be required immediately, while >>> a different double-click action is required as and when the double >>> click occurs. For clarity, it would be better if both actions were >>> triggered from the same event handler, as they are today. This >>> change forces me to rewrite my code so that the single-click action >>> can be called both on mouse released and on mouse clicked. Having an >>> opt-in for the new behavior would also avoid breaking existing code. >>> >>> Sent from my Verizon Wireless BlackBerry >>> >>> -----Original Message----- >>> From: Alexander Kouznetsov >>> Date: Fri, 27 Apr 2012 20:25:35 >>> To: >>> Cc: Jeff Martin; Pavel >>> Safrata;; >>> openjfx-dev at openjdk.java.net; VIENOT, >>> SIMON; Richard Bair >>> Subject: Re: Multiple-click events >>> >>> Usually selection occurs on mousePressed or even on mouseEntered >>> events. >>> mouseReleased and mouseClicked events may arrive much later because you >>> can hold the mouse button pressed. >>> >>> Best regards, >>> Alexander Kouznetsov >>> >>> >>> On 27.04.2012 20:21, kimtopley at gmail.com wrote: >>>> The user will be able to tell that I did that, because the first >>>> click will be slower to arrive than it otherwise would have been, >>>> in the case where the user just clicks once, right? So now there is >>>> a "long" delay after the first click when the user sees nothing >>>> happening at all. >>>> >>>> Sent from my Verizon Wireless BlackBerry >>>> >>>> -----Original Message----- >>>> From: Alexander Kouznetsov >>>> Date: Fri, 27 Apr 2012 20:17:43 >>>> To: >>>> Cc: Jeff Martin; Pavel >>>> Safrata;; >>>> openjfx-dev at openjdk.java.net; VIENOT, >>>> SIMON; Richard Bair >>>> Subject: Re: Multiple-click events >>>> >>>> I don't see any problem here. You can select it on first click or on >>>> second click - that is still the same place. >>>> >>>> Best regards, >>>> Alexander Kouznetsov >>>> >>>> >>>> On 27.04.2012 20:15, kimtopley at gmail.com wrote: >>>>> That doesn't seem right to me. If I want to take one action on >>>>> single click (eg select a row) and another on double click (eg >>>>> open the row content in another editor), I will be forced to >>>>> implement one of those actions when processing mouse released and >>>>> the other in mouse clicked, whereas today that code would all be >>>>> in the same place. For this use case, shouldn't it be possible to >>>>> opt out of this behavior? >>>>> >>>>> Sent from my Verizon Wireless BlackBerry >>>>> >>>>> -----Original Message----- >>>>> From: Alexander Kouznetsov >>>>> Date: Fri, 27 Apr 2012 20:09:09 >>>>> To: Jeff Martin >>>>> Cc:; Pavel >>>>> Safrata;; >>>>> openjfx-dev at openjdk.java.net; >>>>> VIENOT, SIMON; Richard >>>>> Bair >>>>> Subject: Re: Multiple-click events >>>>> >>>>> This code is something we want to avoid. >>>>> >>>>> If people want to handle first click without any delays that can just >>>>> handle mouseReleased event. >>>>> >>>>> Best regards, >>>>> Alexander Kouznetsov >>>>> >>>>> >>>>> On 27.04.2012 19:51, Jeff Martin wrote: >>>>>> It seems a little dangerous to arbitrarily delay all initial >>>>>> mouse clicks. Does Swing do anything like this? I've never run >>>>>> into a problem with processing both single and double clicks, but >>>>>> if it was an issue, isn't there some kind of event peek that >>>>>> could easily be done: >>>>>> >>>>>> if(mouseEvent.getClickCount()==1) { >>>>>> Thread.sleep(200); >>>>>> if(EventDispatcher.peek(MouseEvent.MOUSE_CLICKED!=null) >>>>>> return; >>>>>> < ? handle single click normally ?> >>>>>> } >>>>>> >>>>>> If that isn't there, could that be added instead? >>>>>> >>>>>> jeff >>>>>> >>>>>> >>>>>> On Apr 27, 2012, at 10:23 AM, kimtopley at gmail.com wrote: >>>>>> >>>>>>> Would it be possible to make this configurable, maybe at the >>>>>>> Scene level? In some cases, a single click is all that's >>>>>>> required and the delay waiting for a second click that means >>>>>>> nothing more to the application is unnecessary. >>>>>>> >>>>>>> >>>>>>> Sent from my Verizon Wireless BlackBerry >>>>>>> >>>>>>> -----Original Message----- >>>>>>> From: Pavel Safrata >>>>>>> Sender: openjfx-dev-bounces at openjdk.java.net >>>>>>> Date: Fri, 27 Apr 2012 17:17:10 >>>>>>> To: openjfx-dev at openjdk.java.net >>>>>>> Cc: VIENOT, SIMON; Alexander >>>>>>> Kouznetsov; Richard >>>>>>> Bair >>>>>>> Subject: Multiple-click events >>>>>>> >>>>>>> Hello, >>>>>>> currently we deliver MOUSE_CLICKED event any time a node was >>>>>>> pressed and >>>>>>> released by mouse; if the next press happens fast enough and near >>>>>>> enough, we increase the clickCount number for the events. There are >>>>>>> requests to make a standalone single-click distinguishable from >>>>>>> a first >>>>>>> click of a double-click (and so on). >>>>>>> >>>>>>> After some discussion we concluded that the cleanest approach >>>>>>> would be >>>>>>> somewhat backward incompatible - we propose to generate the >>>>>>> click event >>>>>>> only when we are sure that there is no next click. In other >>>>>>> words, the >>>>>>> partial clicks would not be delivered at all, the final click >>>>>>> would be a >>>>>>> bit delayed. The pressed/released events would of course be still >>>>>>> delivered normally, with the correct clickCount value. >>>>>>> >>>>>>> Any objections? >>>>>>> >>>>>>> Thanks, >>>>>>> Pavel >>>>>>> From lubomir.nerad at oracle.com Wed May 9 04:36:09 2012 From: lubomir.nerad at oracle.com (Lubomir Nerad) Date: Wed, 09 May 2012 13:36:09 +0200 Subject: API change RT-19955: Configuring a PopupWindow so that it consumes the event used for hiding In-Reply-To: References: <4F9A8279.7070708@oracle.com> <4F9A8BC7.7000909@media-interactive.de> <4FA114C8.6050504@oracle.com> Message-ID: <4FAA56A9.8030204@oracle.com> On 5/7/2012 10:43 PM, Richard Bair wrote: >>> Hi Lubo, >>> >>> why do you think that the name is ambiguous? Seems clear to me. Some >>> other thoughts: >> I don't remember how exactly the auto-hide feature for popups is implemented. Is it sometimes triggered from Glass ("ungrab" event)? What event will be consumed in this case? >> >> Are we confident we'll be able to implement this property? If a popup is auto-hidden from the ungrab event handler, there may be no direct connection between this event and the mouse/key/etc. event to consume. > Before approving the API addition I guess we need to know the answer to this. Likewise, the default behavior I think is platform specific. At least in Safari, it seems that it does not consume mouse events by default that cause the popup to be closed. However I know Cocoa has an API for specifying what this behavior should be. If we add such an API, we probably will want to make sure it defaults to some platform specific value rather than always defaulting to "true" or "false"? > The property only aims at controlling the events between the popup and its parent window. Ungrab events and possible mouse clicks which caused them (outside of the popup window and its parent window) can't be influenced in general (and probably shouldn't be). In Safari, it seems to me that the events are actually consumed. If you invoke preferences and in one tab page expand a combo box, then click on an another control in the same tab page, the function of that other control is not executed. Only if the interaction involves multiple windows, I can see that the event is not consumed. With the property we will control this behavior among controls / popups of a single window, while leaving the behavior between multiple windows OS dependent. Thanks, Lubo From hang.vo at oracle.com Wed May 9 05:48:19 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 09 May 2012 12:48:19 +0000 Subject: hg: openjfx/2.2/graphics/rt: 2 new changesets Message-ID: <20120509124820.A878E471EB@hg.openjdk.java.net> Changeset: 61d51979b89c Author: Martin Sladecek Date: 2012-05-09 14:45 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/61d51979b89c RT-21430 Minor Parent update: change iterators to index iterations ! javafx-ui-common/src/javafx/scene/Parent.java Changeset: 2e90c7ae0dda Author: Martin Sladecek Date: 2012-05-09 14:46 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/2e90c7ae0dda Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/graphics/jfx/rt From hang.vo at oracle.com Wed May 9 06:03:18 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 09 May 2012 13:03:18 +0000 Subject: hg: openjfx/2.2/graphics/rt: 2 new changesets Message-ID: <20120509130320.94050471EC@hg.openjdk.java.net> Changeset: ef31e7187b44 Author: Martin Sladecek Date: 2012-05-09 14:52 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/ef31e7187b44 RT-21346, RT-21345 Evaluate findbugs issues in scenegraph & app model code. ! javafx-ui-common/src/com/sun/javafx/application/ParametersImpl.java ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/src/com/sun/javafx/css/converters/EnumConverter.java ! javafx-ui-common/src/com/sun/javafx/css/parser/Css2Bin.java ! javafx-ui-common/src/com/sun/javafx/scene/KeyboardShortcutsHandler.java ! javafx-ui-common/src/com/sun/javafx/stage/StageHelper.java ! javafx-ui-common/src/com/sun/javafx/tk/Toolkit.java ! javafx-ui-common/src/javafx/scene/ImageCursor.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/src/javafx/scene/Parent.java ! javafx-ui-common/src/javafx/scene/Scene.java ! javafx-ui-common/src/javafx/scene/effect/Effect.java ! javafx-ui-common/src/javafx/scene/input/DataFormat.java ! javafx-ui-common/src/javafx/scene/input/DragEvent.java ! javafx-ui-common/src/javafx/scene/input/InputMethodEvent.java ! javafx-ui-common/src/javafx/scene/input/InputMethodTextRun.java ! javafx-ui-common/src/javafx/scene/input/KeyCharacterCombination.java ! javafx-ui-common/src/javafx/scene/input/Mnemonic.java ! javafx-ui-common/src/javafx/scene/input/MouseEvent.java Changeset: 2c5e6c032334 Author: Martin Sladecek Date: 2012-05-09 14:52 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/2c5e6c032334 Automated merge with file:///home/martin/work/javafx/jfx-22-sync/rt From hang.vo at oracle.com Wed May 9 07:48:27 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 09 May 2012 14:48:27 +0000 Subject: hg: openjfx/2.2/controls/rt: RT-20780 : Scaling UI Controls down to QVGA: ScrollPane Message-ID: <20120509144829.A3FEB471EE@hg.openjdk.java.net> Changeset: 19c427cc52af Author: mickf Date: 2012-05-09 15:34 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/19c427cc52af RT-20780 : Scaling UI Controls down to QVGA: ScrollPane ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ScrollPaneSkin.java From pavel.safrata at oracle.com Wed May 9 08:16:08 2012 From: pavel.safrata at oracle.com (Pavel Safrata) Date: Wed, 09 May 2012 17:16:08 +0200 Subject: LocalToScene Transformation (related to Affine Transforms) Message-ID: <4FAA8A38.6090706@oracle.com> Hello, I've been working on the local-to-scene transform (http://javafx-jira.kenai.com/browse/RT-520). I have a prototype that makes it an observable (read-only) property, registering for invalidation notifications to parent only when somebody registers a listener to it. This is nicer than a simple "compute" method - it looks like a standard observable lazy property from user's point of view. The big question now is what the type of the property should be. The first candidate is javafx.scene.transform.Affine. Unfortunately this class has each element of the matrix as a property, which makes it pretty impractical for that purpose. There are two options there: - We can create a new Affine instance each time the transformation changes (and somebody calls the getter). This way all the elements would have to be immutable, so all their setters would need to throw exceptions (ugly) and whole their observability would be just a useless slowdown. - Or we can keep the single instance and modify its elements. This way user would have to register twelve listeners to be notified of transformation changes. None of those options seems good enough. We considered another option: creating a new class TransformationMatrix. This class would be immutable and would contain various methods for work with matrices. All the transforms would have a getter that would return an instance of this class, the Affine class would have also a setter. Now the localToSceneTransformation property could be of type TransformationMatrix. This would spare us the above problems and provide an independent class for matrix operations, but on the other hand, converting transformations to the matrix and back may be an unnecessary burden, also doing some complex matrix computation with an immutable matrix class would result in pretty huge garbage production (slowing down the computation). So we propose yet another approach. In the base Transform class, introduce getters for all the elements of the transformation matrix (not observable, just getters). Each transformation would be able to return the values according to its current state. Our property would then be of type Transform, allowing only for getting the matrix values. This would make the property observable as a whole (creating a new instance each time), unmodifiable, and would leave us with a nicely open way to introduce the methods for matrix operations on the Transform class, most of them probably returning the Affine instance as a result, and the Affine class could then have a bunch of methods to be modified in place. What do you think? Thanks, Pavel From lubomir.nerad at oracle.com Wed May 9 08:44:17 2012 From: lubomir.nerad at oracle.com (Lubomir Nerad) Date: Wed, 09 May 2012 17:44:17 +0200 Subject: RT-20302: Consider changing picking behavior of dashed strokes Message-ID: <4FAA90D1.5040400@oracle.com> Hi, I would like to change mouse picking behavior of objects with dashed stroke as described in http://javafx-jira.kenai.com/browse/RT-20302. Currently an object is picked even when the mouse click happens in the non-filled parts (inside spaces) of the dashed stroke (stroke dash array and dash offset have no impact on picking). With RT-19994, this can create an unexpected situation, when a Shape is picked inside stroke spaces, but if it is used in a CAG operation (for example Shape.intersect(shape1, shape1)) the resulting Shape won't include the spaces and so won't be picked inside of them. To get consistent behavior I propose not to pick the spaces inside object stokes. Do you agree? Thanks, Lubo From mp at jugs.org Wed May 9 08:59:04 2012 From: mp at jugs.org (Dr. Michael Paus) Date: Wed, 09 May 2012 17:59:04 +0200 Subject: RT-20302: Consider changing picking behavior of dashed strokes In-Reply-To: <4FAA90D1.5040400@oracle.com> References: <4FAA90D1.5040400@oracle.com> Message-ID: <4FAA9448.2010108@jugs.org> It is not easy to comment on this if RT-19994 is kept secret. Am 09.05.2012 17:44, schrieb Lubomir Nerad: > Hi, > > I would like to change mouse picking behavior of objects with dashed > stroke as described in http://javafx-jira.kenai.com/browse/RT-20302. > Currently an object is picked even when the mouse click happens in the > non-filled parts (inside spaces) of the dashed stroke (stroke dash > array and dash offset have no impact on picking). With RT-19994, this > can create an unexpected situation, when a Shape is picked inside > stroke spaces, but if it is used in a CAG operation (for example > Shape.intersect(shape1, shape1)) the resulting Shape won't include the > spaces and so won't be picked inside of them. To get consistent > behavior I propose not to pick the spaces inside object stokes. > > Do you agree? > > Thanks, > Lubo > -- -------------------------------------------------------------------------------------- Dr. Michael Paus, Chairman of the Java User Group Stuttgart e.V. (JUGS). For more information visit www.jugs.de. From richard.bair at oracle.com Wed May 9 09:01:23 2012 From: richard.bair at oracle.com (Richard Bair) Date: Wed, 9 May 2012 09:01:23 -0700 Subject: RT-20302: Consider changing picking behavior of dashed strokes In-Reply-To: <4FAA90D1.5040400@oracle.com> References: <4FAA90D1.5040400@oracle.com> Message-ID: <1E54CDE0-E309-40F6-9BE9-22271088EFA3@oracle.com> It seems like that would be quite expensive to figure out? On May 9, 2012, at 8:44 AM, Lubomir Nerad wrote: > Hi, > > I would like to change mouse picking behavior of objects with dashed stroke as described in http://javafx-jira.kenai.com/browse/RT-20302. Currently an object is picked even when the mouse click happens in the non-filled parts (inside spaces) of the dashed stroke (stroke dash array and dash offset have no impact on picking). With RT-19994, this can create an unexpected situation, when a Shape is picked inside stroke spaces, but if it is used in a CAG operation (for example Shape.intersect(shape1, shape1)) the resulting Shape won't include the spaces and so won't be picked inside of them. To get consistent behavior I propose not to pick the spaces inside object stokes. > > Do you agree? > > Thanks, > Lubo > From kevin.rushforth at oracle.com Wed May 9 09:10:14 2012 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 09 May 2012 09:10:14 -0700 Subject: RT-20302: Consider changing picking behavior of dashed strokes In-Reply-To: <4FAA9448.2010108@jugs.org> References: <4FAA90D1.5040400@oracle.com> <4FAA9448.2010108@jugs.org> Message-ID: <4FAA96E6.1040707@oracle.com> Fixed (now public). -- Kevin Dr. Michael Paus wrote: > It is not easy to comment on this if RT-19994 is kept secret. > > Am 09.05.2012 17:44, schrieb Lubomir Nerad: >> Hi, >> >> I would like to change mouse picking behavior of objects with dashed >> stroke as described in http://javafx-jira.kenai.com/browse/RT-20302. >> Currently an object is picked even when the mouse click happens in >> the non-filled parts (inside spaces) of the dashed stroke (stroke >> dash array and dash offset have no impact on picking). With RT-19994, >> this can create an unexpected situation, when a Shape is picked >> inside stroke spaces, but if it is used in a CAG operation (for >> example Shape.intersect(shape1, shape1)) the resulting Shape won't >> include the spaces and so won't be picked inside of them. To get >> consistent behavior I propose not to pick the spaces inside object >> stokes. >> >> Do you agree? >> >> Thanks, >> Lubo >> > > From kevin.rushforth at oracle.com Wed May 9 09:10:27 2012 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 09 May 2012 09:10:27 -0700 Subject: RT-20302: Consider changing picking behavior of dashed strokes In-Reply-To: <4FAA90D1.5040400@oracle.com> References: <4FAA90D1.5040400@oracle.com> Message-ID: <4FAA96F3.6010304@oracle.com> +1 Lubomir Nerad wrote: > Hi, > > I would like to change mouse picking behavior of objects with dashed > stroke as described in http://javafx-jira.kenai.com/browse/RT-20302. > Currently an object is picked even when the mouse click happens in the > non-filled parts (inside spaces) of the dashed stroke (stroke dash > array and dash offset have no impact on picking). With RT-19994, this > can create an unexpected situation, when a Shape is picked inside > stroke spaces, but if it is used in a CAG operation (for example > Shape.intersect(shape1, shape1)) the resulting Shape won't include the > spaces and so won't be picked inside of them. To get consistent > behavior I propose not to pick the spaces inside object stokes. > > Do you agree? > > Thanks, > Lubo > From joseph.andresen at oracle.com Wed May 9 09:22:52 2012 From: joseph.andresen at oracle.com (joe andresen) Date: Wed, 09 May 2012 09:22:52 -0700 Subject: API Review: ImagePattern In-Reply-To: References: <4FA9A5A1.1080906@oracle.com> <4FA9A95D.5080301@oracle.com> Message-ID: <4FAA99DC.7040903@oracle.com> Hey Rich, > Looks good. I hope there are javadocs for the class& constructors as well :-). Agreed. > The class should probably be final, like RadialGradient, LinearGradient, and Color. Agreed. Thanks for the feedback. -J From kevin.rushforth at oracle.com Wed May 9 09:39:23 2012 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 09 May 2012 09:39:23 -0700 Subject: API Review: ImagePattern In-Reply-To: <4FAA99DC.7040903@oracle.com> References: <4FA9A5A1.1080906@oracle.com> <4FA9A95D.5080301@oracle.com> <4FAA99DC.7040903@oracle.com> Message-ID: <4FAA9DBB.7050907@oracle.com> Btw, I just checked and LinearGradient and RadialGradient are final classes, but Color is not final, and apparently never has been. Seems like an oversight and Color should be final, too (although it would techincally be an incompatible change to make it final now). -- Kevin joe andresen wrote: > Hey Rich, > >> Looks good. I hope there are javadocs for the class& constructors as >> well :-). > Agreed. > >> The class should probably be final, like RadialGradient, >> LinearGradient, and Color. > Agreed. > > Thanks for the feedback. > > -J From hang.vo at oracle.com Wed May 9 09:48:52 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 09 May 2012 16:48:52 +0000 Subject: hg: openjfx/2.2/controls/rt: ColorPicker - pattern for transparent color. Message-ID: <20120509164853.C75D3471F3@hg.openjdk.java.net> Changeset: 29f4947ad2b4 Author: Paru Somashekar Date: 2012-05-09 09:39 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/29f4947ad2b4 ColorPicker - pattern for transparent color. + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/pattern-transparent.png From Richard.Bair at oracle.com Wed May 9 09:50:28 2012 From: Richard.Bair at oracle.com (Richard Bair) Date: Wed, 9 May 2012 09:50:28 -0700 Subject: API Review: ImagePattern In-Reply-To: <4FAA9DBB.7050907@oracle.com> References: <4FA9A5A1.1080906@oracle.com> <4FA9A95D.5080301@oracle.com> <4FAA99DC.7040903@oracle.com> <4FAA9DBB.7050907@oracle.com> Message-ID: <0369933A-D237-4BA1-BF0B-CEB9A434F0AF@oracle.com> Goodness sakes! On May 9, 2012, at 9:39 AM, Kevin Rushforth wrote: > Btw, I just checked and LinearGradient and RadialGradient are final classes, but Color is not final, and apparently never has been. Seems like an oversight and Color should be final, too (although it would techincally be an incompatible change to make it final now). > > -- Kevin > > > joe andresen wrote: >> Hey Rich, >> >>> Looks good. I hope there are javadocs for the class& constructors as well :-). >> Agreed. >> >>> The class should probably be final, like RadialGradient, LinearGradient, and Color. >> Agreed. >> >> Thanks for the feedback. >> >> -J From mp at jugs.org Wed May 9 09:54:43 2012 From: mp at jugs.org (Dr. Michael Paus) Date: Wed, 09 May 2012 18:54:43 +0200 Subject: RT-20302: Consider changing picking behavior of dashed strokes In-Reply-To: <4FAA90D1.5040400@oracle.com> References: <4FAA90D1.5040400@oracle.com> Message-ID: <4FAAA153.3060002@jugs.org> It is in general always a good idea to keep things consistent but one also has to keep in mind performance and the potential use-cases. So, how do you expect the picking performance to be affected by this change? Concerning use-cases. What is the expectation of a user? I have to admit that I would probably be surprised if I could not pick/select say a circle at some point of its obvious border only because the border happens to be dashed instead of being solid. Finally it all depends on how you want picking to behave in general. Is it a geometrical operation of a graphical operation. It's a pity that JavaFX does not offer us any choice here, because for some use-cases a geometrical interpretation, which is independent of the graphical appearance of a shape, is much better suited as I have outlined here: http://javafx-jira.kenai.com/browse/RT-20452 Michael Am 09.05.2012 17:44, schrieb Lubomir Nerad: > Hi, > > I would like to change mouse picking behavior of objects with dashed > stroke as described in http://javafx-jira.kenai.com/browse/RT-20302. > Currently an object is picked even when the mouse click happens in the > non-filled parts (inside spaces) of the dashed stroke (stroke dash > array and dash offset have no impact on picking). With RT-19994, this > can create an unexpected situation, when a Shape is picked inside > stroke spaces, but if it is used in a CAG operation (for example > Shape.intersect(shape1, shape1)) the resulting Shape won't include the > spaces and so won't be picked inside of them. To get consistent > behavior I propose not to pick the spaces inside object stokes. > > Do you agree? > > Thanks, > Lubo > -- -------------------------------------------------------------------------------------- Dr. Michael Paus, Chairman of the Java User Group Stuttgart e.V. (JUGS). For more information visit www.jugs.de. From lubomir.nerad at oracle.com Wed May 9 10:05:54 2012 From: lubomir.nerad at oracle.com (Lubomir Nerad) Date: Wed, 09 May 2012 19:05:54 +0200 Subject: RT-20302: Consider changing picking behavior of dashed strokes In-Reply-To: <1E54CDE0-E309-40F6-9BE9-22271088EFA3@oracle.com> References: <4FAA90D1.5040400@oracle.com> <1E54CDE0-E309-40F6-9BE9-22271088EFA3@oracle.com> Message-ID: <4FAAA3F2.7010801@oracle.com> Definitely more expensive than solid stoke case. Depends on how often we expect somebody will need dashed-stoked objects picking and how much information we cache with such strokes. Lubo On 5/9/2012 6:01 PM, Richard Bair wrote: > It seems like that would be quite expensive to figure out? > > On May 9, 2012, at 8:44 AM, Lubomir Nerad wrote: > >> Hi, >> >> I would like to change mouse picking behavior of objects with dashed stroke as described in http://javafx-jira.kenai.com/browse/RT-20302. Currently an object is picked even when the mouse click happens in the non-filled parts (inside spaces) of the dashed stroke (stroke dash array and dash offset have no impact on picking). With RT-19994, this can create an unexpected situation, when a Shape is picked inside stroke spaces, but if it is used in a CAG operation (for example Shape.intersect(shape1, shape1)) the resulting Shape won't include the spaces and so won't be picked inside of them. To get consistent behavior I propose not to pick the spaces inside object stokes. >> >> Do you agree? >> >> Thanks, >> Lubo >> From joshua at marinacci.org Wed May 9 10:35:40 2012 From: joshua at marinacci.org (Joshua Marinacci) Date: Wed, 9 May 2012 10:35:40 -0700 Subject: RT-20302: Consider changing picking behavior of dashed strokes In-Reply-To: <4FAAA153.3060002@jugs.org> References: <4FAA90D1.5040400@oracle.com> <4FAAA153.3060002@jugs.org> Message-ID: <7AFA861D-BCFF-4B33-BB3D-621BDEF25905@marinacci.org> In the olden days of java2d we wouldn't ask swing to do this for us. Instead we would grab the final outline from the dashed shape as another shape and do the calculation yourself. The problem with javafx is that we don't have such access ( at least without bringing in java2d apis. ) Sent from my iPhone On May 9, 2012, at 9:54 AM, "Dr. Michael Paus" wrote: > It is in general always a good idea to keep things consistent but one also has to keep in mind > performance and the potential use-cases. So, how do you expect the picking performance to be > affected by this change? Concerning use-cases. What is the expectation of a user? I have to admit > that I would probably be surprised if I could not pick/select say a circle at some point of its > obvious border only because the border happens to be dashed instead of being solid. > > Finally it all depends on how you want picking to behave in general. Is it a geometrical > operation of a graphical operation. It's a pity that JavaFX does not offer us any choice > here, because for some use-cases a geometrical interpretation, which is independent of > the graphical appearance of a shape, is much better suited as I have outlined here: > http://javafx-jira.kenai.com/browse/RT-20452 > > Michael > > > Am 09.05.2012 17:44, schrieb Lubomir Nerad: >> Hi, >> >> I would like to change mouse picking behavior of objects with dashed stroke as described in http://javafx-jira.kenai.com/browse/RT-20302. Currently an object is picked even when the mouse click happens in the non-filled parts (inside spaces) of the dashed stroke (stroke dash array and dash offset have no impact on picking). With RT-19994, this can create an unexpected situation, when a Shape is picked inside stroke spaces, but if it is used in a CAG operation (for example Shape.intersect(shape1, shape1)) the resulting Shape won't include the spaces and so won't be picked inside of them. To get consistent behavior I propose not to pick the spaces inside object stokes. >> >> Do you agree? >> >> Thanks, >> Lubo >> > > > -- > -------------------------------------------------------------------------------------- > Dr. Michael Paus, Chairman of the Java User Group Stuttgart e.V. (JUGS). > For more information visit www.jugs.de. > From joshua at marinacci.org Wed May 9 10:37:36 2012 From: joshua at marinacci.org (Joshua Marinacci) Date: Wed, 9 May 2012 10:37:36 -0700 Subject: API Review: ImagePattern In-Reply-To: <4FAA9DBB.7050907@oracle.com> References: <4FA9A5A1.1080906@oracle.com> <4FA9A95D.5080301@oracle.com> <4FAA99DC.7040903@oracle.com> <4FAA9DBB.7050907@oracle.com> Message-ID: <41CAC2C9-2E78-4529-AD90-818CF4CAFBD2@marinacci.org> Yep. A longstanding bug from the awt days. Ocassionally used to do some evil things. Sent from my iPhone On May 9, 2012, at 9:39 AM, Kevin Rushforth wrote: > Btw, I just checked and LinearGradient and RadialGradient are final classes, but Color is not final, and apparently never has been. Seems like an oversight and Color should be final, too (although it would techincally be an incompatible change to make it final now). > > -- Kevin > > > joe andresen wrote: >> Hey Rich, >> >>> Looks good. I hope there are javadocs for the class& constructors as well :-). >> Agreed. >> >>> The class should probably be final, like RadialGradient, LinearGradient, and Color. >> Agreed. >> >> Thanks for the feedback. >> >> -J From mp at jugs.org Wed May 9 11:43:43 2012 From: mp at jugs.org (Dr. Michael Paus) Date: Wed, 09 May 2012 20:43:43 +0200 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FAA8A38.6090706@oracle.com> References: <4FAA8A38.6090706@oracle.com> Message-ID: <4FAABADF.60703@jugs.org> Your last proposal looks promising but could you provide some more details? Will it, for example also be possible to apply the inverse transform of the local-to-scene transform? How is the currently existing Transform class hierarchy affected by these changes? Would it be possible to make the existing classes Translate, Rotate, etc. sub-classes of Affine? LG, Michael Am 09.05.2012 17:16, schrieb Pavel Safrata: > Hello, > I've been working on the local-to-scene transform > (http://javafx-jira.kenai.com/browse/RT-520). I have a prototype that > makes it an observable (read-only) property, registering for > invalidation notifications to parent only when somebody registers a > listener to it. This is nicer than a simple "compute" method - it > looks like a standard observable lazy property from user's point of view. > > The big question now is what the type of the property should be. The > first candidate is javafx.scene.transform.Affine. Unfortunately this > class has each element of the matrix as a property, which makes it > pretty impractical for that purpose. There are two options there: > - We can create a new Affine instance each time the transformation > changes (and somebody calls the getter). This way all the elements > would have to be immutable, so all their setters would need to throw > exceptions (ugly) and whole their observability would be just a > useless slowdown. > - Or we can keep the single instance and modify its elements. This way > user would have to register twelve listeners to be notified of > transformation changes. > None of those options seems good enough. > > We considered another option: creating a new class > TransformationMatrix. This class would be immutable and would contain > various methods for work with matrices. All the transforms would have > a getter that would return an instance of this class, the Affine class > would have also a setter. Now the localToSceneTransformation property > could be of type TransformationMatrix. This would spare us the above > problems and provide an independent class for matrix operations, but > on the other hand, converting transformations to the matrix and back > may be an unnecessary burden, also doing some complex matrix > computation with an immutable matrix class would result in pretty huge > garbage production (slowing down the computation). > > So we propose yet another approach. In the base Transform class, > introduce getters for all the elements of the transformation matrix > (not observable, just getters). Each transformation would be able to > return the values according to its current state. Our property would > then be of type Transform, allowing only for getting the matrix > values. This would make the property observable as a whole (creating a > new instance each time), unmodifiable, and would leave us with a > nicely open way to introduce the methods for matrix operations on the > Transform class, most of them probably returning the Affine instance > as a result, and the Affine class could then have a bunch of methods > to be modified in place. > > What do you think? > Thanks, > Pavel -- -------------------------------------------------------------------------------------- Dr. Michael Paus, Chairman of the Java User Group Stuttgart e.V. (JUGS). For more information visit www.jugs.de. From tom.schindl at bestsolution.at Wed May 9 15:27:20 2012 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Thu, 10 May 2012 00:27:20 +0200 Subject: Why is the windows runtime/sdk only provided as .exe In-Reply-To: <9F82B134-6E8E-474C-90AC-A656CBE4746D@bestsolution.at> References: <4F045E66.2020408@bestsolution.at> <4F047CCF.6080600@oracle.com> <4F047EA0.5060300@bestsolution.at> <4F048053.6010107@oracle.com> <4FA8F6CD.4000501@bestsolution.at> <4FA92244.8090202@oracle.com> <9F82B134-6E8E-474C-90AC-A656CBE4746D@bestsolution.at> Message-ID: <4FAAEF48.7010108@bestsolution.at> Hi Kevin, I'm replying here because I think more people who are interested in zips (e.g. anyone using maven!) are listening here. So you are stating in the bug that no zips will be provided anymore which I think is a very disappointing situation - I will and have to accept it. If you read through the mailing list threads how Richard, Jasper, ... advised to deploy JavaFX application they always stated that one should bundle it with the application (probably with the JRE which is a no go when we talk about Webstart). Without providing zips you force me to have: * Win32 * Mac OS X > 10.7.0 * Linux (in future) to extract the fxjar + native libs to repackage in my custom app. I know I need them anyways to test, ... but forcing me to do it manually instead of simply providing zip downloads is ridiculous (and because of the licensing stuff I one person in the world would have done and wants to share it with the rest of us he/she is not allowed). For me as a tooling vendor your current decision gives me headaches because I want and need to support multiple different SDK-Install-Styles: * Dev Preview install (done through zips with the structure in there) * JDK-7-Installs => Not sure how they look like and I'm unable to test because I only have OS-X 10.6.8 * JDK-6 When we take a look into the future this JDK-Exe install kind of thing is a deadend road because you'll stop viewing the JDK/JRE as an all in one thing installable through one .exe because of jigsaw. Anyways I appreciate that you took a look but I'm not happy with it and hope I can find a way around it until then I can only point people to the JIRA entry when they want to use e(fx)clipse os OS-X. Can anyone here tell me how the OS-X JDK-7-Installation structure looks like? Where am I supposed to find: * the javafxrt.jar * the dlls * the fx-javadoc Tom Am 08.05.12 15:43, schrieb Tom Schindl: > Haveing the SDK-zips will solve all my current problems. Thanks for taking a Look. > > Tom > > Von meinem iPhone gesendet > > Am 08.05.2012 um 15:40 schrieb Kevin Rushforth : > >> Hi Tom, >> >> I just looked and you are right...only see the .exe files were released for 2.1. I will check into this and get back to you. >> >> The Mac issue will be trickier since we don't have any tested / supported standalone bundles of JavaFX 2.1 on Mac. As a released product JavaFX 2.1 for Mac is only available as part of JDK 7u4. >> >> -- Kevin >> >> >> Tom Schindl wrote: >>> >>> Kevin - can you take a look at this once more? Since the 2.1 release the >>> zips for the SDKs are not available anymore! >>> >>> One can only download the one for 2.2 so it looks like the dev-release >>> site was adjusted but the GA site not. >>> >>> For those of use doing cross platform development and packaging JavaFX >>> with their apps getting geting the releases as zips is something really >>> important. >>> >>> Sidenote: Even worse because I'm still on OS-X 10.6.8 I can't even >>> install JavaFX because the JDK-7 release requires at least 10.7.0 (I >>> know you are not support JavaFX prior to JDK 7) >>> >>> Thanks >>> >>> Tom >>> >>> Am 04.01.12 17:37, schrieb Kevin Rushforth: >>> >>>> Oh, maybe we don't actually release the SDK on the public web page >>>> either (I knew we didn't release the runtime as a zip since we don't >>>> even generate it internally). >>>> >>>> -- Kevin >>>> >>>> >>>> Tom Schindl wrote: >>>> >>>>> Hi Kevin, >>>>> >>>>> Well maybe I'm blind but for win32 the there is NO zip available from >>>>> this page [1]. >>>>> >>>>> The only thing available currently as a zip is the OS-X SDK version >>>>> which misses the win32 native libs not? I'll file a JIRA. >>>>> >>>>> [1]http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.html >>>>> >>>>> >>>>> Am 04.01.12 17:22, schrieb Kevin Rushforth: >>>>> >>>>> >>>>>> Good question. The SDK is available as both an installer and a zip, and >>>>>> we could consider make the runtime available as a zip file as well, so >>>>>> please file a JIRA feature request for this. >>>>>> >>>>>> As for your other question, it is not currently possible to have 2.0.2 >>>>>> and 2.1 instaled side-by-side. >>>>>> >>>>>> -- Kevin >>>>>> >>>>>> >>>>>> Tom Schindl wrote: >>>>>> >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> Now that since 2.0.2 (and also 2.1) are redistributeable it might make >>>>>>> sense to provide them also as simple ZIP-Files. >>>>>>> >>>>>>> I find it odd that if I want to package JavaFX with my product that I >>>>>>> first have to install something only my system, navigate to the install >>>>>>> dir and copy over the stuff my own project directory. >>>>>>> >>>>>>> Is it BTW possible to have 2.1 and 2.0.2 installed next to each other? I >>>>>>> guess not which makes it hard to test with both versions on the same >>>>>>> system, which would be made much more easy if provided as simple >>>>>>> ZIP-Files. >>>>>>> >>>>>>> Would you mind providing JavaFX 2.1 binaries (and maybe also > 2.0.2) as >>>>>>> a simple zip-File like you do it with 2.1 OS-X ones? >>>>>>> >>>>>>> Tom >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>> >>>>> >>> >>> >>> -- B e s t S o l u t i o n . a t EDV Systemhaus GmbH ------------------------------------------------------------------------ tom schindl gesch?ftsf?hrer/CEO ------------------------------------------------------------------------ eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 http://www.BestSolution.at phone ++43 512 935834 From zonski at googlemail.com Wed May 9 15:51:27 2012 From: zonski at googlemail.com (Daniel Zwolenski) Date: Thu, 10 May 2012 08:51:27 +1000 Subject: Why is the windows runtime/sdk only provided as .exe In-Reply-To: <4FAAEF48.7010108@bestsolution.at> References: <4F045E66.2020408@bestsolution.at> <4F047CCF.6080600@oracle.com> <4F047EA0.5060300@bestsolution.at> <4F048053.6010107@oracle.com> <4FA8F6CD.4000501@bestsolution.at> <4FA92244.8090202@oracle.com> <9F82B134-6E8E-474C-90AC-A656CBE4746D@bestsolution.at> <4FAAEF48.7010108@bestsolution.at> Message-ID: +1 The deployment conversation went dead (again) so we're not moving forward but based on below it seems we are moving backwards. I'd just started exploring packaging options based around these zips but it seems that path is closed too. I wish I could understand the logic behind the lack of interest/urgency on all this. Do you guys not agree that it is important/urgent, not care or is just too hard? On 10/05/2012, at 8:27 AM, Tom Schindl wrote: > Hi Kevin, > > I'm replying here because I think more people who are interested in zips > (e.g. anyone using maven!) are listening here. > > So you are stating in the bug that no zips will be provided anymore > which I think is a very disappointing situation - I will and have to > accept it. > > If you read through the mailing list threads how Richard, Jasper, ... > advised to deploy JavaFX application they always stated that one should > bundle it with the application (probably with the JRE which is a no go > when we talk about Webstart). > > Without providing zips you force me to have: > * Win32 > * Mac OS X > 10.7.0 > * Linux (in future) > > to extract the fxjar + native libs to repackage in my custom app. I know > I need them anyways to test, ... but forcing me to do it manually > instead of simply providing zip downloads is ridiculous (and because of > the licensing stuff I one person in the world would have done and wants > to share it with the rest of us he/she is not allowed). > > For me as a tooling vendor your current decision gives me headaches > because I want and need to support multiple different SDK-Install-Styles: > * Dev Preview install (done through zips with the structure in there) > > * JDK-7-Installs > => Not sure how they look like and I'm unable to test because I only > have OS-X 10.6.8 > > * JDK-6 > > When we take a look into the future this JDK-Exe install kind of thing > is a deadend road because you'll stop viewing the JDK/JRE as an all in > one thing installable through one .exe because of jigsaw. > > Anyways I appreciate that you took a look but I'm not happy with it and > hope I can find a way around it until then I can only point people to > the JIRA entry when they want to use e(fx)clipse os OS-X. > > Can anyone here tell me how the OS-X JDK-7-Installation structure looks > like? Where am I supposed to find: > * the javafxrt.jar > * the dlls > * the fx-javadoc > > Tom > > Am 08.05.12 15:43, schrieb Tom Schindl: >> Haveing the SDK-zips will solve all my current problems. Thanks for taking a Look. >> >> Tom >> >> Von meinem iPhone gesendet >> >> Am 08.05.2012 um 15:40 schrieb Kevin Rushforth : >> >>> Hi Tom, >>> >>> I just looked and you are right...only see the .exe files were released for 2.1. I will check into this and get back to you. >>> >>> The Mac issue will be trickier since we don't have any tested / supported standalone bundles of JavaFX 2.1 on Mac. As a released product JavaFX 2.1 for Mac is only available as part of JDK 7u4. >>> >>> -- Kevin >>> >>> >>> Tom Schindl wrote: >>>> >>>> Kevin - can you take a look at this once more? Since the 2.1 release the >>>> zips for the SDKs are not available anymore! >>>> >>>> One can only download the one for 2.2 so it looks like the dev-release >>>> site was adjusted but the GA site not. >>>> >>>> For those of use doing cross platform development and packaging JavaFX >>>> with their apps getting geting the releases as zips is something really >>>> important. >>>> >>>> Sidenote: Even worse because I'm still on OS-X 10.6.8 I can't even >>>> install JavaFX because the JDK-7 release requires at least 10.7.0 (I >>>> know you are not support JavaFX prior to JDK 7) >>>> >>>> Thanks >>>> >>>> Tom >>>> >>>> Am 04.01.12 17:37, schrieb Kevin Rushforth: >>>> >>>>> Oh, maybe we don't actually release the SDK on the public web page >>>>> either (I knew we didn't release the runtime as a zip since we don't >>>>> even generate it internally). >>>>> >>>>> -- Kevin >>>>> >>>>> >>>>> Tom Schindl wrote: >>>>> >>>>>> Hi Kevin, >>>>>> >>>>>> Well maybe I'm blind but for win32 the there is NO zip available from >>>>>> this page [1]. >>>>>> >>>>>> The only thing available currently as a zip is the OS-X SDK version >>>>>> which misses the win32 native libs not? I'll file a JIRA. >>>>>> >>>>>> [1]http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.html >>>>>> >>>>>> >>>>>> Am 04.01.12 17:22, schrieb Kevin Rushforth: >>>>>> >>>>>> >>>>>>> Good question. The SDK is available as both an installer and a zip, and >>>>>>> we could consider make the runtime available as a zip file as well, so >>>>>>> please file a JIRA feature request for this. >>>>>>> >>>>>>> As for your other question, it is not currently possible to have 2.0.2 >>>>>>> and 2.1 instaled side-by-side. >>>>>>> >>>>>>> -- Kevin >>>>>>> >>>>>>> >>>>>>> Tom Schindl wrote: >>>>>>> >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> Now that since 2.0.2 (and also 2.1) are redistributeable it might make >>>>>>>> sense to provide them also as simple ZIP-Files. >>>>>>>> >>>>>>>> I find it odd that if I want to package JavaFX with my product that I >>>>>>>> first have to install something only my system, navigate to the install >>>>>>>> dir and copy over the stuff my own project directory. >>>>>>>> >>>>>>>> Is it BTW possible to have 2.1 and 2.0.2 installed next to each other? I >>>>>>>> guess not which makes it hard to test with both versions on the same >>>>>>>> system, which would be made much more easy if provided as simple >>>>>>>> ZIP-Files. >>>>>>>> >>>>>>>> Would you mind providing JavaFX 2.1 binaries (and maybe also > 2.0.2) as >>>>>>>> a simple zip-File like you do it with 2.1 OS-X ones? >>>>>>>> >>>>>>>> Tom >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>> >>>>>> >>>> >>>> >>>> > > > -- > B e s t S o l u t i o n . a t EDV Systemhaus GmbH > ------------------------------------------------------------------------ > tom schindl gesch?ftsf?hrer/CEO > ------------------------------------------------------------------------ > eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 > http://www.BestSolution.at phone ++43 512 935834 From kimtopley at gmail.com Wed May 9 15:58:17 2012 From: kimtopley at gmail.com (Kim Topley) Date: Wed, 9 May 2012 18:58:17 -0400 Subject: Why is the windows runtime/sdk only provided as .exe In-Reply-To: <4FAAEF48.7010108@bestsolution.at> References: <4F045E66.2020408@bestsolution.at> <4F047CCF.6080600@oracle.com> <4F047EA0.5060300@bestsolution.at> <4F048053.6010107@oracle.com> <4FA8F6CD.4000501@bestsolution.at> <4FA92244.8090202@oracle.com> <9F82B134-6E8E-474C-90AC-A656CBE4746D@bestsolution.at> <4FAAEF48.7010108@bestsolution.at> Message-ID: The code goes to /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre/lib - I see jfxrt.jar and the JavaFX DLLs in there. I haven't downloaded the Javadoc package yet - I'll post again when I have done so. On Wed, May 9, 2012 at 6:27 PM, Tom Schindl wrote: > Hi Kevin, > > I'm replying here because I think more people who are interested in zips > (e.g. anyone using maven!) are listening here. > > So you are stating in the bug that no zips will be provided anymore > which I think is a very disappointing situation - I will and have to > accept it. > > If you read through the mailing list threads how Richard, Jasper, ... > advised to deploy JavaFX application they always stated that one should > bundle it with the application (probably with the JRE which is a no go > when we talk about Webstart). > > Without providing zips you force me to have: > * Win32 > * Mac OS X > 10.7.0 > * Linux (in future) > > to extract the fxjar + native libs to repackage in my custom app. I know > I need them anyways to test, ... but forcing me to do it manually > instead of simply providing zip downloads is ridiculous (and because of > the licensing stuff I one person in the world would have done and wants > to share it with the rest of us he/she is not allowed). > > For me as a tooling vendor your current decision gives me headaches > because I want and need to support multiple different SDK-Install-Styles: > * Dev Preview install (done through zips with the structure in there) > > * JDK-7-Installs > => Not sure how they look like and I'm unable to test because I only > have OS-X 10.6.8 > > * JDK-6 > > When we take a look into the future this JDK-Exe install kind of thing > is a deadend road because you'll stop viewing the JDK/JRE as an all in > one thing installable through one .exe because of jigsaw. > > Anyways I appreciate that you took a look but I'm not happy with it and > hope I can find a way around it until then I can only point people to > the JIRA entry when they want to use e(fx)clipse os OS-X. > > Can anyone here tell me how the OS-X JDK-7-Installation structure looks > like? Where am I supposed to find: > * the javafxrt.jar > * the dlls > * the fx-javadoc > > Tom > > Am 08.05.12 15:43, schrieb Tom Schindl: > > Haveing the SDK-zips will solve all my current problems. Thanks for > taking a Look. > > > > Tom > > > > Von meinem iPhone gesendet > > > > Am 08.05.2012 um 15:40 schrieb Kevin Rushforth < > kevin.rushforth at oracle.com>: > > > >> Hi Tom, > >> > >> I just looked and you are right...only see the .exe files were released > for 2.1. I will check into this and get back to you. > >> > >> The Mac issue will be trickier since we don't have any tested / > supported standalone bundles of JavaFX 2.1 on Mac. As a released product > JavaFX 2.1 for Mac is only available as part of JDK 7u4. > >> > >> -- Kevin > >> > >> > >> Tom Schindl wrote: > >>> > >>> Kevin - can you take a look at this once more? Since the 2.1 release > the > >>> zips for the SDKs are not available anymore! > >>> > >>> One can only download the one for 2.2 so it looks like the dev-release > >>> site was adjusted but the GA site not. > >>> > >>> For those of use doing cross platform development and packaging JavaFX > >>> with their apps getting geting the releases as zips is something really > >>> important. > >>> > >>> Sidenote: Even worse because I'm still on OS-X 10.6.8 I can't even > >>> install JavaFX because the JDK-7 release requires at least 10.7.0 (I > >>> know you are not support JavaFX prior to JDK 7) > >>> > >>> Thanks > >>> > >>> Tom > >>> > >>> Am 04.01.12 17:37, schrieb Kevin Rushforth: > >>> > >>>> Oh, maybe we don't actually release the SDK on the public web page > >>>> either (I knew we didn't release the runtime as a zip since we don't > >>>> even generate it internally). > >>>> > >>>> -- Kevin > >>>> > >>>> > >>>> Tom Schindl wrote: > >>>> > >>>>> Hi Kevin, > >>>>> > >>>>> Well maybe I'm blind but for win32 the there is NO zip available from > >>>>> this page [1]. > >>>>> > >>>>> The only thing available currently as a zip is the OS-X SDK version > >>>>> which misses the win32 native libs not? I'll file a JIRA. > >>>>> > >>>>> [1] > http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.html > >>>>> > >>>>> > >>>>> Am 04.01.12 17:22, schrieb Kevin Rushforth: > >>>>> > >>>>> > >>>>>> Good question. The SDK is available as both an installer and a zip, > and > >>>>>> we could consider make the runtime available as a zip file as well, > so > >>>>>> please file a JIRA feature request for this. > >>>>>> > >>>>>> As for your other question, it is not currently possible to have > 2.0.2 > >>>>>> and 2.1 instaled side-by-side. > >>>>>> > >>>>>> -- Kevin > >>>>>> > >>>>>> > >>>>>> Tom Schindl wrote: > >>>>>> > >>>>>> > >>>>>>> Hi, > >>>>>>> > >>>>>>> Now that since 2.0.2 (and also 2.1) are redistributeable it might > make > >>>>>>> sense to provide them also as simple ZIP-Files. > >>>>>>> > >>>>>>> I find it odd that if I want to package JavaFX with my product > that I > >>>>>>> first have to install something only my system, navigate to the > install > >>>>>>> dir and copy over the stuff my own project directory. > >>>>>>> > >>>>>>> Is it BTW possible to have 2.1 and 2.0.2 installed next to each > other? I > >>>>>>> guess not which makes it hard to test with both versions on the > same > >>>>>>> system, which would be made much more easy if provided as simple > >>>>>>> ZIP-Files. > >>>>>>> > >>>>>>> Would you mind providing JavaFX 2.1 binaries (and maybe also > > 2.0.2) as > >>>>>>> a simple zip-File like you do it with 2.1 OS-X ones? > >>>>>>> > >>>>>>> Tom > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>> > >>>>> > >>> > >>> > >>> > > > -- > B e s t S o l u t i o n . a t EDV Systemhaus GmbH > ------------------------------------------------------------------------ > tom schindl gesch?ftsf?hrer/CEO > ------------------------------------------------------------------------ > eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 > http://www.BestSolution.at phone ++43 512 935834 > From kimtopley at gmail.com Wed May 9 16:02:51 2012 From: kimtopley at gmail.com (Kim Topley) Date: Wed, 9 May 2012 19:02:51 -0400 Subject: Why is the windows runtime/sdk only provided as .exe In-Reply-To: References: <4F045E66.2020408@bestsolution.at> <4F047CCF.6080600@oracle.com> <4F047EA0.5060300@bestsolution.at> <4F048053.6010107@oracle.com> <4FA8F6CD.4000501@bestsolution.at> <4FA92244.8090202@oracle.com> <9F82B134-6E8E-474C-90AC-A656CBE4746D@bestsolution.at> <4FAAEF48.7010108@bestsolution.at> Message-ID: As far as I can see, there is no JavaFX API documentation included. On Wed, May 9, 2012 at 6:58 PM, Kim Topley wrote: > The code goes to > /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre/lib - I see > jfxrt.jar and the JavaFX DLLs in there. I haven't downloaded the Javadoc > package yet - I'll post again when I have done so. > > > On Wed, May 9, 2012 at 6:27 PM, Tom Schindl wrote: > >> Hi Kevin, >> >> I'm replying here because I think more people who are interested in zips >> (e.g. anyone using maven!) are listening here. >> >> So you are stating in the bug that no zips will be provided anymore >> which I think is a very disappointing situation - I will and have to >> accept it. >> >> If you read through the mailing list threads how Richard, Jasper, ... >> advised to deploy JavaFX application they always stated that one should >> bundle it with the application (probably with the JRE which is a no go >> when we talk about Webstart). >> >> Without providing zips you force me to have: >> * Win32 >> * Mac OS X > 10.7.0 >> * Linux (in future) >> >> to extract the fxjar + native libs to repackage in my custom app. I know >> I need them anyways to test, ... but forcing me to do it manually >> instead of simply providing zip downloads is ridiculous (and because of >> the licensing stuff I one person in the world would have done and wants >> to share it with the rest of us he/she is not allowed). >> >> For me as a tooling vendor your current decision gives me headaches >> because I want and need to support multiple different SDK-Install-Styles: >> * Dev Preview install (done through zips with the structure in there) >> >> * JDK-7-Installs >> => Not sure how they look like and I'm unable to test because I only >> have OS-X 10.6.8 >> >> * JDK-6 >> >> When we take a look into the future this JDK-Exe install kind of thing >> is a deadend road because you'll stop viewing the JDK/JRE as an all in >> one thing installable through one .exe because of jigsaw. >> >> Anyways I appreciate that you took a look but I'm not happy with it and >> hope I can find a way around it until then I can only point people to >> the JIRA entry when they want to use e(fx)clipse os OS-X. >> >> Can anyone here tell me how the OS-X JDK-7-Installation structure looks >> like? Where am I supposed to find: >> * the javafxrt.jar >> * the dlls >> * the fx-javadoc >> >> Tom >> >> Am 08.05.12 15:43, schrieb Tom Schindl: >> > Haveing the SDK-zips will solve all my current problems. Thanks for >> taking a Look. >> > >> > Tom >> > >> > Von meinem iPhone gesendet >> > >> > Am 08.05.2012 um 15:40 schrieb Kevin Rushforth < >> kevin.rushforth at oracle.com>: >> > >> >> Hi Tom, >> >> >> >> I just looked and you are right...only see the .exe files were >> released for 2.1. I will check into this and get back to you. >> >> >> >> The Mac issue will be trickier since we don't have any tested / >> supported standalone bundles of JavaFX 2.1 on Mac. As a released product >> JavaFX 2.1 for Mac is only available as part of JDK 7u4. >> >> >> >> -- Kevin >> >> >> >> >> >> Tom Schindl wrote: >> >>> >> >>> Kevin - can you take a look at this once more? Since the 2.1 release >> the >> >>> zips for the SDKs are not available anymore! >> >>> >> >>> One can only download the one for 2.2 so it looks like the dev-release >> >>> site was adjusted but the GA site not. >> >>> >> >>> For those of use doing cross platform development and packaging JavaFX >> >>> with their apps getting geting the releases as zips is something >> really >> >>> important. >> >>> >> >>> Sidenote: Even worse because I'm still on OS-X 10.6.8 I can't even >> >>> install JavaFX because the JDK-7 release requires at least 10.7.0 (I >> >>> know you are not support JavaFX prior to JDK 7) >> >>> >> >>> Thanks >> >>> >> >>> Tom >> >>> >> >>> Am 04.01.12 17:37, schrieb Kevin Rushforth: >> >>> >> >>>> Oh, maybe we don't actually release the SDK on the public web page >> >>>> either (I knew we didn't release the runtime as a zip since we don't >> >>>> even generate it internally). >> >>>> >> >>>> -- Kevin >> >>>> >> >>>> >> >>>> Tom Schindl wrote: >> >>>> >> >>>>> Hi Kevin, >> >>>>> >> >>>>> Well maybe I'm blind but for win32 the there is NO zip available >> from >> >>>>> this page [1]. >> >>>>> >> >>>>> The only thing available currently as a zip is the OS-X SDK version >> >>>>> which misses the win32 native libs not? I'll file a JIRA. >> >>>>> >> >>>>> [1] >> http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.html >> >>>>> >> >>>>> >> >>>>> Am 04.01.12 17:22, schrieb Kevin Rushforth: >> >>>>> >> >>>>> >> >>>>>> Good question. The SDK is available as both an installer and a >> zip, and >> >>>>>> we could consider make the runtime available as a zip file as >> well, so >> >>>>>> please file a JIRA feature request for this. >> >>>>>> >> >>>>>> As for your other question, it is not currently possible to have >> 2.0.2 >> >>>>>> and 2.1 instaled side-by-side. >> >>>>>> >> >>>>>> -- Kevin >> >>>>>> >> >>>>>> >> >>>>>> Tom Schindl wrote: >> >>>>>> >> >>>>>> >> >>>>>>> Hi, >> >>>>>>> >> >>>>>>> Now that since 2.0.2 (and also 2.1) are redistributeable it might >> make >> >>>>>>> sense to provide them also as simple ZIP-Files. >> >>>>>>> >> >>>>>>> I find it odd that if I want to package JavaFX with my product >> that I >> >>>>>>> first have to install something only my system, navigate to the >> install >> >>>>>>> dir and copy over the stuff my own project directory. >> >>>>>>> >> >>>>>>> Is it BTW possible to have 2.1 and 2.0.2 installed next to each >> other? I >> >>>>>>> guess not which makes it hard to test with both versions on the >> same >> >>>>>>> system, which would be made much more easy if provided as simple >> >>>>>>> ZIP-Files. >> >>>>>>> >> >>>>>>> Would you mind providing JavaFX 2.1 binaries (and maybe also > >> 2.0.2) as >> >>>>>>> a simple zip-File like you do it with 2.1 OS-X ones? >> >>>>>>> >> >>>>>>> Tom >> >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>> >> >>>>> >> >>> >> >>> >> >>> >> >> >> -- >> B e s t S o l u t i o n . a t EDV Systemhaus GmbH >> ------------------------------------------------------------------------ >> tom schindl gesch?ftsf?hrer/CEO >> ------------------------------------------------------------------------ >> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 >> http://www.BestSolution.at phone ++43 512 935834 >> > > From tom.schindl at bestsolution.at Wed May 9 16:09:29 2012 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Thu, 10 May 2012 01:09:29 +0200 Subject: Why is the windows runtime/sdk only provided as .exe In-Reply-To: References: <4F045E66.2020408@bestsolution.at> <4F047CCF.6080600@oracle.com> <4F047EA0.5060300@bestsolution.at> <4F048053.6010107@oracle.com> <4FA8F6CD.4000501@bestsolution.at> <4FA92244.8090202@oracle.com> <9F82B134-6E8E-474C-90AC-A656CBE4746D@bestsolution.at> <4FAAEF48.7010108@bestsolution.at> Message-ID: <4FAAF929.4090902@bestsolution.at> So no argument completion, no JavaDoc-Hovers in IDEs! I decided to buy an OS-X upgrade for my Mac but without offline JavaDoc using FX inside eclipse is half the fun. Thanks Tom Am 10.05.12 01:02, schrieb Kim Topley: > As far as I can see, there is no JavaFX API documentation included. > > On Wed, May 9, 2012 at 6:58 PM, Kim Topley > wrote: > > The code goes to > /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre/lib - > I see jfxrt.jar and the JavaFX DLLs in there. I haven't downloaded > the Javadoc package yet - I'll post again when I have done so. > > > On Wed, May 9, 2012 at 6:27 PM, Tom Schindl > > > wrote: > > Hi Kevin, > > I'm replying here because I think more people who are interested > in zips > (e.g. anyone using maven!) are listening here. > > So you are stating in the bug that no zips will be provided anymore > which I think is a very disappointing situation - I will and have to > accept it. > > If you read through the mailing list threads how Richard, > Jasper, ... > advised to deploy JavaFX application they always stated that one > should > bundle it with the application (probably with the JRE which is a > no go > when we talk about Webstart). > > Without providing zips you force me to have: > * Win32 > * Mac OS X > 10.7.0 > * Linux (in future) > > to extract the fxjar + native libs to repackage in my custom > app. I know > I need them anyways to test, ... but forcing me to do it manually > instead of simply providing zip downloads is ridiculous (and > because of > the licensing stuff I one person in the world would have done > and wants > to share it with the rest of us he/she is not allowed). > > For me as a tooling vendor your current decision gives me headaches > because I want and need to support multiple different > SDK-Install-Styles: > * Dev Preview install (done through zips with the structure in > there) > > * JDK-7-Installs > => Not sure how they look like and I'm unable to test because I > only > have OS-X 10.6.8 > > * JDK-6 > > When we take a look into the future this JDK-Exe install kind of > thing > is a deadend road because you'll stop viewing the JDK/JRE as an > all in > one thing installable through one .exe because of jigsaw. > > Anyways I appreciate that you took a look but I'm not happy with > it and > hope I can find a way around it until then I can only point > people to > the JIRA entry when they want to use e(fx)clipse os OS-X. > > Can anyone here tell me how the OS-X JDK-7-Installation > structure looks > like? Where am I supposed to find: > * the javafxrt.jar > * the dlls > * the fx-javadoc > > Tom > > Am 08.05.12 15:43, schrieb Tom Schindl: > > Haveing the SDK-zips will solve all my current problems. > Thanks for taking a Look. > > > > Tom > > > > Von meinem iPhone gesendet > > > > Am 08.05.2012 um 15:40 schrieb Kevin Rushforth > >: > > > >> Hi Tom, > >> > >> I just looked and you are right...only see the .exe files > were released for 2.1. I will check into this and get back to you. > >> > >> The Mac issue will be trickier since we don't have any tested > / supported standalone bundles of JavaFX 2.1 on Mac. As a > released product JavaFX 2.1 for Mac is only available as part of > JDK 7u4. > >> > >> -- Kevin > >> > >> > >> Tom Schindl wrote: > >>> > >>> Kevin - can you take a look at this once more? Since the 2.1 > release the > >>> zips for the SDKs are not available anymore! > >>> > >>> One can only download the one for 2.2 so it looks like the > dev-release > >>> site was adjusted but the GA site not. > >>> > >>> For those of use doing cross platform development and > packaging JavaFX > >>> with their apps getting geting the releases as zips is > something really > >>> important. > >>> > >>> Sidenote: Even worse because I'm still on OS-X 10.6.8 I > can't even > >>> install JavaFX because the JDK-7 release requires at least > 10.7.0 (I > >>> know you are not support JavaFX prior to JDK 7) > >>> > >>> Thanks > >>> > >>> Tom > >>> > >>> Am 04.01.12 17:37, schrieb Kevin Rushforth: > >>> > >>>> Oh, maybe we don't actually release the SDK on the public > web page > >>>> either (I knew we didn't release the runtime as a zip since > we don't > >>>> even generate it internally). > >>>> > >>>> -- Kevin > >>>> > >>>> > >>>> Tom Schindl wrote: > >>>> > >>>>> Hi Kevin, > >>>>> > >>>>> Well maybe I'm blind but for win32 the there is NO zip > available from > >>>>> this page [1]. > >>>>> > >>>>> The only thing available currently as a zip is the OS-X > SDK version > >>>>> which misses the win32 native libs not? I'll file a JIRA. > >>>>> > >>>>> > [1]http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.html > >>>>> > >>>>> > >>>>> Am 04.01.12 17:22, schrieb Kevin Rushforth: > >>>>> > >>>>> > >>>>>> Good question. The SDK is available as both an installer > and a zip, and > >>>>>> we could consider make the runtime available as a zip > file as well, so > >>>>>> please file a JIRA feature request for this. > >>>>>> > >>>>>> As for your other question, it is not currently possible > to have 2.0.2 > >>>>>> and 2.1 instaled side-by-side. > >>>>>> > >>>>>> -- Kevin > >>>>>> > >>>>>> > >>>>>> Tom Schindl wrote: > >>>>>> > >>>>>> > >>>>>>> Hi, > >>>>>>> > >>>>>>> Now that since 2.0.2 (and also 2.1) are redistributeable > it might make > >>>>>>> sense to provide them also as simple ZIP-Files. > >>>>>>> > >>>>>>> I find it odd that if I want to package JavaFX with my > product that I > >>>>>>> first have to install something only my system, navigate > to the install > >>>>>>> dir and copy over the stuff my own project directory. > >>>>>>> > >>>>>>> Is it BTW possible to have 2.1 and 2.0.2 installed next > to each other? I > >>>>>>> guess not which makes it hard to test with both versions > on the same > >>>>>>> system, which would be made much more easy if provided > as simple > >>>>>>> ZIP-Files. > >>>>>>> > >>>>>>> Would you mind providing JavaFX 2.1 binaries (and maybe > also > 2.0.2) as > >>>>>>> a simple zip-File like you do it with 2.1 OS-X ones? > >>>>>>> > >>>>>>> Tom > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>> > >>>>> > >>> > >>> > >>> > > > -- > B e s t S o l u t i o n . a t EDV > Systemhaus GmbH > ------------------------------------------------------------------------ > tom schindl gesch?ftsf?hrer/CEO > ------------------------------------------------------------------------ > eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 > 512 935833 > http://www.BestSolution.at phone ++43 > 512 935834 > > > -- B e s t S o l u t i o n . a t EDV Systemhaus GmbH ------------------------------------------------------------------------ tom schindl gesch?ftsf?hrer/CEO ------------------------------------------------------------------------ eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 http://www.BestSolution.at phone ++43 512 935834 From richard.bair at oracle.com Wed May 9 16:43:37 2012 From: richard.bair at oracle.com (Richard Bair) Date: Wed, 9 May 2012 16:43:37 -0700 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FAA8A38.6090706@oracle.com> References: <4FAA8A38.6090706@oracle.com> Message-ID: That seems very reasonable to me. I like that the Transform class does not itself imply mutability, so having immutable subtypes seems reasonable. I think this does need to be clearly specified whether the type of the localToScene transform property is immutable or mutable. I'd like to get Jim to comment on this proposal. Richard On May 9, 2012, at 8:16 AM, Pavel Safrata wrote: > Hello, > I've been working on the local-to-scene transform (http://javafx-jira.kenai.com/browse/RT-520). I have a prototype that makes it an observable (read-only) property, registering for invalidation notifications to parent only when somebody registers a listener to it. This is nicer than a simple "compute" method - it looks like a standard observable lazy property from user's point of view. > > The big question now is what the type of the property should be. The first candidate is javafx.scene.transform.Affine. Unfortunately this class has each element of the matrix as a property, which makes it pretty impractical for that purpose. There are two options there: > - We can create a new Affine instance each time the transformation changes (and somebody calls the getter). This way all the elements would have to be immutable, so all their setters would need to throw exceptions (ugly) and whole their observability would be just a useless slowdown > - Or we can keep the single instance and modify its elements. This way user would have to register twelve listeners to be notified of transformation changes. > None of those options seems good enough. > > We considered another option: creating a new class TransformationMatrix. This class would be immutable and would contain various methods for work with matrices. All the transforms would have a getter that would return an instance of this class, the Affine class would have also a setter. Now the localToSceneTransformation property could be of type TransformationMatrix. This would spare us the above problems and provide an independent class for matrix operations, but on the other hand, converting transformations to the matrix and back may be an unnecessary burden, also doing some complex matrix computation with an immutable matrix class would result in pretty huge garbage production (slowing down the computation). > > So we propose yet another approach. In the base Transform class, introduce getters for all the elements of the transformation matrix (not observable, just getters). Each transformation would be able to return the values according to its current state. Our property would then be of type Transform, allowing only for getting the matrix values. This would make the property observable as a whole (creating a new instance each time), unmodifiable, and would leave us with a nicely open way to introduce the methods for matrix operations on the Transform class, most of them probably returning the Affine instance as a result, and the Affine class could then have a bunch of methods to be modified in place. > > What do you think? > Thanks, > Pavel From richard.bair at oracle.com Wed May 9 17:07:05 2012 From: richard.bair at oracle.com (Richard Bair) Date: Wed, 9 May 2012 17:07:05 -0700 Subject: API Review: ImagePattern In-Reply-To: <41CAC2C9-2E78-4529-AD90-818CF4CAFBD2@marinacci.org> References: <4FA9A5A1.1080906@oracle.com> <4FA9A95D.5080301@oracle.com> <4FAA99DC.7040903@oracle.com> <4FAA9DBB.7050907@oracle.com> <41CAC2C9-2E78-4529-AD90-818CF4CAFBD2@marinacci.org> Message-ID: getRed, etc are all final, but getHue, etc are not (!!). I actually don't mind Color being non final if the getters are all final. The problem is that non-final getters means somebody could subclass and make mutable color objects (like Jasper and I did for Nimbus, ahem). Kevin, I'm ok either way, but let's make sure the getters on all paints are final in case we later make them non-final classes we don't accidentally make it possible for mutable variants. On May 9, 2012, at 10:37 AM, Joshua Marinacci wrote: > Yep. A longstanding bug from the awt days. Ocassionally used to do some evil things. > > Sent from my iPhone > > On May 9, 2012, at 9:39 AM, Kevin Rushforth wrote: > >> Btw, I just checked and LinearGradient and RadialGradient are final classes, but Color is not final, and apparently never has been. Seems like an oversight and Color should be final, too (although it would techincally be an incompatible change to make it final now). >> >> -- Kevin >> >> >> joe andresen wrote: >>> Hey Rich, >>> >>>> Looks good. I hope there are javadocs for the class& constructors as well :-). >>> Agreed. >>> >>>> The class should probably be final, like RadialGradient, LinearGradient, and Color. >>> Agreed. >>> >>> Thanks for the feedback. >>> >>> -J From richard.bair at oracle.com Wed May 9 17:10:53 2012 From: richard.bair at oracle.com (Richard Bair) Date: Wed, 9 May 2012 17:10:53 -0700 Subject: API change RT-19955: Configuring a PopupWindow so that it consumes the event used for hiding In-Reply-To: <4FAA56A9.8030204@oracle.com> References: <4F9A8279.7070708@oracle.com> <4F9A8BC7.7000909@media-interactive.de> <4FA114C8.6050504@oracle.com> <4FAA56A9.8030204@oracle.com> Message-ID: <64DE710D-15C9-4C3D-ADFF-51AD872332B7@oracle.com> I tried the download pop up, and then clicking something outside the download popup. Do you see the same? On May 9, 2012, at 4:36 AM, Lubomir Nerad wrote: > On 5/7/2012 10:43 PM, Richard Bair wrote: >>>> Hi Lubo, >>>> >>>> why do you think that the name is ambiguous? Seems clear to me. Some >>>> other thoughts: >>> I don't remember how exactly the auto-hide feature for popups is implemented. Is it sometimes triggered from Glass ("ungrab" event)? What event will be consumed in this case? >>> >>> Are we confident we'll be able to implement this property? If a popup is auto-hidden from the ungrab event handler, there may be no direct connection between this event and the mouse/key/etc. event to consume. >> Before approving the API addition I guess we need to know the answer to this. Likewise, the default behavior I think is platform specific. At least in Safari, it seems that it does not consume mouse events by default that cause the popup to be closed. However I know Cocoa has an API for specifying what this behavior should be. If we add such an API, we probably will want to make sure it defaults to some platform specific value rather than always defaulting to "true" or "false"? >> > > The property only aims at controlling the events between the popup and its parent window. Ungrab events and possible mouse clicks which caused them (outside of the popup window and its parent window) can't be influenced in general (and probably shouldn't be). > > In Safari, it seems to me that the events are actually consumed. If you invoke preferences and in one tab page expand a combo box, then click on an another control in the same tab page, the function of that other control is not executed. Only if the interaction involves multiple windows, I can see that the event is not consumed. With the property we will control this behavior among controls / popups of a single window, while leaving the behavior between multiple windows OS dependent. > > Thanks, > Lubo > > > > From richard.bair at oracle.com Wed May 9 17:51:35 2012 From: richard.bair at oracle.com (Richard Bair) Date: Wed, 9 May 2012 17:51:35 -0700 Subject: API Review request for RT-19375 Pagination UI Control In-Reply-To: <4FA9CC61.7010506@oracle.com> References: <4F95DB6C.2070608@oracle.com> <4F95DC12.7060106@bestsolution.at> <4F95DC94.7080007@oracle.com> <4FA9C820.4050008@oracle.com> <4FA9CC61.7010506@oracle.com> Message-ID: I'm still not sold on the arrowVisible property. The main issue being that whether the arrows show or not might be skin specific or situation specific rather than something that is either on or off. I know you guys had a powwow today to iron things out, did this proposal change at all? Richard On May 8, 2012, at 6:46 PM, Jonathan Giles wrote: > Hey Kinsley, > > I presume there would also be a arrowVisibleProperty() as well? > > Also, I'm guessing the upper-case M was used mistakenly for the MaxPageIndicatorCountProperty() method (and javadoc)? > > -- Jonathan > > > On 9/05/2012 1:28 p.m., Kinsley Wong wrote: >> After talking to Jasper. We would like to add these two method to show or hide the arrow indicators. >> >> boolean isArrowsVisible() >> setArrowsVisible(boolean) >> >> Also we would like to rename the PageIndicatorCount property to MaxPageIndicatorCount. This is a better description the property. >> >> /** >> * The maximum number of page indicators to use for this pagination control. This >> * value must be greater than or equal to 1. The number of page indicators will be >> * reduced if MaxPageIndicatorCount cannot fit within this control. >> * >> * The default is 10 page indicators. >> */ >> public final IntegerProperty MaxPageIndicatorCountProperty() >> >> >> Kinsley >> >> On 4/25/2012 1:54 PM, Richard Bair wrote: >>> First off, although this API design is quite different than what I was initially expecting I think it is quite a bit better and more useful than what I had in mind. The API looks good to me. >>> >>>> I'd be keen to see the design docs too. >>> I've emailed Jindra to see if he can get the text& images uploaded and public (can't attach things to email or I'd just send it.) >>> >>>> One thought: is the use of an integer index the best way to reference >>>> pages? Creates some possible complexities when pages are added and removed. >>>> e.g. I want to jump to the 'details' tab, is this page 2 or 3? Perhaps a >>>> generic 'ID value' would be useful, then the developer can use integers, >>>> enums, strings or custom objects? I'm not sure either is best, just >>>> thinking out loud. >>> Personally I like the simplicity of the int. I think one of the differences between this and a TabPane is that it doesn't have names on pages. I'm thinking about, for example, search results with pages of data. Each page isn't closable. Pages are conceptually a serially stream that you pass through, rather than random access. >>> >>>> Interested why were animations assumed to be not included? Just for effort >>>> saving, or some other reason? >>> I think just for the effort -- we want animations to be specified via CSS and it isn't all there yet. That said, I would fully expect the swipe based navigation to stay with your finger, so it animates. Just upping Kinsley's complexity factor a bit :-) >>> >>>> I'm very interested in the page virtualisation stuff. What are the thoughts >>>> around this? The API uses a factory to create pages, but TabPane does not. >>>> What's the rationale behind this difference (not complaining, just >>>> wondering)? How/when will this be called (e.g. each time a page is shown, >>>> or the first time and then it is cached, etc)? If the tab changes does the >>>> page get notified that it is active/inactive? >>> Ya, I found this interesting as well because originally I was thinking Pagination was just a simple TabPane subclass with a different skin. But I really like what they did, because it really is a different beast (see above). So it isn't meant to be such a thing that the user directly interacts with to "close" a page, for example. They re-run their query or something in order to change the content (assuming it isn't static content). >>> >>>> What happens if the factory returns the same instance of a 'page' for two >>>> different tabs (is this allowed or an error)? >>> I'm not sure, good question. It seems like if you're going to get animated swipe like behavior then you will want to have two different nodes and then can just reuse them. But in any case I think it should be allowed to reuse node content between pages. Seems like for performance this would be a requirement on mobile / embedded devices. >>> >>>> Just thought of one thing with both TabPane and this - I'd like the ability >>>> to prevent the user from leaving the current tab. In the case of form >>>> entering if the user has entered some dodgy data I'd like to prevent them >>>> from changing tabs (e.g. intercept and consume the change tab event) until >>>> they fix the data up. Is this possible, should I file a separate JIRA? >>> That's a great requirement. Is there a JIRA already for the tab requirement? We should definitely have that. It would be great to have some events when the user leaves a page too. >>> >>> Thanks! >>> Richard From richard.bair at oracle.com Wed May 9 18:07:48 2012 From: richard.bair at oracle.com (Richard Bair) Date: Wed, 9 May 2012 18:07:48 -0700 Subject: API request: WebEngine settings In-Reply-To: <93D2BC90-576F-449C-ACD2-974A2CD39716@oracle.com> References: <948B6ECD-BB6B-45B7-A5DF-D6334136A1A8@oracle.com> <98850DE8-0666-4A73-96C8-896524C4FA5D@oracle.com> <93D2BC90-576F-449C-ACD2-974A2CD39716@oracle.com> Message-ID: <39A5B3EE-8C3C-4D40-8A12-F14613C18C51@oracle.com> Hi Peter, I gave it a few days to see if I'd change my mind but really I like adding the settings directly on WebEngine. I'm not bothered if a bunch of settings get put there. I am bothered by the fact that in FXML it is not a 1-1 mapping (ie, we alias from ). I'm wondering how this plays in SceneBuilder as well. Right now I don't think SB has any special support so you cannot set any web engine specific settings. As m inch as possible we want to keep the FXML / CSS / API in sync such that you can look at the API and know how to express something in FXML or CSS. That is, the process would be mechanical. So I would have thought: And likewise, if settings were a separate class, I would then have a WebSettings tag within the WebEngine tag. And in SB we would have to show that hierarchy as well. Does that make sense? By synthesizing a property on WebView, we now have to face resolving: What do we do? I think this illustrates one of the problems with not having a 1-1 mapping. So if we have WebSettings, then we have an extra level of nesting -- in code, in SB, and in FXML. This is why I have wondered about whether we ought not just roll these settings into WebEngine. Richard On Apr 27, 2012, at 5:47 AM, Peter Zhelezniakov wrote: > On Apr 26, 2012, at 6:53 PM, Richard Bair wrote: >> What is the benefit of having Settings vs adding properties to WebEngine? What would it look like from FXML? > > > Well, Webkit has 100+ different customizable settings. I don't think we need all of them, but I can imagine us having 20-30 settings (e.g. whether to load images, max number of network connections per server, turn page caching on/off, user agent ID string etc). So I thought a separate namespace for settings was appropriate. > > From FXML standpoint the single entry point for javafx.scene.web is currently WebView. It has a custom builder class that passes some properties to the underlying WebEngine, e.g. > calls webView.getEngine().setLocation(...); > and we can extend it so that > calls webEngine.getEngine().getSettings().setJavaScriptEnabled(true); > > Thanks! > -- > Peter > > From richard.bair at oracle.com Wed May 9 18:12:01 2012 From: richard.bair at oracle.com (Richard Bair) Date: Wed, 9 May 2012 18:12:01 -0700 Subject: API REVIEW request for RT-19042: Add fontSmoothingType API to WebView In-Reply-To: <25BEC692-D1FF-494D-829C-2ACE0947D910@oracle.com> References: <25BEC692-D1FF-494D-829C-2ACE0947D910@oracle.com> Message-ID: <0DB6630A-1601-4797-9047-98E7D63BAFDB@oracle.com> It seems like it should just be on by default. The controls all require FX CSS anyway, so it made sense to toggle it there (since we didn't want all text nodes to use LCD for performance reasons). I don't know that it makes sense to default to gray scale and require CSS to "fix" the default. Cheers Richard On May 7, 2012, at 9:49 PM, Peter Zhelezniakov wrote: > Hi Richard, > >> Looks fine. The one thing here is that the documentation states that it defaults to GRAY, but I think in WebView you want to default to LCD? > > (Sergey is on vacation now, so I'll take care of this request): > > Here we do the same thing Text node does, i.e. default to gray and override the default setting in CSS. This new property has the same meaning as Text.fontSmoothingType so we've decided to be consistent. > > Thanks! > -- > Peter From kinsley.wong at oracle.com Wed May 9 18:19:29 2012 From: kinsley.wong at oracle.com (Kinsley Wong) Date: Wed, 09 May 2012 18:19:29 -0700 Subject: API Review request for RT-19375 Pagination UI Control In-Reply-To: References: <4F95DB6C.2070608@oracle.com> <4F95DC12.7060106@bestsolution.at> <4F95DC94.7080007@oracle.com> <4FA9C820.4050008@oracle.com> <4FA9CC61.7010506@oracle.com> Message-ID: <4FAB17A1.7090406@oracle.com> Instead of adding arrowsVisibleProperty into Pagination.java. We decided to add it into PaginationSkin.java and will be only accessible via CSS -fx-arrows-visible: true or false. Kinsley On 5/9/2012 5:51 PM, Richard Bair wrote: > I'm still not sold on the arrowVisible property. The main issue being that whether the arrows show or not might be skin specific or situation specific rather than something that is either on or off. > > I know you guys had a powwow today to iron things out, did this proposal change at all? > > Richard > > On May 8, 2012, at 6:46 PM, Jonathan Giles wrote: > >> Hey Kinsley, >> >> I presume there would also be a arrowVisibleProperty() as well? >> >> Also, I'm guessing the upper-case M was used mistakenly for the MaxPageIndicatorCountProperty() method (and javadoc)? >> >> -- Jonathan >> >> >> On 9/05/2012 1:28 p.m., Kinsley Wong wrote: >>> After talking to Jasper. We would like to add these two method to show or hide the arrow indicators. >>> >>> boolean isArrowsVisible() >>> setArrowsVisible(boolean) >>> >>> Also we would like to rename the PageIndicatorCount property to MaxPageIndicatorCount. This is a better description the property. >>> >>> /** >>> * The maximum number of page indicators to use for this pagination control. This >>> * value must be greater than or equal to 1. The number of page indicators will be >>> * reduced if MaxPageIndicatorCount cannot fit within this control. >>> * >>> * The default is 10 page indicators. >>> */ >>> public final IntegerProperty MaxPageIndicatorCountProperty() >>> >>> >>> Kinsley >>> >>> On 4/25/2012 1:54 PM, Richard Bair wrote: >>>> First off, although this API design is quite different than what I was initially expecting I think it is quite a bit better and more useful than what I had in mind. The API looks good to me. >>>> >>>>> I'd be keen to see the design docs too. >>>> I've emailed Jindra to see if he can get the text& images uploaded and public (can't attach things to email or I'd just send it.) >>>> >>>>> One thought: is the use of an integer index the best way to reference >>>>> pages? Creates some possible complexities when pages are added and removed. >>>>> e.g. I want to jump to the 'details' tab, is this page 2 or 3? Perhaps a >>>>> generic 'ID value' would be useful, then the developer can use integers, >>>>> enums, strings or custom objects? I'm not sure either is best, just >>>>> thinking out loud. >>>> Personally I like the simplicity of the int. I think one of the differences between this and a TabPane is that it doesn't have names on pages. I'm thinking about, for example, search results with pages of data. Each page isn't closable. Pages are conceptually a serially stream that you pass through, rather than random access. >>>> >>>>> Interested why were animations assumed to be not included? Just for effort >>>>> saving, or some other reason? >>>> I think just for the effort -- we want animations to be specified via CSS and it isn't all there yet. That said, I would fully expect the swipe based navigation to stay with your finger, so it animates. Just upping Kinsley's complexity factor a bit :-) >>>> >>>>> I'm very interested in the page virtualisation stuff. What are the thoughts >>>>> around this? The API uses a factory to create pages, but TabPane does not. >>>>> What's the rationale behind this difference (not complaining, just >>>>> wondering)? How/when will this be called (e.g. each time a page is shown, >>>>> or the first time and then it is cached, etc)? If the tab changes does the >>>>> page get notified that it is active/inactive? >>>> Ya, I found this interesting as well because originally I was thinking Pagination was just a simple TabPane subclass with a different skin. But I really like what they did, because it really is a different beast (see above). So it isn't meant to be such a thing that the user directly interacts with to "close" a page, for example. They re-run their query or something in order to change the content (assuming it isn't static content). >>>> >>>>> What happens if the factory returns the same instance of a 'page' for two >>>>> different tabs (is this allowed or an error)? >>>> I'm not sure, good question. It seems like if you're going to get animated swipe like behavior then you will want to have two different nodes and then can just reuse them. But in any case I think it should be allowed to reuse node content between pages. Seems like for performance this would be a requirement on mobile / embedded devices. >>>> >>>>> Just thought of one thing with both TabPane and this - I'd like the ability >>>>> to prevent the user from leaving the current tab. In the case of form >>>>> entering if the user has entered some dodgy data I'd like to prevent them >>>>> from changing tabs (e.g. intercept and consume the change tab event) until >>>>> they fix the data up. Is this possible, should I file a separate JIRA? >>>> That's a great requirement. Is there a JIRA already for the tab requirement? We should definitely have that. It would be great to have some events when the user leaves a page too. >>>> >>>> Thanks! >>>> Richard From richard.bair at oracle.com Wed May 9 18:28:23 2012 From: richard.bair at oracle.com (Richard Bair) Date: Wed, 9 May 2012 18:28:23 -0700 Subject: API Review request for RT-19375 Pagination UI Control In-Reply-To: <4FAB17A1.7090406@oracle.com> References: <4F95DB6C.2070608@oracle.com> <4F95DC12.7060106@bestsolution.at> <4F95DC94.7080007@oracle.com> <4FA9C820.4050008@oracle.com> <4FA9CC61.7010506@oracle.com> <4FAB17A1.7090406@oracle.com> Message-ID: <80D688EB-9C9C-40A6-8341-1F70617648E3@oracle.com> Ok On May 9, 2012, at 6:19 PM, Kinsley Wong wrote: > Instead of adding arrowsVisibleProperty into Pagination.java. We decided to add it into PaginationSkin.java and will be only accessible via CSS > -fx-arrows-visible: true or false. > > Kinsley > > > > On 5/9/2012 5:51 PM, Richard Bair wrote: >> I'm still not sold on the arrowVisible property. The main issue being that whether the arrows show or not might be skin specific or situation specific rather than something that is either on or off. >> >> I know you guys had a powwow today to iron things out, did this proposal change at all? >> >> Richard >> >> On May 8, 2012, at 6:46 PM, Jonathan Giles wrote: >> >>> Hey Kinsley, >>> >>> I presume there would also be a arrowVisibleProperty() as well? >>> >>> Also, I'm guessing the upper-case M was used mistakenly for the MaxPageIndicatorCountProperty() method (and javadoc)? >>> >>> -- Jonathan >>> >>> >>> On 9/05/2012 1:28 p.m., Kinsley Wong wrote: >>>> After talking to Jasper. We would like to add these two method to show or hide the arrow indicators. >>>> >>>> boolean isArrowsVisible() >>>> setArrowsVisible(boolean) >>>> >>>> Also we would like to rename the PageIndicatorCount property to MaxPageIndicatorCount. This is a better description the property. >>>> >>>> /** >>>> * The maximum number of page indicators to use for this pagination control. This >>>> * value must be greater than or equal to 1. The number of page indicators will be >>>> * reduced if MaxPageIndicatorCount cannot fit within this control. >>>> * >>>> * The default is 10 page indicators. >>>> */ >>>> public final IntegerProperty MaxPageIndicatorCountProperty() >>>> >>>> >>>> Kinsley >>>> >>>> On 4/25/2012 1:54 PM, Richard Bair wrote: >>>>> First off, although this API design is quite different than what I was initially expecting I think it is quite a bit better and more useful than what I had in mind. The API looks good to me. >>>>> >>>>>> I'd be keen to see the design docs too. >>>>> I've emailed Jindra to see if he can get the text& images uploaded and public (can't attach things to email or I'd just send it.) >>>>> >>>>>> One thought: is the use of an integer index the best way to reference >>>>>> pages? Creates some possible complexities when pages are added and removed. >>>>>> e.g. I want to jump to the 'details' tab, is this page 2 or 3? Perhaps a >>>>>> generic 'ID value' would be useful, then the developer can use integers, >>>>>> enums, strings or custom objects? I'm not sure either is best, just >>>>>> thinking out loud. >>>>> Personally I like the simplicity of the int. I think one of the differences between this and a TabPane is that it doesn't have names on pages. I'm thinking about, for example, search results with pages of data. Each page isn't closable. Pages are conceptually a serially stream that you pass through, rather than random access. >>>>> >>>>>> Interested why were animations assumed to be not included? Just for effort >>>>>> saving, or some other reason? >>>>> I think just for the effort -- we want animations to be specified via CSS and it isn't all there yet. That said, I would fully expect the swipe based navigation to stay with your finger, so it animates. Just upping Kinsley's complexity factor a bit :-) >>>>> >>>>>> I'm very interested in the page virtualisation stuff. What are the thoughts >>>>>> around this? The API uses a factory to create pages, but TabPane does not. >>>>>> What's the rationale behind this difference (not complaining, just >>>>>> wondering)? How/when will this be called (e.g. each time a page is shown, >>>>>> or the first time and then it is cached, etc)? If the tab changes does the >>>>>> page get notified that it is active/inactive? >>>>> Ya, I found this interesting as well because originally I was thinking Pagination was just a simple TabPane subclass with a different skin. But I really like what they did, because it really is a different beast (see above). So it isn't meant to be such a thing that the user directly interacts with to "close" a page, for example. They re-run their query or something in order to change the content (assuming it isn't static content). >>>>> >>>>>> What happens if the factory returns the same instance of a 'page' for two >>>>>> different tabs (is this allowed or an error)? >>>>> I'm not sure, good question. It seems like if you're going to get animated swipe like behavior then you will want to have two different nodes and then can just reuse them. But in any case I think it should be allowed to reuse node content between pages. Seems like for performance this would be a requirement on mobile / embedded devices. >>>>> >>>>>> Just thought of one thing with both TabPane and this - I'd like the ability >>>>>> to prevent the user from leaving the current tab. In the case of form >>>>>> entering if the user has entered some dodgy data I'd like to prevent them >>>>>> from changing tabs (e.g. intercept and consume the change tab event) until >>>>>> they fix the data up. Is this possible, should I file a separate JIRA? >>>>> That's a great requirement. Is there a JIRA already for the tab requirement? We should definitely have that. It would be great to have some events when the user leaves a page too. >>>>> >>>>> Thanks! >>>>> Richard From hang.vo at oracle.com Wed May 9 18:45:50 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 10 May 2012 01:45:50 +0000 Subject: hg: openjfx/2.2/master/rt: 45 new changesets Message-ID: <20120510014624.ECD5F47212@hg.openjdk.java.net> Changeset: 66ba0daf77a7 Author: Paru Somashekar Date: 2012-04-30 16:38 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/66ba0daf77a7 fix RT-21124 ColorPicker setValue dont affect obviously. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPalette.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPickerSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/CustomColorDialog.java Changeset: d41e65ac94a5 Author: David Grieve Date: 2012-05-01 08:54 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/d41e65ac94a5 RT-20714: redo - added initializer to sync all styleable properties and redid the InvalidationListener. Now all the styleables are in sync. Also added a unit test. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/LabeledImpl.java + javafx-ui-controls/test/com/sun/javafx/scene/control/skin/LabeledImplTest.java Changeset: 6f138e004e5b Author: leifs Date: 2012-05-01 11:18 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/6f138e004e5b Fixed RT-10392: Allow the ellipsis for Labeled to be customizable ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/LabeledSkinBase.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/Utils.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/resources/controls.properties ! javafx-ui-controls/src/javafx/scene/control/Labeled.java Changeset: 4f81320ed486 Author: leifs Date: 2012-05-01 13:39 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/4f81320ed486 [TEST ONLY] Fix broken test. ! javafx-ui-controls/test/com/sun/javafx/scene/control/skin/LabeledImplTest.java Changeset: b4d1ce106712 Author: Kinsley Wong Date: 2012-05-01 13:42 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/b4d1ce106712 RT-21117: [Pagination] page indicator count can be done very large, so that selected page indicator is not shown. RT-21119: [Pagination] controls pref size doesn't affect, when it is less, then size of indicators. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/PaginationSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css Changeset: 9b05b030c354 Author: Paru Somashekar Date: 2012-05-01 16:21 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/9b05b030c354 fix RT-19709 API to enable accelerators lazily. ! javafx-ui-controls/nbproject/project.xml ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/MenuButtonSkinBase.java ! javafx-ui-controls/src/javafx/scene/control/Menu.java ! javafx-ui-controls/src/javafx/scene/control/MenuItem.java Changeset: fea9c6ae21cf Author: Paru Somashekar Date: 2012-05-01 16:31 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/fea9c6ae21cf Backed out changeset 9b05b030c354 ! javafx-ui-controls/nbproject/project.xml ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/MenuButtonSkinBase.java ! javafx-ui-controls/src/javafx/scene/control/Menu.java ! javafx-ui-controls/src/javafx/scene/control/MenuItem.java Changeset: 69d6942a96f6 Author: Paru Somashekar Date: 2012-05-01 16:34 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/69d6942a96f6 fix RT-19709 API to enable accelerators lazily. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/MenuButtonSkinBase.java ! javafx-ui-controls/src/javafx/scene/control/Menu.java ! javafx-ui-controls/src/javafx/scene/control/MenuItem.java Changeset: 23f0508a4f05 Author: Kinsley Wong Date: 2012-05-01 16:44 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/23f0508a4f05 RT-21166: Making a Tab closeable has no effect until you mouseover the Tab. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/TabPaneSkin.java Changeset: 79b5c12b47ab Author: David Grieve Date: 2012-05-01 23:46 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/79b5c12b47ab RT-18097: ensure default property value and initial css value agree. Added unit tests ! javafx-ui-common/src/com/sun/javafx/css/StyleableProperty.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/src/javafx/scene/layout/GridPane.java ! javafx-ui-common/src/javafx/scene/shape/Line.java ! javafx-ui-common/src/javafx/scene/shape/Path.java ! javafx-ui-common/src/javafx/scene/shape/Polyline.java ! javafx-ui-common/src/javafx/scene/shape/Shape.java ! javafx-ui-common/test/unit/com/sun/javafx/css/StyleablePropertyTest.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxListCell.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxTableCell.java ! javafx-ui-controls/src/javafx/scene/chart/Axis.java ! javafx-ui-controls/src/javafx/scene/control/Accordion.java ! javafx-ui-controls/src/javafx/scene/control/Cell.java ! javafx-ui-controls/src/javafx/scene/control/Control.java ! javafx-ui-controls/src/javafx/scene/control/Hyperlink.java ! javafx-ui-controls/src/javafx/scene/control/Label.java ! javafx-ui-controls/src/javafx/scene/control/Labeled.java ! javafx-ui-controls/src/javafx/scene/control/MenuBar.java ! javafx-ui-controls/src/javafx/scene/control/ProgressBar.java ! javafx-ui-controls/src/javafx/scene/control/ProgressIndicator.java ! javafx-ui-controls/src/javafx/scene/control/RadioButton.java ! javafx-ui-controls/src/javafx/scene/control/ScrollBar.java ! javafx-ui-controls/src/javafx/scene/control/ScrollPane.java ! javafx-ui-controls/src/javafx/scene/control/Separator.java ! javafx-ui-controls/src/javafx/scene/control/SplitPane.java ! javafx-ui-controls/src/javafx/scene/control/ToggleButton.java ! javafx-ui-controls/src/javafx/scene/control/ToolBar.java ! javafx-ui-controls/test/javafx/scene/control/ControlTest.java Changeset: 8196e66ed67a Author: Paru Somashekar Date: 2012-05-01 22:46 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/8196e66ed67a fix broken unit test ! javafx-ui-controls/src/javafx/scene/control/Menu.java Changeset: f36bc4562297 Author: Paru Somashekar Date: 2012-05-02 14:43 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/f36bc4562297 fix an issue with firing menu validation event. ! javafx-ui-controls/src/javafx/scene/control/Menu.java ! javafx-ui-controls/src/javafx/scene/control/MenuItem.java Changeset: 6d31db9184b6 Author: David Grieve Date: 2012-05-02 18:21 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/6d31db9184b6 RT-21292: style cache lookup is slow on deeply nested scenegraphs. rework style cache lookup to avoid array search. ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/test/unit/com/sun/javafx/css/Node_cssStyleMap_Test.java ! javafx-ui-common/test/unit/com/sun/javafx/css/StyleablePropertyTest.java Changeset: c94ff7a27a08 Author: leifs Date: 2012-05-03 10:31 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/c94ff7a27a08 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/MASTER/rt Changeset: 59ae894c63c3 Author: David Grieve Date: 2012-05-03 23:17 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/59ae894c63c3 RT-21292: fix for leaking CalculatedValue ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java Changeset: 83430f042b23 Author: David Grieve Date: 2012-05-03 23:41 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/83430f042b23 [DOCS-ONLY] add "SB-dependency: RT-XXXXX has been filed to track this" comment for css related impl_ methods that are used by SceneBuilder ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/src/javafx/scene/Parent.java ! javafx-ui-controls/src/javafx/scene/control/MenuItem.java ! javafx-ui-controls/src/javafx/scene/control/PopupControl.java ! javafx-ui-controls/src/javafx/scene/control/Tab.java Changeset: fc135f987a0c Author: David Grieve Date: 2012-05-04 00:41 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/fc135f987a0c RT-21185: only apply a css value if the new value is not equals the current value. ! javafx-ui-common/src/com/sun/javafx/css/StyleableProperty.java ! javafx-ui-common/test/unit/com/sun/javafx/css/StyleablePropertyTest.java Changeset: 365cde0469cd Author: Paru Somashekar Date: 2012-05-04 01:09 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/365cde0469cd ColorPicker changes including adding Tooltip, context menu to delete custom color. ! javafx-ui-controls/src/com/sun/javafx/scene/control/ColorPicker.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPalette.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPickerSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/CustomColorDialog.java Changeset: 1547cbd2e620 Author: mickf Date: 2012-05-04 17:49 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/1547cbd2e620 [DOCS-ONLY] added SB-dependency: RT-XXXXX has been filed to track this comment for css related impl_ methods that are used by SceneBuilder ! javafx-ui-common/src/javafx/scene/Scene.java Changeset: e894075f1b23 Author: mickf Date: 2012-05-04 18:57 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/e894075f1b23 RT-20779 : Scaling UI Controls down to QVGA: ScrollBar ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ScrollBarSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/Utils.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css Changeset: 9e562a96597c Author: mickf Date: 2012-05-04 19:03 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/9e562a96597c RT-20780 : Scaling UI Controls down to QVGA: ScrollPane ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ScrollPaneSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css ! javafx-ui-controls/test/com/sun/javafx/scene/control/skin/ScrollPaneSkinTest.java Changeset: 933c86201b73 Author: Paru Somashekar Date: 2012-05-04 14:54 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/933c86201b73 fix an issue where menu validation event handler was getting invoked only for menuitems and not for menu. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/MenuButtonSkinBase.java ! javafx-ui-controls/src/javafx/scene/control/Menu.java ! javafx-ui-controls/src/javafx/scene/control/MenuItem.java Changeset: 80393953c550 Author: leifs Date: 2012-05-06 13:00 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/80393953c550 Fixed RT-21273: [Virtual Keyboard] Implement Visual Design Specs for Virtual Keyboard ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/FXVK.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/FXVKSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/TextInputControlSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/resources/controls.properties Changeset: 14596f886092 Author: jgiles Date: 2012-05-07 10:30 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/14596f886092 RT-14909: It should be possible to customise the TableColumn header area more ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/TableColumnHeader.java ! javafx-ui-controls/src/javafx/scene/control/TableColumn.java Changeset: 4fcb410cd5a4 Author: jgiles Date: 2012-05-07 10:33 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/4fcb410cd5a4 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/controls/jfx/rt Changeset: fafecccffdea Author: leifs Date: 2012-05-06 21:09 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/fafecccffdea Images for RT-21273: [Virtual Keyboard] Implement Visual Design Specs for Virtual Keyboard + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/fxvk-backspace-button.png + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/fxvk-capslock-button.png + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/fxvk-enter-button.png + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/fxvk-shift-button.png Changeset: 4bdb29f2879a Author: David Grieve Date: 2012-05-07 08:48 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/4bdb29f2879a RT-20066: ensure caught exceptions in StyleHelper are added to StyleManager errorProperty ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java Changeset: 53f061778112 Author: David Grieve Date: 2012-05-07 09:44 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/53f061778112 RT-21292: second attempt at fixing memory leak ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/test/unit/com/sun/javafx/css/Node_cssStyleMap_Test.java ! javafx-ui-common/test/unit/com/sun/javafx/css/StyleablePropertyTest.java Changeset: d2703aaef913 Author: leifs Date: 2012-05-07 11:19 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/d2703aaef913 Add workaround to load icon images for virtual keyboard. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/FXVKSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css Changeset: fbfd25ff3c22 Author: mickf Date: 2012-05-07 20:28 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/fbfd25ff3c22 [DOCS-ONLY] added SB-dependency: RT-XXXXX has been filed to track this comment for css related impl_ methods that are used by SceneBuilder ! javafx-ui-common/src/javafx/scene/Parent.java Changeset: 40594024f30e Author: leifs Date: 2012-05-07 13:05 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/40594024f30e [TEST ONLY] Disable failing test ! javafx-ui-controls/test/javafx/scene/control/MenuBarTest.java Changeset: d8121411b4e9 Author: leifs Date: 2012-05-07 13:08 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/d8121411b4e9 merge Changeset: 472e57ab675c Author: David Grieve Date: 2012-05-07 20:08 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/472e57ab675c RT-21412: need to create a stylehelper if the reference itself is null or the referent is null, not just if the referent is null. ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/test/unit/com/sun/javafx/css/Node_cssStyleMap_Test.java ! javafx-ui-controls/test/javafx/scene/control/MenuBarTest.java Changeset: e971e6a12a35 Author: David Grieve Date: 2012-05-07 23:29 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/e971e6a12a35 RT-21412: redo changes to Node_cssStyleMap_Test to bring it into line with similar code in StyleablePropertyTest (which is the correct code) ! javafx-ui-common/test/unit/com/sun/javafx/css/Node_cssStyleMap_Test.java Changeset: 4eb3bdceece6 Author: Pavel Safrata Date: 2012-05-02 11:03 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/4eb3bdceece6 RT-21287: restricted one DataFormat per mime type. Fixes also RT-20960. ! javafx-ui-common/src/javafx/scene/input/DataFormat.java ! javafx-ui-common/test/unit/javafx/scene/input/DataFormatTest.java Changeset: e6bd9279347c Author: Martin Sladecek Date: 2012-05-02 10:10 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/e6bd9279347c [JAVADOC] RT-19286 added null check to Scene.root property to avoid subsequent NPEs in pulse processing. ! javafx-ui-common/src/javafx/scene/Scene.java Changeset: 5e7b9296733b Author: Martin Sladecek Date: 2012-05-02 10:10 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/5e7b9296733b Automated merge with file:///home/martin/work/javafx/jfx-22-sync/rt ! javafx-ui-common/src/javafx/scene/Scene.java Changeset: 59e272db3bc6 Author: Martin Sladecek Date: 2012-05-02 10:17 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/59e272db3bc6 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/graphics/jfx/rt ! javafx-ui-common/src/javafx/scene/Scene.java Changeset: ea84eaa07624 Author: Martin Sladecek Date: 2012-05-02 13:40 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/ea84eaa07624 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/graphics/jfx/rt Changeset: 3d10357ee79e Author: Martin Sladecek Date: 2012-05-03 14:16 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/3d10357ee79e Fixed performance and critical issues found by findbugs software. ! javafx-ui-common/src/com/sun/javafx/application/ParametersImpl.java ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/src/com/sun/javafx/css/converters/EnumConverter.java ! javafx-ui-common/src/com/sun/javafx/css/parser/CSSParser.java ! javafx-ui-common/src/com/sun/javafx/css/parser/Css2Bin.java ! javafx-ui-common/src/com/sun/javafx/scene/KeyboardShortcutsHandler.java ! javafx-ui-common/src/com/sun/javafx/stage/StageHelper.java ! javafx-ui-common/src/com/sun/javafx/tk/Toolkit.java ! javafx-ui-common/src/javafx/scene/ImageCursor.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/src/javafx/scene/Parent.java ! javafx-ui-common/src/javafx/scene/Scene.java ! javafx-ui-common/src/javafx/scene/effect/Effect.java ! javafx-ui-common/src/javafx/scene/input/DataFormat.java ! javafx-ui-common/src/javafx/scene/input/DragEvent.java ! javafx-ui-common/src/javafx/scene/input/InputMethodEvent.java ! javafx-ui-common/src/javafx/scene/input/InputMethodTextRun.java ! javafx-ui-common/src/javafx/scene/input/KeyCharacterCombination.java ! javafx-ui-common/src/javafx/scene/input/Mnemonic.java ! javafx-ui-common/src/javafx/scene/input/MouseEvent.java Changeset: 57aeca409bd8 Author: kcr Date: 2012-05-03 09:16 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/57aeca409bd8 Backed out changeset 3d10357ee79e until test failures, etc., can be resolved ! javafx-ui-common/src/com/sun/javafx/application/ParametersImpl.java ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/src/com/sun/javafx/css/converters/EnumConverter.java ! javafx-ui-common/src/com/sun/javafx/css/parser/CSSParser.java ! javafx-ui-common/src/com/sun/javafx/css/parser/Css2Bin.java ! javafx-ui-common/src/com/sun/javafx/scene/KeyboardShortcutsHandler.java ! javafx-ui-common/src/com/sun/javafx/stage/StageHelper.java ! javafx-ui-common/src/com/sun/javafx/tk/Toolkit.java ! javafx-ui-common/src/javafx/scene/ImageCursor.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/src/javafx/scene/Parent.java ! javafx-ui-common/src/javafx/scene/Scene.java ! javafx-ui-common/src/javafx/scene/effect/Effect.java ! javafx-ui-common/src/javafx/scene/input/DataFormat.java ! javafx-ui-common/src/javafx/scene/input/DragEvent.java ! javafx-ui-common/src/javafx/scene/input/InputMethodEvent.java ! javafx-ui-common/src/javafx/scene/input/InputMethodTextRun.java ! javafx-ui-common/src/javafx/scene/input/KeyCharacterCombination.java ! javafx-ui-common/src/javafx/scene/input/Mnemonic.java ! javafx-ui-common/src/javafx/scene/input/MouseEvent.java Changeset: 13e347dcb461 Author: jpgodine at JPGODINE-LAP.st-users.us.oracle.com Date: 2012-05-03 09:44 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/13e347dcb461 Automated merge with ssh://jpgodine at jfxsrc.us.oracle.com//javafx/2.2/MASTER/jfx/rt Changeset: b26bab84097d Author: kcr Date: 2012-05-07 13:29 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/b26bab84097d RT-15011: Provide ability to alter the implicit "exit on last window closed" behavior ! javafx-ui-common/src/com/sun/javafx/application/LauncherImpl.java ! javafx-ui-common/src/com/sun/javafx/application/PlatformImpl.java ! javafx-ui-common/src/javafx/application/Application.java ! javafx-ui-common/src/javafx/application/Platform.java Changeset: 804bd3cdb04f Author: jpgodine at JPGODINE-LAP.st-users.us.oracle.com Date: 2012-05-08 09:03 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/804bd3cdb04f Automated merge with ssh://jpgodine at jfxsrc.us.oracle.com//javafx/2.2/MASTER/jfx/rt ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/src/javafx/scene/Parent.java ! javafx-ui-common/src/javafx/scene/Scene.java Changeset: 893db73acfb5 Author: hudson Date: 2012-05-09 18:39 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/master/rt/rev/893db73acfb5 Added tag 2.2-b08 for changeset 804bd3cdb04f ! .hgtags From hang.vo at oracle.com Wed May 9 18:49:02 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 10 May 2012 01:49:02 +0000 Subject: hg: openjfx/2.2/controls/rt: RT-21425, RT-21429, RT-21292: Reworked how a Node uses StyleHelper and StyleCacheKey. This was primarily done to resolve a memory leak issue for SB, but also fixes the performance problems related to recreating StyleHelper more often than needed. Message-ID: <20120510014903.5DB7B47213@hg.openjdk.java.net> Changeset: e39deb31ee8f Author: David Grieve Date: 2012-05-09 21:37 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/e39deb31ee8f RT-21425, RT-21429, RT-21292: Reworked how a Node uses StyleHelper and StyleCacheKey. This was primarily done to resolve a memory leak issue for SB, but also fixes the performance problems related to recreating StyleHelper more often than needed. ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/test/unit/com/sun/javafx/css/Node_cssStyleMap_Test.java ! javafx-ui-common/test/unit/com/sun/javafx/css/StyleablePropertyTest.java From hang.vo at oracle.com Wed May 9 19:18:52 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 10 May 2012 02:18:52 +0000 Subject: hg: openjfx/2.2/controls/rt: 4 new changesets Message-ID: <20120510021855.A4E1247215@hg.openjdk.java.net> Changeset: add555ef6ec1 Author: Kinsley Wong Date: 2012-05-09 16:01 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/add555ef6ec1 Pagination: use buttons and toggle buttons for page navigation. ! javafx-ui-controls/src/com/sun/javafx/scene/control/Pagination.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/PaginationSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css Changeset: 1e038cf8f190 Author: Kinsley Wong Date: 2012-05-09 16:19 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/1e038cf8f190 Pagination: rename pageIndicatorCount to maxPageIndicatorCount ! javafx-ui-controls/src/com/sun/javafx/scene/control/Pagination.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/PaginationSkin.java ! javafx-ui-controls/test/javafx/scene/control/PaginationTest.java Changeset: 9b5734a40a7b Author: Kinsley Wong Date: 2012-05-09 19:01 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/9b5734a40a7b Pagination: add a page information label and css properties -fx-arrows-visible -fx-page-information-visible -fx-page-information-alignment ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/PaginationSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css Changeset: 3f900f9be07e Author: Kinsley Wong Date: 2012-05-09 19:02 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/3f900f9be07e Merge From hang.vo at oracle.com Wed May 9 20:18:48 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 10 May 2012 03:18:48 +0000 Subject: hg: openjfx/2.2/controls/rt: 2 new changesets Message-ID: <20120510031849.B9E5B47216@hg.openjdk.java.net> Changeset: b5af5e074b47 Author: David Grieve Date: 2012-05-09 23:11 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/b5af5e074b47 RT-21302: add hook to load embedded.css ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ScrollBarSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ScrollPaneSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/embedded.css ! javafx-ui-controls/src/javafx/scene/control/UAStylesheetLoader.java Changeset: ed65c13c0dab Author: David Grieve Date: 2012-05-09 23:11 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/ed65c13c0dab Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/controls/jfx/rt ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css From hang.vo at oracle.com Wed May 9 21:18:41 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 10 May 2012 04:18:41 +0000 Subject: hg: openjfx/2.2/controls/rt: 5 new changesets Message-ID: <20120510041845.B6AD947217@hg.openjdk.java.net> Changeset: 1404dcad58cf Author: jgiles Date: 2012-05-10 07:23 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/1404dcad58cf Removing use of placeholder method com.sun.javafx.scene.control.skin.Utils.isEmbedded(), now using com.sun.javafxs.PlatformUtil.isEmbedded() instead. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ScrollBarSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ScrollPaneSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/Utils.java Changeset: ff7077e1a1e4 Author: jgiles Date: 2012-05-10 07:46 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/ff7077e1a1e4 RT-21439: Scaling UI Controls down to VGA: TableView. This changeset disables unrequired functionality: column sorting, resizing and reordering. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/NestedTableColumnHeader.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/TableColumnHeader.java Changeset: 3ff578ebbe97 Author: jgiles Date: 2012-05-10 11:28 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/3ff578ebbe97 RT-21207: ComboBox list width doesn't fit its content when first displayed ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ComboBoxPopupControl.java Changeset: 57be3d435010 Author: jgiles Date: 2012-05-10 15:34 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/57be3d435010 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/controls/jfx/rt ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ScrollBarSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ScrollPaneSkin.java Changeset: fc52b3b711d4 Author: jgiles Date: 2012-05-10 16:09 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/fc52b3b711d4 Fixing build failure by removing null check in CheckBoxListCell ctor ! javafx-ui-controls/src/javafx/scene/control/cell/CheckBoxListCell.java From hang.vo at oracle.com Thu May 10 00:18:55 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 10 May 2012 07:18:55 +0000 Subject: hg: openjfx/2.2/controls/rt: 12 new changesets Message-ID: <20120510071904.A08F94721A@hg.openjdk.java.net> Changeset: 4eb3bdceece6 Author: Pavel Safrata Date: 2012-05-02 11:03 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/4eb3bdceece6 RT-21287: restricted one DataFormat per mime type. Fixes also RT-20960. ! javafx-ui-common/src/javafx/scene/input/DataFormat.java ! javafx-ui-common/test/unit/javafx/scene/input/DataFormatTest.java Changeset: e6bd9279347c Author: Martin Sladecek Date: 2012-05-02 10:10 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/e6bd9279347c [JAVADOC] RT-19286 added null check to Scene.root property to avoid subsequent NPEs in pulse processing. ! javafx-ui-common/src/javafx/scene/Scene.java Changeset: 5e7b9296733b Author: Martin Sladecek Date: 2012-05-02 10:10 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/5e7b9296733b Automated merge with file:///home/martin/work/javafx/jfx-22-sync/rt ! javafx-ui-common/src/javafx/scene/Scene.java Changeset: 59e272db3bc6 Author: Martin Sladecek Date: 2012-05-02 10:17 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/59e272db3bc6 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/graphics/jfx/rt ! javafx-ui-common/src/javafx/scene/Scene.java Changeset: ea84eaa07624 Author: Martin Sladecek Date: 2012-05-02 13:40 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/ea84eaa07624 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/graphics/jfx/rt Changeset: 3d10357ee79e Author: Martin Sladecek Date: 2012-05-03 14:16 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/3d10357ee79e Fixed performance and critical issues found by findbugs software. ! javafx-ui-common/src/com/sun/javafx/application/ParametersImpl.java ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/src/com/sun/javafx/css/converters/EnumConverter.java ! javafx-ui-common/src/com/sun/javafx/css/parser/CSSParser.java ! javafx-ui-common/src/com/sun/javafx/css/parser/Css2Bin.java ! javafx-ui-common/src/com/sun/javafx/scene/KeyboardShortcutsHandler.java ! javafx-ui-common/src/com/sun/javafx/stage/StageHelper.java ! javafx-ui-common/src/com/sun/javafx/tk/Toolkit.java ! javafx-ui-common/src/javafx/scene/ImageCursor.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/src/javafx/scene/Parent.java ! javafx-ui-common/src/javafx/scene/Scene.java ! javafx-ui-common/src/javafx/scene/effect/Effect.java ! javafx-ui-common/src/javafx/scene/input/DataFormat.java ! javafx-ui-common/src/javafx/scene/input/DragEvent.java ! javafx-ui-common/src/javafx/scene/input/InputMethodEvent.java ! javafx-ui-common/src/javafx/scene/input/InputMethodTextRun.java ! javafx-ui-common/src/javafx/scene/input/KeyCharacterCombination.java ! javafx-ui-common/src/javafx/scene/input/Mnemonic.java ! javafx-ui-common/src/javafx/scene/input/MouseEvent.java Changeset: 57aeca409bd8 Author: kcr Date: 2012-05-03 09:16 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/57aeca409bd8 Backed out changeset 3d10357ee79e until test failures, etc., can be resolved ! javafx-ui-common/src/com/sun/javafx/application/ParametersImpl.java ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/src/com/sun/javafx/css/converters/EnumConverter.java ! javafx-ui-common/src/com/sun/javafx/css/parser/CSSParser.java ! javafx-ui-common/src/com/sun/javafx/css/parser/Css2Bin.java ! javafx-ui-common/src/com/sun/javafx/scene/KeyboardShortcutsHandler.java ! javafx-ui-common/src/com/sun/javafx/stage/StageHelper.java ! javafx-ui-common/src/com/sun/javafx/tk/Toolkit.java ! javafx-ui-common/src/javafx/scene/ImageCursor.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/src/javafx/scene/Parent.java ! javafx-ui-common/src/javafx/scene/Scene.java ! javafx-ui-common/src/javafx/scene/effect/Effect.java ! javafx-ui-common/src/javafx/scene/input/DataFormat.java ! javafx-ui-common/src/javafx/scene/input/DragEvent.java ! javafx-ui-common/src/javafx/scene/input/InputMethodEvent.java ! javafx-ui-common/src/javafx/scene/input/InputMethodTextRun.java ! javafx-ui-common/src/javafx/scene/input/KeyCharacterCombination.java ! javafx-ui-common/src/javafx/scene/input/Mnemonic.java ! javafx-ui-common/src/javafx/scene/input/MouseEvent.java Changeset: 13e347dcb461 Author: jpgodine at JPGODINE-LAP.st-users.us.oracle.com Date: 2012-05-03 09:44 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/13e347dcb461 Automated merge with ssh://jpgodine at jfxsrc.us.oracle.com//javafx/2.2/MASTER/jfx/rt Changeset: b26bab84097d Author: kcr Date: 2012-05-07 13:29 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/b26bab84097d RT-15011: Provide ability to alter the implicit "exit on last window closed" behavior ! javafx-ui-common/src/com/sun/javafx/application/LauncherImpl.java ! javafx-ui-common/src/com/sun/javafx/application/PlatformImpl.java ! javafx-ui-common/src/javafx/application/Application.java ! javafx-ui-common/src/javafx/application/Platform.java Changeset: 804bd3cdb04f Author: jpgodine at JPGODINE-LAP.st-users.us.oracle.com Date: 2012-05-08 09:03 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/804bd3cdb04f Automated merge with ssh://jpgodine at jfxsrc.us.oracle.com//javafx/2.2/MASTER/jfx/rt ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/src/javafx/scene/Parent.java ! javafx-ui-common/src/javafx/scene/Scene.java Changeset: 893db73acfb5 Author: hudson Date: 2012-05-09 18:39 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/893db73acfb5 Added tag 2.2-b08 for changeset 804bd3cdb04f ! .hgtags Changeset: 9e767622180e Author: leifs Date: 2012-05-10 00:02 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/9e767622180e Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/MASTER/rt ! javafx-ui-common/src/com/sun/javafx/css/StyleHelper.java ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/src/javafx/scene/Node.java - javafx-ui-controls/src/com/sun/javafx/scene/control/CheckBoxTreeItem.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CellUtils.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxCellFactory.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxListCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxTableCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/CheckBoxTreeCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxCellFactory.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxListCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxTableCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ChoiceBoxTreeCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxCellFactory.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxListCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxTableCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ComboBoxTreeCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/MapValueFactory.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ProgressBarCellFactory.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/ProgressBarTableCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterCellFactory.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterListCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterTableCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringConverterTreeCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatCellFactory.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatListCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatTableCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/StringFormatTreeCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldCellFactory.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldListCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldTableCell.java - javafx-ui-controls/src/com/sun/javafx/scene/control/cell/TextFieldTreeCell.java From hang.vo at oracle.com Thu May 10 01:03:58 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 10 May 2012 08:03:58 +0000 Subject: hg: openjfx/2.2/graphics/rt: 2 new changesets Message-ID: <20120510080401.BA94D4721D@hg.openjdk.java.net> Changeset: 58756e3b5d23 Author: Martin Sladecek Date: 2012-05-10 09:47 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/58756e3b5d23 RT-18533 Path constructor that accepts collections ! javafx-ui-common/src/javafx/scene/shape/Path.java ! javafx-ui-common/test/unit/javafx/scene/shape/PathTest.java Changeset: 0de331c66b7e Author: Martin Sladecek Date: 2012-05-10 09:47 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/0de331c66b7e Automated merge with file:///home/martin/work/javafx/jfx-22-sync/rt ! javafx-ui-common/src/javafx/scene/shape/Path.java From daniel.fuchs at oracle.com Thu May 10 01:44:09 2012 From: daniel.fuchs at oracle.com (Daniel Fuchs) Date: Thu, 10 May 2012 10:44:09 +0200 Subject: [Review request] Adding pre-built cells and cell factories to JavaFX In-Reply-To: References: Message-ID: <4FAB7FD9.50607@oracle.com> On 5/9/12 2:11 AM, openjfx-dev-request at openjdk.java.net wrote: >> From: Richard Bair > Subject: Re: [Review request] Adding pre-built cells and cell > factories to JavaFX > To: jonathan.giles at oracle.com > Cc: "openjfx-dev at openjdk.java.net" > Message-ID: > Content-Type: text/plain; charset=iso-8859-1 > > Jonathan, I was just thinking (I know we talked about this before some time back but I don't remember the reasoning), why do we have the ***Factory classes? Why not just move those factory methods onto the appropriate Cells? So it would be: > > listView.setCellFactory(TextFieldCell.cellFactory(...)); > > Just thinking four fewer classes, and associating the factory methods with the class itself. What do you think? > > Richard Hi Richard, Sorry for jumping in this late - I've been away for a few days. If you hide the ***Factory classes - then it means that you won't be able to set cellFactory implementations from within FXML - doesn't it? You won't be able to write things like: This may be OK - because I see that the CheckBoxTableCell.forTableColumn(...) method requires a Callback and an ObservableProperty as parameter - which you would have trouble to serialize as FXML beans anyway... Which in turn implies that configuring these factories is a thing you would more easily do from within the controller's code... So this seems like something that would not impact FXML or tools like SceneBuilder, unless I missed something? On the other hand - you could still be able to configure factories from within FXML if there was static noop method that could return a factory. Then you would be able to write: but this requires the forTableColumn method to take no arguments. The question is whether the properties required to configure the factory instance can all be expressed in FXML as, it does not bring you much to be able to set a factory from within FXML if you still need to configure its properties from the controller's code. Cheers, -- daniel > > On May 8, 2012, at 3:29 PM, Richard Bair wrote: > >> I've been over this a few times with Jonathan and I think the API is really quite nice. I would especially like to hear any feedback from folks using FXML, from SceneBuilder, and from anybody who gives it a try. The API is essentially what Jonathan had done in DataFX and has had a significant amount of usage already so we're pretty confident that it is friendly to use :-). >> >> Thanks >> Richard >> >> On May 8, 2012, at 3:14 PM, Jonathan Giles wrote: >> >>> Hi all, >>> >>> http://javafx-jira.kenai.com/browse/RT-19452 >>> >>> This jira feature request asks for JavaFX to include a number of pre-built cell factories for use in ListView, TreeView and TableView. This was always intended functionality, it just took some time to get around to adding it. These cell factories are intended to support functionality such as editing by TextField, ChoiceBox, ComboBox, and CheckBox, easily converting objects into strings, and values into progress bars. >>> >>> I intend to move com.sun.javafx.scene.control.CheckBoxTreeItem into javafx.scene.control. >>> >>> The classes below I intend to move to javafx.scene.control.cell: >>> com.sun.javafx.scene.control.cell.CheckBoxCellFactory >>> com.sun.javafx.scene.control.cell.CheckBoxListCell >>> com.sun.javafx.scene.control.cell.CheckBoxTableCell >>> com.sun.javafx.scene.control.cell.CheckBoxTreeCell >>> com.sun.javafx.scene.control.cell.ChoiceBoxCellFactory >>> com.sun.javafx.scene.control.cell.ChoiceBoxListCell >>> com.sun.javafx.scene.control.cell.ChoiceBoxTableCell >>> com.sun.javafx.scene.control.cell.ChoiceBoxTreeCell >>> com.sun.javafx.scene.control.cell.ComboBoxCellFactory >>> com.sun.javafx.scene.control.cell.ComboBoxListCell >>> com.sun.javafx.scene.control.cell.ComboBoxTableCell >>> com.sun.javafx.scene.control.cell.ComboBoxTreeCell >>> com.sun.javafx.scene.control.cell.ProgressBarCellFactory >>> com.sun.javafx.scene.control.cell.ProgressBarTableCell >>> com.sun.javafx.scene.control.cell.TextFieldCellFactory >>> com.sun.javafx.scene.control.cell.TextFieldListCell >>> com.sun.javafx.scene.control.cell.TextFieldTableCell >>> com.sun.javafx.scene.control.cell.TextFieldTreeCell >>> >>> In addition to these classes, I am also introducing other, related classes, including: >>> javafx.util.converter.FormatStringConverter >>> com.sun.javafx.scene.control.cell.MapValueFactory (which will move to javafx.scene.control.cell to work alongside the PropertyValueFactory) >>> >>> To support the CheckBox inside a TreeView case, I'm including the CheckBoxTreeItem class that can ensure that parent and children tree items are updated when a tree item is selected or deselected. >>> >>> I have included considerable javadoc documentation already, but I intend to add more soon to include a number of worked examples on how to use this new API. >>> >>> I look forward to your feedback. >>> >>> -- Jonathan From Peter.Zhelezniakov at oracle.com Thu May 10 04:14:43 2012 From: Peter.Zhelezniakov at oracle.com (Peter Zhelezniakov) Date: Thu, 10 May 2012 15:14:43 +0400 Subject: API REVIEW request for RT-19042: Add fontSmoothingType API to WebView In-Reply-To: <0DB6630A-1601-4797-9047-98E7D63BAFDB@oracle.com> References: <25BEC692-D1FF-494D-829C-2ACE0947D910@oracle.com> <0DB6630A-1601-4797-9047-98E7D63BAFDB@oracle.com> Message-ID: <4FABA323.3050703@oracle.com> Hi Richard, On 05/10/12 05:12, Richard Bair wrote: > It seems like it should just be on by default. The controls all require FX CSS anyway, so it made sense to toggle it there (since we didn't want all text nodes to use LCD for performance reasons). > > I don't know that it makes sense to default to gray scale and require CSS to "fix" the default. Ok, I've changed the default to LCD, and removed now unneeded changes to caspian.css: /** * Specifies a requested font smoothing type : gray or LCD. * * The width of the bounding box is defined by the widest row. * * Note: LCD mode doesn't apply in numerous cases, such as various * compositing modes, where effects are applied and very large glyphs. * * @defaultValue FontSmoothingType.LCD */ private ObjectProperty fontSmoothingType; public final void setFontSmoothingType(FontSmoothingType value); public final FontSmoothingType getFontSmoothingType(); public final ObjectProperty fontSmoothingTypeProperty(); /** * Super-lazy instantiation pattern from Bill Pugh. * StyleableProperties is referenced no earlier * (and therefore loaded no earlier by the class loader) * than the moment that {@code impl_CSS_STYLEABLES()} is called. * * @return list of supported styleable properties * @treatAsPrivate implementation detail * @deprecated this is an internal API * that is not intended for use * and will be removed in the next version */ @Deprecated public static List impl_CSS_STYLEABLES() { return WebView.StyleableProperties.STYLEABLES; } /** * @return list of supported styleable properties * @treatAsPrivate implementation detail * @deprecated this is an experimental API * that is not intended for general use * and is subject to change in future versions */ @Deprecated @Override public List impl_getStyleableProperties() { return impl_CSS_STYLEABLES(); } Thanks! -- Peter From pavel.safrata at oracle.com Thu May 10 04:17:05 2012 From: pavel.safrata at oracle.com (Pavel Safrata) Date: Thu, 10 May 2012 13:17:05 +0200 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FAABADF.60703@jugs.org> References: <4FAA8A38.6090706@oracle.com> <4FAABADF.60703@jugs.org> Message-ID: <4FABA3B1.8040909@oracle.com> Hi Michael, On 9.5.2012 20:43, Dr. Michael Paus wrote: > Your last proposal looks promising but could you provide some more > details? Will it, for example also > be possible to apply the inverse transform of the local-to-scene > transform? You will be able to compute an inverse transformation and apply it to a different node, if that's what you mean. Among others, I've had inversion on my mind when I talked about "matrix operations on the Transform class", I just think I'll file a different issue to cover it. > How is the currently > existing Transform class hierarchy affected by these changes? Would it > be possible to make > the existing classes Translate, Rotate, etc. sub-classes of Affine? We most probably don't want to do that. These classes provide a simple and efficient way to set basic transformations to nodes and it would be expensive to fill them with all the data and functionality that Affine has and will have after resolving RT-17942. Moreover, we would have to restrict many of the methods that will be there for altering the Affine class (to avoid things like Rotate becoming something else then rotation), which is not a nice approach. But still, for a complex work with transformations you should be ok with the Affine class itself once RT-17942 is resolved. Thanks, Pavel > > LG, Michael > > > Am 09.05.2012 17:16, schrieb Pavel Safrata: >> Hello, >> I've been working on the local-to-scene transform >> (http://javafx-jira.kenai.com/browse/RT-520). I have a prototype that >> makes it an observable (read-only) property, registering for >> invalidation notifications to parent only when somebody registers a >> listener to it. This is nicer than a simple "compute" method - it >> looks like a standard observable lazy property from user's point of >> view. >> >> The big question now is what the type of the property should be. The >> first candidate is javafx.scene.transform.Affine. Unfortunately this >> class has each element of the matrix as a property, which makes it >> pretty impractical for that purpose. There are two options there: >> - We can create a new Affine instance each time the transformation >> changes (and somebody calls the getter). This way all the elements >> would have to be immutable, so all their setters would need to throw >> exceptions (ugly) and whole their observability would be just a >> useless slowdown. >> - Or we can keep the single instance and modify its elements. This >> way user would have to register twelve listeners to be notified of >> transformation changes. >> None of those options seems good enough. >> >> We considered another option: creating a new class >> TransformationMatrix. This class would be immutable and would contain >> various methods for work with matrices. All the transforms would have >> a getter that would return an instance of this class, the Affine >> class would have also a setter. Now the localToSceneTransformation >> property could be of type TransformationMatrix. This would spare us >> the above problems and provide an independent class for matrix >> operations, but on the other hand, converting transformations to the >> matrix and back may be an unnecessary burden, also doing some complex >> matrix computation with an immutable matrix class would result in >> pretty huge garbage production (slowing down the computation). >> >> So we propose yet another approach. In the base Transform class, >> introduce getters for all the elements of the transformation matrix >> (not observable, just getters). Each transformation would be able to >> return the values according to its current state. Our property would >> then be of type Transform, allowing only for getting the matrix >> values. This would make the property observable as a whole (creating >> a new instance each time), unmodifiable, and would leave us with a >> nicely open way to introduce the methods for matrix operations on the >> Transform class, most of them probably returning the Affine instance >> as a result, and the Affine class could then have a bunch of methods >> to be modified in place. >> >> What do you think? >> Thanks, >> Pavel > > From lubomir.nerad at oracle.com Thu May 10 04:27:52 2012 From: lubomir.nerad at oracle.com (Lubomir Nerad) Date: Thu, 10 May 2012 13:27:52 +0200 Subject: API change RT-19955: Configuring a PopupWindow so that it consumes the event used for hiding In-Reply-To: <64DE710D-15C9-4C3D-ADFF-51AD872332B7@oracle.com> References: <4F9A8279.7070708@oracle.com> <4F9A8BC7.7000909@media-interactive.de> <4FA114C8.6050504@oracle.com> <4FAA56A9.8030204@oracle.com> <64DE710D-15C9-4C3D-ADFF-51AD872332B7@oracle.com> Message-ID: <4FABA638.2080801@oracle.com> Yes. It seems that in Safari popups invoked from toolbars have different behavior than popups invoked from dialogs. On 5/10/2012 2:10 AM, Richard Bair wrote: > I tried the download pop up, and then clicking something outside the download popup. Do you see the same? > > On May 9, 2012, at 4:36 AM, Lubomir Nerad wrote: > >> On 5/7/2012 10:43 PM, Richard Bair wrote: >>>>> Hi Lubo, >>>>> >>>>> why do you think that the name is ambiguous? Seems clear to me. Some >>>>> other thoughts: >>>> I don't remember how exactly the auto-hide feature for popups is implemented. Is it sometimes triggered from Glass ("ungrab" event)? What event will be consumed in this case? >>>> >>>> Are we confident we'll be able to implement this property? If a popup is auto-hidden from the ungrab event handler, there may be no direct connection between this event and the mouse/key/etc. event to consume. >>> Before approving the API addition I guess we need to know the answer to this. Likewise, the default behavior I think is platform specific. At least in Safari, it seems that it does not consume mouse events by default that cause the popup to be closed. However I know Cocoa has an API for specifying what this behavior should be. If we add such an API, we probably will want to make sure it defaults to some platform specific value rather than always defaulting to "true" or "false"? >>> >> The property only aims at controlling the events between the popup and its parent window. Ungrab events and possible mouse clicks which caused them (outside of the popup window and its parent window) can't be influenced in general (and probably shouldn't be). >> >> In Safari, it seems to me that the events are actually consumed. If you invoke preferences and in one tab page expand a combo box, then click on an another control in the same tab page, the function of that other control is not executed. Only if the interaction involves multiple windows, I can see that the event is not consumed. With the property we will control this behavior among controls / popups of a single window, while leaving the behavior between multiple windows OS dependent. >> >> Thanks, >> Lubo >> >> >> >> From greg.x.brown at oracle.com Thu May 10 04:51:30 2012 From: greg.x.brown at oracle.com (Greg Brown) Date: Thu, 10 May 2012 07:51:30 -0400 Subject: [Review request] Adding pre-built cells and cell factories to JavaFX In-Reply-To: <4FAB7FD9.50607@oracle.com> References: <4FAB7FD9.50607@oracle.com> Message-ID: <6E403608-5602-4E3E-B8A7-EB7F687B300C@oracle.com> > The question is whether the properties required to configure the > factory instance can all be expressed in FXML Pretty much any property can be expressed in FXML. The important part is that the factories should be configurable via properties rather than constructor or factory method arguments, since these are expressible in FXML whereas method arguments are not. G From Marcelo.Schneider at marinecyb.com Thu May 10 05:10:33 2012 From: Marcelo.Schneider at marinecyb.com (Marcelo Schneider) Date: Thu, 10 May 2012 12:10:33 +0000 Subject: MediaPlayer, MP4, and subtitles Message-ID: <5744BAED2672604BAD460241A3A8B31D226B9FB5@MAIL-01.mc.local> Is there a way to play subtitled files using MediaPlayer? I'm loading a local MP4 (x264, AAC) video using the default Media/MediaPlayer/MediaView combo. Works OK. When loading the same file with a subtitle track added, the subtitle track is not recognized and the file is not played at all (no exceptions thrown). The way I see it, there should exist a SubtitleTrack class (same way there's an AudioTrack and VideoTrack) that, even if it doesn't render the subtitles on top of the video, should provide a way to access the contents so the user could add it as an overlay programatically. What would be the best way to approach this problem? Marcelo Frantz Schneider Marine Cybernetics Vestre Rosten 77, Trondheim, Norway marcelo.schneider (at) marinecyb.com From kevin.rushforth at oracle.com Thu May 10 05:32:39 2012 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Thu, 10 May 2012 05:32:39 -0700 Subject: Why is the windows runtime/sdk only provided as .exe In-Reply-To: <4FAAEF48.7010108@bestsolution.at> References: <4F045E66.2020408@bestsolution.at> <4F047CCF.6080600@oracle.com> <4F047EA0.5060300@bestsolution.at> <4F048053.6010107@oracle.com> <4FA8F6CD.4000501@bestsolution.at> <4FA92244.8090202@oracle.com> <9F82B134-6E8E-474C-90AC-A656CBE4746D@bestsolution.at> <4FAAEF48.7010108@bestsolution.at> Message-ID: <4FABB567.2040404@oracle.com> Hi Tom, This is a product management decision, based largely on two things: 1) Alignment with the JDK, which doesn't provide .zip files for Mac and Windows 2) For Mac and Linux the only supported way to get JavaFX is bundled with JDK7. We don't release / support an unbundled JavaFX on those platforms. Going forward this will be true for Windows as well. Standalone JavaFX 2.x bundles will continue to be released for Windows to support JDK6. Developer preview releases will also continue to be released as standalone bundles (including .zip). My understanding is that product management is looking into the possibility of releasing JDK as a .zip bundle but they would need to respond as what the status of that is. I have included Nicolas and Ajay on this who can speak to these issues. -- Kevin Tom Schindl wrote: > Hi Kevin, > > I'm replying here because I think more people who are interested in zips > (e.g. anyone using maven!) are listening here. > > So you are stating in the bug that no zips will be provided anymore > which I think is a very disappointing situation - I will and have to > accept it. > > If you read through the mailing list threads how Richard, Jasper, ... > advised to deploy JavaFX application they always stated that one should > bundle it with the application (probably with the JRE which is a no go > when we talk about Webstart). > > Without providing zips you force me to have: > * Win32 > * Mac OS X > 10.7.0 > * Linux (in future) > > to extract the fxjar + native libs to repackage in my custom app. I know > I need them anyways to test, ... but forcing me to do it manually > instead of simply providing zip downloads is ridiculous (and because of > the licensing stuff I one person in the world would have done and wants > to share it with the rest of us he/she is not allowed). > > For me as a tooling vendor your current decision gives me headaches > because I want and need to support multiple different SDK-Install-Styles: > * Dev Preview install (done through zips with the structure in there) > > * JDK-7-Installs > => Not sure how they look like and I'm unable to test because I only > have OS-X 10.6.8 > > * JDK-6 > > When we take a look into the future this JDK-Exe install kind of thing > is a deadend road because you'll stop viewing the JDK/JRE as an all in > one thing installable through one .exe because of jigsaw. > > Anyways I appreciate that you took a look but I'm not happy with it and > hope I can find a way around it until then I can only point people to > the JIRA entry when they want to use e(fx)clipse os OS-X. > > Can anyone here tell me how the OS-X JDK-7-Installation structure looks > like? Where am I supposed to find: > * the javafxrt.jar > * the dlls > * the fx-javadoc > > Tom > > Am 08.05.12 15:43, schrieb Tom Schindl: > >> Haveing the SDK-zips will solve all my current problems. Thanks for taking a Look. >> >> Tom >> >> Von meinem iPhone gesendet >> >> Am 08.05.2012 um 15:40 schrieb Kevin Rushforth : >> >> >>> Hi Tom, >>> >>> I just looked and you are right...only see the .exe files were released for 2.1. I will check into this and get back to you. >>> >>> The Mac issue will be trickier since we don't have any tested / supported standalone bundles of JavaFX 2.1 on Mac. As a released product JavaFX 2.1 for Mac is only available as part of JDK 7u4. >>> >>> -- Kevin >>> >>> >>> Tom Schindl wrote: >>> >>>> Kevin - can you take a look at this once more? Since the 2.1 release the >>>> zips for the SDKs are not available anymore! >>>> >>>> One can only download the one for 2.2 so it looks like the dev-release >>>> site was adjusted but the GA site not. >>>> >>>> For those of use doing cross platform development and packaging JavaFX >>>> with their apps getting geting the releases as zips is something really >>>> important. >>>> >>>> Sidenote: Even worse because I'm still on OS-X 10.6.8 I can't even >>>> install JavaFX because the JDK-7 release requires at least 10.7.0 (I >>>> know you are not support JavaFX prior to JDK 7) >>>> >>>> Thanks >>>> >>>> Tom >>>> >>>> Am 04.01.12 17:37, schrieb Kevin Rushforth: >>>> >>>> >>>>> Oh, maybe we don't actually release the SDK on the public web page >>>>> either (I knew we didn't release the runtime as a zip since we don't >>>>> even generate it internally). >>>>> >>>>> -- Kevin >>>>> >>>>> >>>>> Tom Schindl wrote: >>>>> >>>>> >>>>>> Hi Kevin, >>>>>> >>>>>> Well maybe I'm blind but for win32 the there is NO zip available from >>>>>> this page [1]. >>>>>> >>>>>> The only thing available currently as a zip is the OS-X SDK version >>>>>> which misses the win32 native libs not? I'll file a JIRA. >>>>>> >>>>>> [1]http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.html >>>>>> >>>>>> >>>>>> Am 04.01.12 17:22, schrieb Kevin Rushforth: >>>>>> >>>>>> >>>>>> >>>>>>> Good question. The SDK is available as both an installer and a zip, and >>>>>>> we could consider make the runtime available as a zip file as well, so >>>>>>> please file a JIRA feature request for this. >>>>>>> >>>>>>> As for your other question, it is not currently possible to have 2.0.2 >>>>>>> and 2.1 instaled side-by-side. >>>>>>> >>>>>>> -- Kevin >>>>>>> >>>>>>> >>>>>>> Tom Schindl wrote: >>>>>>> >>>>>>> >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> Now that since 2.0.2 (and also 2.1) are redistributeable it might make >>>>>>>> sense to provide them also as simple ZIP-Files. >>>>>>>> >>>>>>>> I find it odd that if I want to package JavaFX with my product that I >>>>>>>> first have to install something only my system, navigate to the install >>>>>>>> dir and copy over the stuff my own project directory. >>>>>>>> >>>>>>>> Is it BTW possible to have 2.1 and 2.0.2 installed next to each other? I >>>>>>>> guess not which makes it hard to test with both versions on the same >>>>>>>> system, which would be made much more easy if provided as simple >>>>>>>> ZIP-Files. >>>>>>>> >>>>>>>> Would you mind providing JavaFX 2.1 binaries (and maybe also > 2.0.2) as >>>>>>>> a simple zip-File like you do it with 2.1 OS-X ones? >>>>>>>> >>>>>>>> Tom >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>> >>>>>> >>>>>> >>>> >>>> > > > From kevin.rushforth at oracle.com Thu May 10 05:40:07 2012 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Thu, 10 May 2012 05:40:07 -0700 Subject: Why is the windows runtime/sdk only provided as .exe In-Reply-To: References: <4F045E66.2020408@bestsolution.at> <4F047CCF.6080600@oracle.com> <4F047EA0.5060300@bestsolution.at> <4F048053.6010107@oracle.com> <4FA8F6CD.4000501@bestsolution.at> <4FA92244.8090202@oracle.com> <9F82B134-6E8E-474C-90AC-A656CBE4746D@bestsolution.at> <4FAAEF48.7010108@bestsolution.at> Message-ID: <4FABB727.2020409@oracle.com> Hi Kim, You are right. The FX docs are currently not included with the JDK on Mac. I have filed RT-21463 to address this for FX 2.2 / JDK 7u6. -- Kevin Kim Topley wrote: > As far as I can see, there is no JavaFX API documentation included. > > On Wed, May 9, 2012 at 6:58 PM, Kim Topley wrote: > > >> The code goes to >> /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre/lib - I see >> jfxrt.jar and the JavaFX DLLs in there. I haven't downloaded the Javadoc >> package yet - I'll post again when I have done so. >> >> >> On Wed, May 9, 2012 at 6:27 PM, Tom Schindl wrote: >> >> >>> Hi Kevin, >>> >>> I'm replying here because I think more people who are interested in zips >>> (e.g. anyone using maven!) are listening here. >>> >>> So you are stating in the bug that no zips will be provided anymore >>> which I think is a very disappointing situation - I will and have to >>> accept it. >>> >>> If you read through the mailing list threads how Richard, Jasper, ... >>> advised to deploy JavaFX application they always stated that one should >>> bundle it with the application (probably with the JRE which is a no go >>> when we talk about Webstart). >>> >>> Without providing zips you force me to have: >>> * Win32 >>> * Mac OS X > 10.7.0 >>> * Linux (in future) >>> >>> to extract the fxjar + native libs to repackage in my custom app. I know >>> I need them anyways to test, ... but forcing me to do it manually >>> instead of simply providing zip downloads is ridiculous (and because of >>> the licensing stuff I one person in the world would have done and wants >>> to share it with the rest of us he/she is not allowed). >>> >>> For me as a tooling vendor your current decision gives me headaches >>> because I want and need to support multiple different SDK-Install-Styles: >>> * Dev Preview install (done through zips with the structure in there) >>> >>> * JDK-7-Installs >>> => Not sure how they look like and I'm unable to test because I only >>> have OS-X 10.6.8 >>> >>> * JDK-6 >>> >>> When we take a look into the future this JDK-Exe install kind of thing >>> is a deadend road because you'll stop viewing the JDK/JRE as an all in >>> one thing installable through one .exe because of jigsaw. >>> >>> Anyways I appreciate that you took a look but I'm not happy with it and >>> hope I can find a way around it until then I can only point people to >>> the JIRA entry when they want to use e(fx)clipse os OS-X. >>> >>> Can anyone here tell me how the OS-X JDK-7-Installation structure looks >>> like? Where am I supposed to find: >>> * the javafxrt.jar >>> * the dlls >>> * the fx-javadoc >>> >>> Tom >>> >>> Am 08.05.12 15:43, schrieb Tom Schindl: >>> >>>> Haveing the SDK-zips will solve all my current problems. Thanks for >>>> >>> taking a Look. >>> >>>> Tom >>>> >>>> Von meinem iPhone gesendet >>>> >>>> Am 08.05.2012 um 15:40 schrieb Kevin Rushforth < >>>> >>> kevin.rushforth at oracle.com>: >>> >>>>> Hi Tom, >>>>> >>>>> I just looked and you are right...only see the .exe files were >>>>> >>> released for 2.1. I will check into this and get back to you. >>> >>>>> The Mac issue will be trickier since we don't have any tested / >>>>> >>> supported standalone bundles of JavaFX 2.1 on Mac. As a released product >>> JavaFX 2.1 for Mac is only available as part of JDK 7u4. >>> >>>>> -- Kevin >>>>> >>>>> >>>>> Tom Schindl wrote: >>>>> >>>>>> Kevin - can you take a look at this once more? Since the 2.1 release >>>>>> >>> the >>> >>>>>> zips for the SDKs are not available anymore! >>>>>> >>>>>> One can only download the one for 2.2 so it looks like the dev-release >>>>>> site was adjusted but the GA site not. >>>>>> >>>>>> For those of use doing cross platform development and packaging JavaFX >>>>>> with their apps getting geting the releases as zips is something >>>>>> >>> really >>> >>>>>> important. >>>>>> >>>>>> Sidenote: Even worse because I'm still on OS-X 10.6.8 I can't even >>>>>> install JavaFX because the JDK-7 release requires at least 10.7.0 (I >>>>>> know you are not support JavaFX prior to JDK 7) >>>>>> >>>>>> Thanks >>>>>> >>>>>> Tom >>>>>> >>>>>> Am 04.01.12 17:37, schrieb Kevin Rushforth: >>>>>> >>>>>> >>>>>>> Oh, maybe we don't actually release the SDK on the public web page >>>>>>> either (I knew we didn't release the runtime as a zip since we don't >>>>>>> even generate it internally). >>>>>>> >>>>>>> -- Kevin >>>>>>> >>>>>>> >>>>>>> Tom Schindl wrote: >>>>>>> >>>>>>> >>>>>>>> Hi Kevin, >>>>>>>> >>>>>>>> Well maybe I'm blind but for win32 the there is NO zip available >>>>>>>> >>> from >>> >>>>>>>> this page [1]. >>>>>>>> >>>>>>>> The only thing available currently as a zip is the OS-X SDK version >>>>>>>> which misses the win32 native libs not? I'll file a JIRA. >>>>>>>> >>>>>>>> [1] >>>>>>>> >>> http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.html >>> >>>>>>>> Am 04.01.12 17:22, schrieb Kevin Rushforth: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> Good question. The SDK is available as both an installer and a >>>>>>>>> >>> zip, and >>> >>>>>>>>> we could consider make the runtime available as a zip file as >>>>>>>>> >>> well, so >>> >>>>>>>>> please file a JIRA feature request for this. >>>>>>>>> >>>>>>>>> As for your other question, it is not currently possible to have >>>>>>>>> >>> 2.0.2 >>> >>>>>>>>> and 2.1 instaled side-by-side. >>>>>>>>> >>>>>>>>> -- Kevin >>>>>>>>> >>>>>>>>> >>>>>>>>> Tom Schindl wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> Now that since 2.0.2 (and also 2.1) are redistributeable it might >>>>>>>>>> >>> make >>> >>>>>>>>>> sense to provide them also as simple ZIP-Files. >>>>>>>>>> >>>>>>>>>> I find it odd that if I want to package JavaFX with my product >>>>>>>>>> >>> that I >>> >>>>>>>>>> first have to install something only my system, navigate to the >>>>>>>>>> >>> install >>> >>>>>>>>>> dir and copy over the stuff my own project directory. >>>>>>>>>> >>>>>>>>>> Is it BTW possible to have 2.1 and 2.0.2 installed next to each >>>>>>>>>> >>> other? I >>> >>>>>>>>>> guess not which makes it hard to test with both versions on the >>>>>>>>>> >>> same >>> >>>>>>>>>> system, which would be made much more easy if provided as simple >>>>>>>>>> ZIP-Files. >>>>>>>>>> >>>>>>>>>> Would you mind providing JavaFX 2.1 binaries (and maybe also > >>>>>>>>>> >>> 2.0.2) as >>> >>>>>>>>>> a simple zip-File like you do it with 2.1 OS-X ones? >>>>>>>>>> >>>>>>>>>> Tom >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>> >>>>>> >>> -- >>> B e s t S o l u t i o n . a t EDV Systemhaus GmbH >>> ------------------------------------------------------------------------ >>> tom schindl gesch?ftsf?hrer/CEO >>> ------------------------------------------------------------------------ >>> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 >>> http://www.BestSolution.at phone ++43 512 935834 >>> >>> >> From adam at adamish.com Thu May 10 05:57:53 2012 From: adam at adamish.com (Adam Granger) Date: Thu, 10 May 2012 11:57:53 -0100 Subject: Why is the windows runtime/sdk only provided as .exe In-Reply-To: <4FABB567.2040404@oracle.com> References: <4F045E66.2020408@bestsolution.at> <4F047CCF.6080600@oracle.com> <4F047EA0.5060300@bestsolution.at> <4F048053.6010107@oracle.com> <4FA8F6CD.4000501@bestsolution.at> <4FA92244.8090202@oracle.com> <9F82B134-6E8E-474C-90AC-A656CBE4746D@bestsolution.at> <4FAAEF48.7010108@bestsolution.at> <4FABB567.2040404@oracle.com> Message-ID: Hi Kevin, My experience on the subject.... I work for a large software company, currently we do our GUIs with Swing. I did some R&D with JavaFX, and have been trying to push for its adoption... - My only objections to the .exe distribution are that it requires admin to install - which most developers don't have - (a ridiculous corporate IT strategy!) and that the installation directory cannot be changed. Surely an advanced install option could be added allowing normal user install to a custom directory? I've zipped up c:\program files\oracle\JavaFX* from one machine and copied to another without issue, so whatever additional work the .exe is doing is unnecessary in our case... - our target platform is Linux although some people use Windows as a dev environment. Things move slowly round here, I doubt we'll be moving to Java7 anytime soon, so a standalone JavaFX that works with Java6 on Linux would be essential for us to start using it. Are there any technical limitations as to why JavaFX2 cannot run with Java6 on Linux as it does on Windows? Regards, Adam. > Hi Tom, > > This is a product management decision, based largely on two things: > > 1) Alignment with the JDK, which doesn't provide .zip files for Mac and > Windows > > 2) For Mac and Linux the only supported way to get JavaFX is bundled > with JDK7. We don't release / support an unbundled JavaFX on those > platforms. Going forward this will be true for Windows as well. > Standalone JavaFX 2.x bundles will continue to be released for Windows > to support JDK6. Developer preview releases will also continue to be > released as standalone bundles (including .zip). > > My understanding is that product management is looking into the > possibility of releasing JDK as a .zip bundle but they would need to > respond as what the status of that is. > > I have included Nicolas and Ajay on this who can speak to these issues. > > -- Kevin > > > Tom Schindl wrote: >> Hi Kevin, >> >> I'm replying here because I think more people who are interested in zips >> (e.g. anyone using maven!) are listening here. >> >> So you are stating in the bug that no zips will be provided anymore >> which I think is a very disappointing situation - I will and have to >> accept it. >> >> If you read through the mailing list threads how Richard, Jasper, ... >> advised to deploy JavaFX application they always stated that one should >> bundle it with the application (probably with the JRE which is a no go >> when we talk about Webstart). >> >> Without providing zips you force me to have: >> * Win32 >> * Mac OS X > 10.7.0 >> * Linux (in future) >> >> to extract the fxjar + native libs to repackage in my custom app. I know >> I need them anyways to test, ... but forcing me to do it manually >> instead of simply providing zip downloads is ridiculous (and because of >> the licensing stuff I one person in the world would have done and wants >> to share it with the rest of us he/she is not allowed). >> >> For me as a tooling vendor your current decision gives me headaches >> because I want and need to support multiple different >> SDK-Install-Styles: >> * Dev Preview install (done through zips with the structure in there) >> >> * JDK-7-Installs >> => Not sure how they look like and I'm unable to test because I only >> have OS-X 10.6.8 >> >> * JDK-6 >> >> When we take a look into the future this JDK-Exe install kind of thing >> is a deadend road because you'll stop viewing the JDK/JRE as an all in >> one thing installable through one .exe because of jigsaw. >> >> Anyways I appreciate that you took a look but I'm not happy with it and >> hope I can find a way around it until then I can only point people to >> the JIRA entry when they want to use e(fx)clipse os OS-X. >> >> Can anyone here tell me how the OS-X JDK-7-Installation structure looks >> like? Where am I supposed to find: >> * the javafxrt.jar >> * the dlls >> * the fx-javadoc >> >> Tom >> >> Am 08.05.12 15:43, schrieb Tom Schindl: >> >>> Haveing the SDK-zips will solve all my current problems. Thanks for >>> taking a Look. >>> >>> Tom >>> >>> Von meinem iPhone gesendet >>> >>> Am 08.05.2012 um 15:40 schrieb Kevin Rushforth >>> : >>> >>> >>>> Hi Tom, >>>> >>>> I just looked and you are right...only see the .exe files were >>>> released for 2.1. I will check into this and get back to you. >>>> >>>> The Mac issue will be trickier since we don't have any tested / >>>> supported standalone bundles of JavaFX 2.1 on Mac. As a released >>>> product JavaFX 2.1 for Mac is only available as part of JDK 7u4. >>>> >>>> -- Kevin >>>> >>>> >>>> Tom Schindl wrote: >>>> >>>>> Kevin - can you take a look at this once more? Since the 2.1 release >>>>> the >>>>> zips for the SDKs are not available anymore! >>>>> >>>>> One can only download the one for 2.2 so it looks like the >>>>> dev-release >>>>> site was adjusted but the GA site not. >>>>> >>>>> For those of use doing cross platform development and packaging >>>>> JavaFX >>>>> with their apps getting geting the releases as zips is something >>>>> really >>>>> important. >>>>> >>>>> Sidenote: Even worse because I'm still on OS-X 10.6.8 I can't even >>>>> install JavaFX because the JDK-7 release requires at least 10.7.0 (I >>>>> know you are not support JavaFX prior to JDK 7) >>>>> >>>>> Thanks >>>>> >>>>> Tom >>>>> >>>>> Am 04.01.12 17:37, schrieb Kevin Rushforth: >>>>> >>>>> >>>>>> Oh, maybe we don't actually release the SDK on the public web page >>>>>> either (I knew we didn't release the runtime as a zip since we don't >>>>>> even generate it internally). >>>>>> >>>>>> -- Kevin >>>>>> >>>>>> >>>>>> Tom Schindl wrote: >>>>>> >>>>>> >>>>>>> Hi Kevin, >>>>>>> >>>>>>> Well maybe I'm blind but for win32 the there is NO zip available >>>>>>> from >>>>>>> this page [1]. >>>>>>> >>>>>>> The only thing available currently as a zip is the OS-X SDK version >>>>>>> which misses the win32 native libs not? I'll file a JIRA. >>>>>>> >>>>>>> [1]http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.html >>>>>>> >>>>>>> >>>>>>> Am 04.01.12 17:22, schrieb Kevin Rushforth: >>>>>>> >>>>>>> >>>>>>> >>>>>>>> Good question. The SDK is available as both an installer and a >>>>>>>> zip, and >>>>>>>> we could consider make the runtime available as a zip file as >>>>>>>> well, so >>>>>>>> please file a JIRA feature request for this. >>>>>>>> >>>>>>>> As for your other question, it is not currently possible to have >>>>>>>> 2.0.2 >>>>>>>> and 2.1 instaled side-by-side. >>>>>>>> >>>>>>>> -- Kevin >>>>>>>> >>>>>>>> >>>>>>>> Tom Schindl wrote: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> Now that since 2.0.2 (and also 2.1) are redistributeable it might >>>>>>>>> make >>>>>>>>> sense to provide them also as simple ZIP-Files. >>>>>>>>> >>>>>>>>> I find it odd that if I want to package JavaFX with my product >>>>>>>>> that I >>>>>>>>> first have to install something only my system, navigate to the >>>>>>>>> install >>>>>>>>> dir and copy over the stuff my own project directory. >>>>>>>>> >>>>>>>>> Is it BTW possible to have 2.1 and 2.0.2 installed next to each >>>>>>>>> other? I >>>>>>>>> guess not which makes it hard to test with both versions on the >>>>>>>>> same >>>>>>>>> system, which would be made much more easy if provided as simple >>>>>>>>> ZIP-Files. >>>>>>>>> >>>>>>>>> Would you mind providing JavaFX 2.1 binaries (and maybe also > >>>>>>>>> 2.0.2) as >>>>>>>>> a simple zip-File like you do it with 2.1 OS-X ones? >>>>>>>>> >>>>>>>>> Tom >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>> >>>>> >> >> >> > From lubomir.nerad at oracle.com Thu May 10 06:33:34 2012 From: lubomir.nerad at oracle.com (Lubomir Nerad) Date: Thu, 10 May 2012 15:33:34 +0200 Subject: RT-20302: Consider changing picking behavior of dashed strokes In-Reply-To: <4FAAA153.3060002@jugs.org> References: <4FAA90D1.5040400@oracle.com> <4FAAA153.3060002@jugs.org> Message-ID: <4FABC3AE.1080602@oracle.com> Hi Michael, On 5/9/2012 6:54 PM, Dr. Michael Paus wrote: > It is in general always a good idea to keep things consistent but one > also has to keep in mind > performance and the potential use-cases. So, how do you expect the > picking performance to be > affected by this change? This depends on how these dashed strokes are used in the scene. If they are used as decorations only, then the performance impact is zero (assuming the shapes which use them have mouse transparent properties set to true or the stroke types set to inside with non-null fills). If not, then the performance impact of this change on such objects will be negative. I assume that most of the time dashed strokes will fall in the first (decorations only) category. For usages which fall in the second category, it seems to me that the increased picking "accuracy" should be beneficial. > Concerning use-cases. What is the expectation of a user? I have to admit > that I would probably be surprised if I could not pick/select say a > circle at some point of its > obvious border only because the border happens to be dashed instead of > being solid. > What if you allow to zoom your scene and it is zoomed to the level when the dashes and spaces occupy large areas with another objects under them. It would be strange then to pick spaces instead of the objects under them, or not? > Finally it all depends on how you want picking to behave in general. > Is it a geometrical > operation of a graphical operation. It's a pity that JavaFX does not > offer us any choice > here, because for some use-cases a geometrical interpretation, which > is independent of > the graphical appearance of a shape, is much better suited as I have > outlined here: > http://javafx-jira.kenai.com/browse/RT-20452 > For the use cases you describe in RT-20452, it seems to me that it would be better to leave picking to the application. What I mean is that FX can handle picking for classical UI components and the "map" view node (to the extend that it is a rectangular area). Then when mouse events are delivered to the map view, the map view will choose what of its subnodes to highlight, select, execute actions for, etc. We can probably help such applications with providing some framework for geometry definition, manipulation and calculations and ensure its interoperability with the existing FX Shape(Node) classes. > Michael > Thanks, Lubo > > Am 09.05.2012 17:44, schrieb Lubomir Nerad: >> Hi, >> >> I would like to change mouse picking behavior of objects with dashed >> stroke as described in http://javafx-jira.kenai.com/browse/RT-20302. >> Currently an object is picked even when the mouse click happens in >> the non-filled parts (inside spaces) of the dashed stroke (stroke >> dash array and dash offset have no impact on picking). With RT-19994, >> this can create an unexpected situation, when a Shape is picked >> inside stroke spaces, but if it is used in a CAG operation (for >> example Shape.intersect(shape1, shape1)) the resulting Shape won't >> include the spaces and so won't be picked inside of them. To get >> consistent behavior I propose not to pick the spaces inside object >> stokes. >> >> Do you agree? >> >> Thanks, >> Lubo >> > > From hang.vo at oracle.com Thu May 10 06:33:53 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 10 May 2012 13:33:53 +0000 Subject: hg: openjfx/2.2/graphics/rt: [DOC-ONLY] Minor improvements of the documentation of gestures. Message-ID: <20120510133355.529FA47226@hg.openjdk.java.net> Changeset: 6eab966a809c Author: Pavel Safrata Date: 2012-05-10 15:21 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/6eab966a809c [DOC-ONLY] Minor improvements of the documentation of gestures. ! javafx-ui-common/src/javafx/scene/input/RotateEvent.java ! javafx-ui-common/src/javafx/scene/input/ScrollEvent.java ! javafx-ui-common/src/javafx/scene/input/ZoomEvent.java From mp at jugs.org Thu May 10 06:44:54 2012 From: mp at jugs.org (Dr. Michael Paus) Date: Thu, 10 May 2012 15:44:54 +0200 Subject: RT-20302: Consider changing picking behavior of dashed strokes In-Reply-To: <4FABC3AE.1080602@oracle.com> References: <4FAA90D1.5040400@oracle.com> <4FAAA153.3060002@jugs.org> <4FABC3AE.1080602@oracle.com> Message-ID: <4FABC656.7030103@jugs.org> Hi Lubo Am 10.05.2012 15:33, schrieb Lubomir Nerad: > Hi Michael, > > On 5/9/2012 6:54 PM, Dr. Michael Paus wrote: >> It is in general always a good idea to keep things consistent but one >> also has to keep in mind >> performance and the potential use-cases. So, how do you expect the >> picking performance to be >> affected by this change? > > This depends on how these dashed strokes are used in the scene. If > they are used as decorations only, then the performance impact is zero > (assuming the shapes which use them have mouse transparent properties > set to true or the stroke types set to inside with non-null fills). Maybe this should be documented somewhere. > If not, then the performance impact of this change on such objects > will be negative. I assume that most of the time dashed strokes will > fall in the first (decorations only) category. For usages which fall > in the second category, it seems to me that the increased picking > "accuracy" should be beneficial. > >> Concerning use-cases. What is the expectation of a user? I have to admit >> that I would probably be surprised if I could not pick/select say a >> circle at some point of its >> obvious border only because the border happens to be dashed instead >> of being solid. >> > > What if you allow to zoom your scene and it is zoomed to the level > when the dashes and spaces occupy large areas with another objects > under them. It would be strange then to pick spaces instead of the > objects under them, or not? Ok, under these circumstances you are probably right. > >> Finally it all depends on how you want picking to behave in general. >> Is it a geometrical >> operation of a graphical operation. It's a pity that JavaFX does not >> offer us any choice >> here, because for some use-cases a geometrical interpretation, which >> is independent of >> the graphical appearance of a shape, is much better suited as I have >> outlined here: >> http://javafx-jira.kenai.com/browse/RT-20452 >> > > For the use cases you describe in RT-20452, it seems to me that it > would be better to leave picking to the application. Yes, that was also my conclusion but this needs further support in JavaFX for geometric picking. > What I mean is that FX can handle picking for classical UI components > and the "map" view node (to the extend that it is a rectangular area). > Then when mouse events are delivered to the map view, the map view > will choose what of its subnodes to highlight, select, execute actions > for, etc. We can probably help such applications with providing some > framework for geometry definition, manipulation and calculations and > ensure its interoperability with the existing FX Shape(Node) classes. That would be great but I would already be happy if you could provide the functionality which I have provided in the two methods attached to RT-20452. > >> Michael >> > > Thanks, > Lubo > >> >> Am 09.05.2012 17:44, schrieb Lubomir Nerad: >>> Hi, >>> >>> I would like to change mouse picking behavior of objects with dashed >>> stroke as described in http://javafx-jira.kenai.com/browse/RT-20302. >>> Currently an object is picked even when the mouse click happens in >>> the non-filled parts (inside spaces) of the dashed stroke (stroke >>> dash array and dash offset have no impact on picking). With >>> RT-19994, this can create an unexpected situation, when a Shape is >>> picked inside stroke spaces, but if it is used in a CAG operation >>> (for example Shape.intersect(shape1, shape1)) the resulting Shape >>> won't include the spaces and so won't be picked inside of them. To >>> get consistent behavior I propose not to pick the spaces inside >>> object stokes. >>> >>> Do you agree? >>> >>> Thanks, >>> Lubo >>> >> >> -- -------------------------------------------------------------------------------------- Dr. Michael Paus, Chairman of the Java User Group Stuttgart e.V. (JUGS). For more information visit www.jugs.de. From tom.schindl at bestsolution.at Thu May 10 06:48:13 2012 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Thu, 10 May 2012 15:48:13 +0200 Subject: Why is the windows runtime/sdk only provided as .exe In-Reply-To: <4FABB727.2020409@oracle.com> References: <4F045E66.2020408@bestsolution.at> <4F047CCF.6080600@oracle.com> <4F047EA0.5060300@bestsolution.at> <4F048053.6010107@oracle.com> <4FA8F6CD.4000501@bestsolution.at> <4FA92244.8090202@oracle.com> <9F82B134-6E8E-474C-90AC-A656CBE4746D@bestsolution.at> <4FAAEF48.7010108@bestsolution.at> <4FABB727.2020409@oracle.com> Message-ID: <4FABC71D.7090905@bestsolution.at> Well if you are at that. Why is the source (the portion which is opensource already) not packaged with the JDK as well? I think your current story has a lot of holes at the moment because although you pretend you are part of the JDK in fact you are not and are not following JDK: * missing source * missing javadoc (The source shiping should be added also to the 2.2 zips IMHO) So why not revert the management position and ship zips until you really managed to be a part of JDK? If you manage to do this in 2.2 fine but don't leave the users without a solution until 2.2 is released (which is sometime in autumn?). Tom Am 10.05.12 14:40, schrieb Kevin Rushforth: > Hi Kim, > > You are right. The FX docs are currently not included with the JDK on > Mac. I have filed RT-21463 > to address this for FX > 2.2 / JDK 7u6. > > -- Kevin > > > Kim Topley wrote: >> As far as I can see, there is no JavaFX API documentation included. >> >> On Wed, May 9, 2012 at 6:58 PM, Kim Topley wrote: >> >> >>> The code goes to >>> /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre/lib - I see >>> jfxrt.jar and the JavaFX DLLs in there. I haven't downloaded the Javadoc >>> package yet - I'll post again when I have done so. >>> >>> >>> On Wed, May 9, 2012 at 6:27 PM, Tom Schindl wrote: >>> >>> >>>> Hi Kevin, >>>> >>>> I'm replying here because I think more people who are interested in zips >>>> (e.g. anyone using maven!) are listening here. >>>> >>>> So you are stating in the bug that no zips will be provided anymore >>>> which I think is a very disappointing situation - I will and have to >>>> accept it. >>>> >>>> If you read through the mailing list threads how Richard, Jasper, ... >>>> advised to deploy JavaFX application they always stated that one should >>>> bundle it with the application (probably with the JRE which is a no go >>>> when we talk about Webstart). >>>> >>>> Without providing zips you force me to have: >>>> * Win32 >>>> * Mac OS X > 10.7.0 >>>> * Linux (in future) >>>> >>>> to extract the fxjar + native libs to repackage in my custom app. I know >>>> I need them anyways to test, ... but forcing me to do it manually >>>> instead of simply providing zip downloads is ridiculous (and because of >>>> the licensing stuff I one person in the world would have done and wants >>>> to share it with the rest of us he/she is not allowed). >>>> >>>> For me as a tooling vendor your current decision gives me headaches >>>> because I want and need to support multiple different SDK-Install-Styles: >>>> * Dev Preview install (done through zips with the structure in there) >>>> >>>> * JDK-7-Installs >>>> => Not sure how they look like and I'm unable to test because I only >>>> have OS-X 10.6.8 >>>> >>>> * JDK-6 >>>> >>>> When we take a look into the future this JDK-Exe install kind of thing >>>> is a deadend road because you'll stop viewing the JDK/JRE as an all in >>>> one thing installable through one .exe because of jigsaw. >>>> >>>> Anyways I appreciate that you took a look but I'm not happy with it and >>>> hope I can find a way around it until then I can only point people to >>>> the JIRA entry when they want to use e(fx)clipse os OS-X. >>>> >>>> Can anyone here tell me how the OS-X JDK-7-Installation structure looks >>>> like? Where am I supposed to find: >>>> * the javafxrt.jar >>>> * the dlls >>>> * the fx-javadoc >>>> >>>> Tom >>>> >>>> Am 08.05.12 15:43, schrieb Tom Schindl: >>>> >>>>> Haveing the SDK-zips will solve all my current problems. Thanks for >>>>> >>>> taking a Look. >>>> >>>>> Tom >>>>> >>>>> Von meinem iPhone gesendet >>>>> >>>>> Am 08.05.2012 um 15:40 schrieb Kevin Rushforth < >>>>> >>>> kevin.rushforth at oracle.com>: >>>> >>>>>> Hi Tom, >>>>>> >>>>>> I just looked and you are right...only see the .exe files were >>>>>> >>>> released for 2.1. I will check into this and get back to you. >>>> >>>>>> The Mac issue will be trickier since we don't have any tested / >>>>>> >>>> supported standalone bundles of JavaFX 2.1 on Mac. As a released product >>>> JavaFX 2.1 for Mac is only available as part of JDK 7u4. >>>> >>>>>> -- Kevin >>>>>> >>>>>> >>>>>> Tom Schindl wrote: >>>>>> >>>>>>> Kevin - can you take a look at this once more? Since the 2.1 release >>>>>>> >>>> the >>>> >>>>>>> zips for the SDKs are not available anymore! >>>>>>> >>>>>>> One can only download the one for 2.2 so it looks like the dev-release >>>>>>> site was adjusted but the GA site not. >>>>>>> >>>>>>> For those of use doing cross platform development and packaging JavaFX >>>>>>> with their apps getting geting the releases as zips is something >>>>>>> >>>> really >>>> >>>>>>> important. >>>>>>> >>>>>>> Sidenote: Even worse because I'm still on OS-X 10.6.8 I can't even >>>>>>> install JavaFX because the JDK-7 release requires at least 10.7.0 (I >>>>>>> know you are not support JavaFX prior to JDK 7) >>>>>>> >>>>>>> Thanks >>>>>>> >>>>>>> Tom >>>>>>> >>>>>>> Am 04.01.12 17:37, schrieb Kevin Rushforth: >>>>>>> >>>>>>> >>>>>>>> Oh, maybe we don't actually release the SDK on the public web page >>>>>>>> either (I knew we didn't release the runtime as a zip since we don't >>>>>>>> even generate it internally). >>>>>>>> >>>>>>>> -- Kevin >>>>>>>> >>>>>>>> >>>>>>>> Tom Schindl wrote: >>>>>>>> >>>>>>>> >>>>>>>>> Hi Kevin, >>>>>>>>> >>>>>>>>> Well maybe I'm blind but for win32 the there is NO zip available >>>>>>>>> >>>> from >>>> >>>>>>>>> this page [1]. >>>>>>>>> >>>>>>>>> The only thing available currently as a zip is the OS-X SDK version >>>>>>>>> which misses the win32 native libs not? I'll file a JIRA. >>>>>>>>> >>>>>>>>> [1] >>>>>>>>> >>>> http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.html >>>> >>>>>>>>> Am 04.01.12 17:22, schrieb Kevin Rushforth: >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> Good question. The SDK is available as both an installer and a >>>>>>>>>> >>>> zip, and >>>> >>>>>>>>>> we could consider make the runtime available as a zip file as >>>>>>>>>> >>>> well, so >>>> >>>>>>>>>> please file a JIRA feature request for this. >>>>>>>>>> >>>>>>>>>> As for your other question, it is not currently possible to have >>>>>>>>>> >>>> 2.0.2 >>>> >>>>>>>>>> and 2.1 instaled side-by-side. >>>>>>>>>> >>>>>>>>>> -- Kevin >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Tom Schindl wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> Hi, >>>>>>>>>>> >>>>>>>>>>> Now that since 2.0.2 (and also 2.1) are redistributeable it might >>>>>>>>>>> >>>> make >>>> >>>>>>>>>>> sense to provide them also as simple ZIP-Files. >>>>>>>>>>> >>>>>>>>>>> I find it odd that if I want to package JavaFX with my product >>>>>>>>>>> >>>> that I >>>> >>>>>>>>>>> first have to install something only my system, navigate to the >>>>>>>>>>> >>>> install >>>> >>>>>>>>>>> dir and copy over the stuff my own project directory. >>>>>>>>>>> >>>>>>>>>>> Is it BTW possible to have 2.1 and 2.0.2 installed next to each >>>>>>>>>>> >>>> other? I >>>> >>>>>>>>>>> guess not which makes it hard to test with both versions on the >>>>>>>>>>> >>>> same >>>> >>>>>>>>>>> system, which would be made much more easy if provided as simple >>>>>>>>>>> ZIP-Files. >>>>>>>>>>> >>>>>>>>>>> Would you mind providing JavaFX 2.1 binaries (and maybe also > >>>>>>>>>>> >>>> 2.0.2) as >>>> >>>>>>>>>>> a simple zip-File like you do it with 2.1 OS-X ones? >>>>>>>>>>> >>>>>>>>>>> Tom >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>>>> >>>>>>> >>>> -- >>>> B e s t S o l u t i o n . a t EDV Systemhaus GmbH >>>> ------------------------------------------------------------------------ >>>> tom schindl gesch?ftsf?hrer/CEO >>>> ------------------------------------------------------------------------ >>>> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 >>>> http://www.BestSolution.at phone ++43 512 935834 >>>> >>>> >>> -- B e s t S o l u t i o n . a t EDV Systemhaus GmbH ------------------------------------------------------------------------ tom schindl gesch?ftsf?hrer/CEO ------------------------------------------------------------------------ eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 http://www.BestSolution.at phone ++43 512 935834 From hang.vo at oracle.com Thu May 10 06:48:43 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 10 May 2012 13:48:43 +0000 Subject: hg: openjfx/2.2/graphics/rt: RT-20529 Need a way to know currently focused component Message-ID: <20120510134844.61C2F47228@hg.openjdk.java.net> Changeset: 5ca940a2fd8c Author: Martin Sladecek Date: 2012-05-10 15:38 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/5ca940a2fd8c RT-20529 Need a way to know currently focused component ! javafx-ui-common/src/com/sun/javafx/stage/PopupEventRedirector.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/src/javafx/scene/Scene.java ! javafx-ui-common/test/unit/javafx/scene/FocusTest.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/TextInputControlSkin.java ! javafx-ui-controls/test/com/sun/javafx/scene/control/skin/ScrollPaneSkinTest.java From richard.bair at oracle.com Thu May 10 06:52:13 2012 From: richard.bair at oracle.com (Richard Bair) Date: Thu, 10 May 2012 06:52:13 -0700 Subject: API REVIEW request for RT-19042: Add fontSmoothingType API to WebView In-Reply-To: <4FABA323.3050703@oracle.com> References: <25BEC692-D1FF-494D-829C-2ACE0947D910@oracle.com> <0DB6630A-1601-4797-9047-98E7D63BAFDB@oracle.com> <4FABA323.3050703@oracle.com> Message-ID: <00BCFFB0-6A71-4242-8A85-F333DB8F5D64@oracle.com> Sounds good! On May 10, 2012, at 4:14 AM, Peter Zhelezniakov wrote: > Hi Richard, > > On 05/10/12 05:12, Richard Bair wrote: >> It seems like it should just be on by default. The controls all require FX CSS anyway, so it made sense to toggle it there (since we didn't want all text nodes to use LCD for performance reasons). >> >> I don't know that it makes sense to default to gray scale and require CSS to "fix" the default. > > > Ok, I've changed the default to LCD, and removed now unneeded changes to > caspian.css: > > /** > * Specifies a requested font smoothing type : gray or LCD. > * > * The width of the bounding box is defined by the widest row. > * > * Note: LCD mode doesn't apply in numerous cases, such as various > * compositing modes, where effects are applied and very large glyphs. > * > * @defaultValue FontSmoothingType.LCD > */ > private ObjectProperty fontSmoothingType; > > public final void setFontSmoothingType(FontSmoothingType value); > public final FontSmoothingType getFontSmoothingType(); > public final ObjectProperty > fontSmoothingTypeProperty(); > > /** > * Super-lazy instantiation pattern from Bill Pugh. > * StyleableProperties is referenced no earlier > * (and therefore loaded no earlier by the class loader) > * than the moment that {@code impl_CSS_STYLEABLES()} is called. > * > * @return list of supported styleable properties > * @treatAsPrivate implementation detail > * @deprecated this is an internal API > * that is not intended for use > * and will be removed in the next version > */ > @Deprecated > public static List impl_CSS_STYLEABLES() { > return WebView.StyleableProperties.STYLEABLES; > } > > /** > * @return list of supported styleable properties > * @treatAsPrivate implementation detail > * @deprecated this is an experimental API > * that is not intended for general use > * and is subject to change in future versions > */ > @Deprecated @Override > public List impl_getStyleableProperties() { > return impl_CSS_STYLEABLES(); > } > > > Thanks! > -- > Peter From richard.bair at oracle.com Thu May 10 07:18:27 2012 From: richard.bair at oracle.com (Richard Bair) Date: Thu, 10 May 2012 07:18:27 -0700 Subject: API change RT-19955: Configuring a PopupWindow so that it consumes the event used for hiding In-Reply-To: <4FABA638.2080801@oracle.com> References: <4F9A8279.7070708@oracle.com> <4F9A8BC7.7000909@media-interactive.de> <4FA114C8.6050504@oracle.com> <4FAA56A9.8030204@oracle.com> <64DE710D-15C9-4C3D-ADFF-51AD872332B7@oracle.com> <4FABA638.2080801@oracle.com> Message-ID: <8F3576CD-F0E5-4B20-90BA-3D9B623291C9@oracle.com> (a) Do we add consumeAutoHidingEvents? Yes, +1 (b) Do we use a different name? I don't mind, but some other ideas: forwardEventsCausingAutoHide consumeEventsCausingAutoHide They are long though! (c) Do we change the default behavior? I'm not sure. Sometimes apps want one, sometimes the other. I would be tempted to remain compatible and not change the default behavior. What do you think? Richard On May 10, 2012, at 4:27 AM, Lubomir Nerad wrote: > Yes. It seems that in Safari popups invoked from toolbars have different behavior than popups invoked from dialogs. > > On 5/10/2012 2:10 AM, Richard Bair wrote: >> I tried the download pop up, and then clicking something outside the download popup. Do you see the same? >> >> On May 9, 2012, at 4:36 AM, Lubomir Nerad wrote: >> >>> On 5/7/2012 10:43 PM, Richard Bair wrote: >>>>>> Hi Lubo, >>>>>> >>>>>> why do you think that the name is ambiguous? Seems clear to me. Some >>>>>> other thoughts: >>>>> I don't remember how exactly the auto-hide feature for popups is implemented. Is it sometimes triggered from Glass ("ungrab" event)? What event will be consumed in this case? >>>>> >>>>> Are we confident we'll be able to implement this property? If a popup is auto-hidden from the ungrab event handler, there may be no direct connection between this event and the mouse/key/etc. event to consume. >>>> Before approving the API addition I guess we need to know the answer to this. Likewise, the default behavior I think is platform specific. At least in Safari, it seems that it does not consume mouse events by default that cause the popup to be closed. However I know Cocoa has an API for specifying what this behavior should be. If we add such an API, we probably will want to make sure it defaults to some platform specific value rather than always defaulting to "true" or "false"? >>>> >>> The property only aims at controlling the events between the popup and its parent window. Ungrab events and possible mouse clicks which caused them (outside of the popup window and its parent window) can't be influenced in general (and probably shouldn't be). >>> >>> In Safari, it seems to me that the events are actually consumed. If you invoke preferences and in one tab page expand a combo box, then click on an another control in the same tab page, the function of that other control is not executed. Only if the interaction involves multiple windows, I can see that the event is not consumed. With the property we will control this behavior among controls / popups of a single window, while leaving the behavior between multiple windows OS dependent. >>> >>> Thanks, >>> Lubo >>> >>> >>> >>> From daniel.fuchs at oracle.com Thu May 10 07:19:06 2012 From: daniel.fuchs at oracle.com (Daniel Fuchs) Date: Thu, 10 May 2012 16:19:06 +0200 Subject: [Review request] Adding pre-built cells and cell factories to JavaFX In-Reply-To: References: Message-ID: <4FABCE5A.4090105@oracle.com> On 5/10/12 2:32 PM, openjfx-dev-request at openjdk.java.net wrote: > Date: Thu, 10 May 2012 07:51:30 -0400 > From: Greg Brown > Subject: Re: [Review request] Adding pre-built cells and cell > factories to JavaFX > To: Daniel Fuchs > Cc: openjfx-dev at openjdk.java.net > Message-ID: <6E403608-5602-4E3E-B8A7-EB7F687B300C at oracle.com> > Content-Type: text/plain; charset=iso-8859-1 > >> The question is whether the properties required to configure the >> factory instance can all be expressed in FXML > Pretty much any property can be expressed in FXML. The important part is that the factories should be configurable via properties rather than constructor or factory method arguments, since these are expressible in FXML whereas method arguments are not. > Yes - of course - what I meant is that for it to be usable out-of-the-box in FXML you'd need to have public concrete configurable classes for all the properties expected by the factory instances - which does not seem to be the case with the current API. -- daniel From greg.x.brown at oracle.com Thu May 10 07:33:00 2012 From: greg.x.brown at oracle.com (Greg Brown) Date: Thu, 10 May 2012 10:33:00 -0400 Subject: [Review request] Adding pre-built cells and cell factories to JavaFX In-Reply-To: <4FABCE5A.4090105@oracle.com> References: <4FABCE5A.4090105@oracle.com> Message-ID: > Yes - of course - what I meant is that for it to be > usable out-of-the-box in FXML you'd need to have public concrete > configurable classes for all the properties expected > by the factory instances - which does not seem to be > the case with the current API. Correct - in order to use the current APIs in FXML, we'll need to use a builder. Also, since it looks like some of the APIs take property objects, we'll probably need to modify FXMLLoader. FXML doesn't currently provide a way to get a reference to a property model - we'll need to add a new keyword and/or a new resolution operator to support this: or: G From greg.x.brown at oracle.com Thu May 10 07:39:21 2012 From: greg.x.brown at oracle.com (Greg Brown) Date: Thu, 10 May 2012 10:39:21 -0400 Subject: [Review request] Adding pre-built cells and cell factories to JavaFX In-Reply-To: References: <4FABCE5A.4090105@oracle.com> Message-ID: > Correct - in order to use the current APIs in FXML, we'll need to use a builder. What I mean is that we'll need to provide a builder - the developer should not need to create one. G From david.dehaven at oracle.com Thu May 10 07:55:21 2012 From: david.dehaven at oracle.com (David DeHaven) Date: Thu, 10 May 2012 07:55:21 -0700 Subject: MediaPlayer, MP4, and subtitles In-Reply-To: <5744BAED2672604BAD460241A3A8B31D226B9FB5@MAIL-01.mc.local> References: <5744BAED2672604BAD460241A3A8B31D226B9FB5@MAIL-01.mc.local> Message-ID: <5DA14200-00C5-4CE7-AA07-E815D62DD0D1@oracle.com> > Is there a way to play subtitled files using MediaPlayer? Subtitles are not supported at this time. It is on the list for 3.0 though. > I'm loading a local MP4 (x264, AAC) video using the default Media/MediaPlayer/MediaView combo. Works OK. > When loading the same file with a subtitle track added, the subtitle track is not recognized and the file is not played at all (no exceptions thrown). It should still play the audio and video tracks, ignoring the subtitles. You should file a bug in JIRA and attach a *small* sample clip that reproduces the problem. > The way I see it, there should exist a SubtitleTrack class (same way there's an AudioTrack and VideoTrack) that, even if it doesn't render the subtitles on top of the video, should provide a way to access the contents so the user could add it as an overlay programatically. > > What would be the best way to approach this problem? The only way right now would be to manually parse the subtitles, add markers to the Media and use those to trigger rendering the text. Please file a feature request in JIRA, it will help give the issue priority. -DrD- From tom.schindl at bestsolution.at Thu May 10 07:55:30 2012 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Thu, 10 May 2012 16:55:30 +0200 Subject: Redirecting log information In-Reply-To: <44FA9AA8-130C-46DF-9979-3A7912706312@oracle.com> References: <4FA8396A.2070305@bestsolution.at> <50376A1F-FEE5-410B-BFE4-AABE3F5AC352@gmx.de> <4FA84B0B.5070303@bestsolution.at> <4FA90F6D.4020704@bestsolution.at> <4FA93B95.2080104@oracle.com> <4FA9447C.4030906@oracle.com> <44FA9AA8-130C-46DF-9979-3A7912706312@oracle.com> Message-ID: <4FABD6E2.9080200@bestsolution.at> Hi, To me it looks like e.g. the CSS-Engine (and all other stuff) is not logging through java.util.Logger but through: PlatformLogger cssLogger = Logging.getCSSLogger(); which at least in my current test ends up in > Thread [JavaFX Application Thread] (Suspended) > PrintStream.println(String) line: 755 > PlatformLogger$LoggerProxy.doLog(int, String) line: 361 > PlatformLogger.severe(String) line: 217 > TestApp.start(Stage) line: 22 > LauncherImpl$5.run() line: 315 > PlatformImpl$4.run() line: 174 > PlatformImpl$3.run() line: 141 > WinApplication._runLoop(String[], Launchable) line: not available [native method] > WinApplication.access$100(WinApplication, String[], Launchable) line: 29 > WinApplication$2$1.run() line: 62 > Thread.run() line: 662 I wished the source of this would be available ;-) Tom Am 08.05.12 18:54, schrieb Richard Bair: > Ya, both JDK logging and JFX logging have the same flag checks available. > > On May 8, 2012, at 9:06 AM, Phil Race wrote: > >> I think the graphics code mostly if not always, guards those printlns with a check for >> a debugging flag. Unless used in a similar manner, the logging API carries overhead. >> There was a fix in JDK 7 to eliminate dependency on logging from AWT/2D/Swing. >> In part that was because of modularisation .. I don't know the full story on why >> that mattered. >> >> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6879044 : >> Eliminate the dependency on logging from the AWT/2D/Swing classes >> >> -phil. >> >> On 5/8/2012 8:28 AM, Kevin Rushforth wrote: >>> This would certainly make everyone's life easier. >>> >>> In any case, library code should never write debug/warning/error meesages to System.out / stdout (and yes, I know that some of the graphics currently does). Best is to use logging where possible for the reasons Richard mentioned, and System.err / stderr where not. >>> >>> -- Kevin >>> >>> >>> Richard Bair wrote: >>>> Not all JavaFx code is consistent on logging. In particular, the graphics code just uses System.out and System.err, whereas controls use a Logger which goes to System.out unless you enable JDK logging, in which case it uses a JDK Logger. >>>> >>>> I feel we ought to use the same logging method consistently, and then it should be quite easy for you to redirect by utilizing the JDK logging mechanism? >>>> >>>> On May 8, 2012, at 5:19 AM, Tom Schindl wrote: >>>> >>>>> Hi, >>>>> >>>>> The problem is the point at which one redirects the stderr. Take a look >>>>> at this: >>>>> >>>>>> public class TestApp extends Application { >>>>>> >>>>>> @Override >>>>>> public void start(Stage primaryStage) { >>>>>> ByteArrayOutputStream out = new ByteArrayOutputStream(); >>>>>> PrintStream orig = System.err; >>>>>> System.setErr(new PrintStream(out)); // Works >>>>> vs. >>>>> >>>>>> public class TestApp extends Application { >>>>>> >>>>>> @Override >>>>>> public void start(Stage primaryStage) { >>>>>> ByteArrayOutputStream out = new ByteArrayOutputStream(); >>>>>> PrintStream orig = System.err; >>>>>> Group g = new Group(); >>>>>> System.setErr(new PrintStream(out)); // Does not work >>>>> The problem is that Option 1 is not possible for me because I only have >>>>> to redirect the logging information from JavaFX while your solution >>>>> completely redirects STDERR with is not making much sense! >>>>> >>>>> Sad enough the Logging code is not yet opensourced so I still hope that >>>>> a JavaFX dev with access to the code can help me. >>>>> >>>>> So I repeat my question. Can I somehow set a custom logger to the JavaFX >>>>> platform? >>>>> >>>>> Tom >>>>> >>>>> Am 08.05.12 00:22, schrieb Tom Schindl: >>>>>> I've tried that already and couldn't make it work. Did you try it and it >>>>>> worked? Then I'd give another try. >>>>>> >>>>>> Tom >>>>>> >>>>>> Am 08.05.12 00:25, schrieb Christian Schudt: >>>>>>> You can redirect the System.err stream to your logger. >>>>>>> >>>>>>> See here: >>>>>>> >>>>>>> https://forums.oracle.com/forums/thread.jspa?messageID=10304321 >>>>>>> http://stackoverflow.com/questions/1200175/log4j-redirect-stdout-to-dailyrollingfileappender/1370033#1370033 >>>>>>> >>>>>>> Christian >>>>>>> >>>>>>> >>>>>>> Am 07.05.2012 um 23:06 schrieb Tom Schindl: >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> I'm having a hard time redirecting log output generated by JavaFX >>>>>>>> library. Is there some API available or documentation? >>>>>>>> >>>>>>>> Tom >>>>>>>> >>>>>>>> -- >>>>>>>> B e s t S o l u t i o n . a t EDV Systemhaus GmbH >>>>>>>> ------------------------------------------------------------------------ >>>>>>>> tom schindl gesch?ftsf?hrer/CEO >>>>>>>> ------------------------------------------------------------------------ >>>>>>>> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 >>>>>>>> http://www.BestSolution.at phone ++43 512 935834 >>>>> -- >>>>> B e s t S o l u t i o n . a t EDV Systemhaus GmbH >>>>> ------------------------------------------------------------------------ >>>>> tom schindl gesch?ftsf?hrer/CEO >>>>> ------------------------------------------------------------------------ >>>>> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 >>>>> http://www.BestSolution.at phone ++43 512 935834 >> -- B e s t S o l u t i o n . a t EDV Systemhaus GmbH ------------------------------------------------------------------------ tom schindl gesch?ftsf?hrer/CEO ------------------------------------------------------------------------ eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 http://www.BestSolution.at phone ++43 512 935834 From martin.desruisseaux at geomatys.fr Thu May 10 08:30:25 2012 From: martin.desruisseaux at geomatys.fr (Martin Desruisseaux) Date: Thu, 10 May 2012 17:30:25 +0200 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FAA8A38.6090706@oracle.com> References: <4FAA8A38.6090706@oracle.com> Message-ID: <4FABDF11.5040305@geomatys.fr> Hello all Le 09/05/12 17:16, Pavel Safrata a ?crit : > We considered another option: creating a new class > TransformationMatrix. This class would be immutable and would contain > various methods for work with matrices. All the transforms would have > a getter that would return an instance of this class, the Affine class > would have also a setter. Now the localToSceneTransformation property > could be of type TransformationMatrix. This would spare us the above > problems and provide an independent class for matrix operations, but > on the other hand, converting transformations to the matrix and back > may be an unnecessary burden, also doing some complex matrix > computation with an immutable matrix class would result in pretty huge > garbage production (slowing down the computation). If this approach was selected, maybe a plain "Matrix" class name, with 'getNumRows()', 'getNumColumns()' and 'get(i,j)' methods would be sufficient. This would allow usage in two-dimensional cases (as 3?3 matrices), three-dimensional cases (as 4?4 matrices), perspective transform (which is not affine, but still represented by 3?3 matrices) or other matrix operations not necessarily related to coordinate transformations. For example, when dealing with generic (not necessarily affine) coordinate transformations - for example map projections -, transforming a point is not always sufficient. Some time we need the mathematical derivative of the transform at a given point. In the particular case of affine transforms, the derivative is trivially the same everywhere, which may explain why Java2D has never feel a need for it (note however that java.awt.geom.AffineTransform has something close: the deltaTransform(...) method). But in the general case the transform derivative may vary at any point, and the result of a transform derivative can be express as a matrix. See for example: http://www.geoapi.org/snapshot/javadoc/org/opengis/referencing/operation/MathTransform.html#derivative%28org.opengis.geometry.DirectPosition%29 The derivatives are useful for example because a map projection may change straight lines into curved lines, and the derivative are useful for computing B?zier curves that approximate those curves. They are also useful for helping some iterative algorithms to converge faster. If the matrix class name was "TransformMatrix", we would need a "DerivativeMatrix" for the above case, and likewise for all other matrix usage. I think that a plain "Matrix" class of arbitrary dimension would fit better the need. > So we propose yet another approach. In the base Transform class, > introduce getters for all the elements of the transformation matrix > (not observable, just getters). Each transformation would be able to > return the values according to its current state. Our property would > then be of type Transform, allowing only for getting the matrix > values. This would make the property observable as a whole (creating a > new instance each time), unmodifiable, and would leave us with a > nicely open way to introduce the methods for matrix operations on the > Transform class, most of them probably returning the Affine instance > as a result, and the Affine class could then have a bunch of methods > to be modified in place. If this approach was selected, the "Transform" class name would become unfortunate, because the class name suggests arbitrary transform, while the above-cited getters would in practice restrict the transform to the affine case. This would be yet more confusing since an Affine class already exist. If we were allowed to rename the classes, it seems to me that the "Transform" class would need to be renamed "Affine" (because "Translate", "Scale", "Shear" and "Rotate" are special cases of affine transforms) and the current "Affine" would have to be renamed into something else, maybe "GeneralAffine". I would like to propose a mix of those two approaches: the 'localToSceneTransformation' property would be of kind "Transform" like the second proposal, but instead of individual getter methods for various matrix coefficients, provide the following method in the Transform class: public abstract Matrix getMatrix(Point3D location); For every current JavaFX implementations, the Point3D argument would be ignored and can be null. For custom implementations, e.g. map projections (or anything which is non-linear), the result vary for each points. This method would copy the current Transform state in a new Matrix object (i.e. take a snapshot) - so no need for new Transform instance when the state change, and no need for new Matrix instance when performing matrix operations (the operations could be applied in-place in the existing Matrix instance). Martin From tom.schindl at bestsolution.at Thu May 10 08:50:56 2012 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Thu, 10 May 2012 17:50:56 +0200 Subject: Redirecting log information In-Reply-To: <4FABD6E2.9080200@bestsolution.at> References: <4FA8396A.2070305@bestsolution.at> <50376A1F-FEE5-410B-BFE4-AABE3F5AC352@gmx.de> <4FA84B0B.5070303@bestsolution.at> <4FA90F6D.4020704@bestsolution.at> <4FA93B95.2080104@oracle.com> <4FA9447C.4030906@oracle.com> <44FA9AA8-130C-46DF-9979-3A7912706312@oracle.com> <4FABD6E2.9080200@bestsolution.at> Message-ID: <4FABE3E0.6070705@bestsolution.at> Ok I think I'm getting closer. If I do this: > PlatformLogger.redirectPlatformLoggers(); > PlatformLogger cssLogger = Logging.getCSSLogger(); > cssLogger.severe("Hello Log"); I get on JDK-6: SEVERE: test.TestApp start Hello Log On JDK-7: => An exception on start up > Exception in Application start method > Exception in thread "main" java.lang.RuntimeException: Exception in Application start method > at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:399) > at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:47) > at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:115) > at java.lang.Thread.run(Thread.java:722) > Caused by: java.lang.ExceptionInInitializerError > at com.sun.javafx.logging.PlatformLogger.redirectPlatformLoggers(PlatformLogger.java:144) > at test.TestApp.start(TestApp.java:19) > at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:315) > at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:174) > at com.sun.javafx.application.PlatformImpl$3.run(PlatformImpl.java:141) > at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) > at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29) > at com.sun.glass.ui.win.WinApplication$2$1.run(WinApplication.java:62) > ... 1 more > Caused by: java.lang.ClassCastException: java.util.logging.LoggingProxyImpl cannot be cast to com.sun.javafx.logging.LoggingProxy > at com.sun.javafx.logging.LoggingSupport$1.run(LoggingSupport.java:56) > at com.sun.javafx.logging.LoggingSupport$1.run(LoggingSupport.java:48) > at java.security.AccessController.doPrivileged(Native Method) > at com.sun.javafx.logging.LoggingSupport.(LoggingSupport.java:47) > ... 9 more So it looks like on JDK-6: * Does not care about the redirectPlatformLoggers and simply writes to STDERR on JDK-7: * It's not working at all. Am 10.05.12 16:55, schrieb Tom Schindl: > Hi, > > To me it looks like e.g. the CSS-Engine (and all other stuff) is not > logging through java.util.Logger but through: > > PlatformLogger cssLogger = Logging.getCSSLogger(); > > which at least in my current test ends up in > >> Thread [JavaFX Application Thread] (Suspended) >> PrintStream.println(String) line: 755 >> PlatformLogger$LoggerProxy.doLog(int, String) line: 361 >> PlatformLogger.severe(String) line: 217 >> TestApp.start(Stage) line: 22 >> LauncherImpl$5.run() line: 315 >> PlatformImpl$4.run() line: 174 >> PlatformImpl$3.run() line: 141 >> WinApplication._runLoop(String[], Launchable) line: not available [native method] >> WinApplication.access$100(WinApplication, String[], Launchable) line: 29 >> WinApplication$2$1.run() line: 62 >> Thread.run() line: 662 > > I wished the source of this would be available ;-) > > Tom > > Am 08.05.12 18:54, schrieb Richard Bair: >> Ya, both JDK logging and JFX logging have the same flag checks available. >> >> On May 8, 2012, at 9:06 AM, Phil Race wrote: >> >>> I think the graphics code mostly if not always, guards those printlns with a check for >>> a debugging flag. Unless used in a similar manner, the logging API carries overhead. >>> There was a fix in JDK 7 to eliminate dependency on logging from AWT/2D/Swing. >>> In part that was because of modularisation .. I don't know the full story on why >>> that mattered. >>> >>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6879044 : >>> Eliminate the dependency on logging from the AWT/2D/Swing classes >>> >>> -phil. >>> >>> On 5/8/2012 8:28 AM, Kevin Rushforth wrote: >>>> This would certainly make everyone's life easier. >>>> >>>> In any case, library code should never write debug/warning/error meesages to System.out / stdout (and yes, I know that some of the graphics currently does). Best is to use logging where possible for the reasons Richard mentioned, and System.err / stderr where not. >>>> >>>> -- Kevin >>>> >>>> >>>> Richard Bair wrote: >>>>> Not all JavaFx code is consistent on logging. In particular, the graphics code just uses System.out and System.err, whereas controls use a Logger which goes to System.out unless you enable JDK logging, in which case it uses a JDK Logger. >>>>> >>>>> I feel we ought to use the same logging method consistently, and then it should be quite easy for you to redirect by utilizing the JDK logging mechanism? >>>>> >>>>> On May 8, 2012, at 5:19 AM, Tom Schindl wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> The problem is the point at which one redirects the stderr. Take a look >>>>>> at this: >>>>>> >>>>>>> public class TestApp extends Application { >>>>>>> >>>>>>> @Override >>>>>>> public void start(Stage primaryStage) { >>>>>>> ByteArrayOutputStream out = new ByteArrayOutputStream(); >>>>>>> PrintStream orig = System.err; >>>>>>> System.setErr(new PrintStream(out)); // Works >>>>>> vs. >>>>>> >>>>>>> public class TestApp extends Application { >>>>>>> >>>>>>> @Override >>>>>>> public void start(Stage primaryStage) { >>>>>>> ByteArrayOutputStream out = new ByteArrayOutputStream(); >>>>>>> PrintStream orig = System.err; >>>>>>> Group g = new Group(); >>>>>>> System.setErr(new PrintStream(out)); // Does not work >>>>>> The problem is that Option 1 is not possible for me because I only have >>>>>> to redirect the logging information from JavaFX while your solution >>>>>> completely redirects STDERR with is not making much sense! >>>>>> >>>>>> Sad enough the Logging code is not yet opensourced so I still hope that >>>>>> a JavaFX dev with access to the code can help me. >>>>>> >>>>>> So I repeat my question. Can I somehow set a custom logger to the JavaFX >>>>>> platform? >>>>>> >>>>>> Tom >>>>>> >>>>>> Am 08.05.12 00:22, schrieb Tom Schindl: >>>>>>> I've tried that already and couldn't make it work. Did you try it and it >>>>>>> worked? Then I'd give another try. >>>>>>> >>>>>>> Tom >>>>>>> >>>>>>> Am 08.05.12 00:25, schrieb Christian Schudt: >>>>>>>> You can redirect the System.err stream to your logger. >>>>>>>> >>>>>>>> See here: >>>>>>>> >>>>>>>> https://forums.oracle.com/forums/thread.jspa?messageID=10304321 >>>>>>>> http://stackoverflow.com/questions/1200175/log4j-redirect-stdout-to-dailyrollingfileappender/1370033#1370033 >>>>>>>> >>>>>>>> Christian >>>>>>>> >>>>>>>> >>>>>>>> Am 07.05.2012 um 23:06 schrieb Tom Schindl: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> I'm having a hard time redirecting log output generated by JavaFX >>>>>>>>> library. Is there some API available or documentation? >>>>>>>>> >>>>>>>>> Tom >>>>>>>>> >>>>>>>>> -- >>>>>>>>> B e s t S o l u t i o n . a t EDV Systemhaus GmbH >>>>>>>>> ------------------------------------------------------------------------ >>>>>>>>> tom schindl gesch?ftsf?hrer/CEO >>>>>>>>> ------------------------------------------------------------------------ >>>>>>>>> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 >>>>>>>>> http://www.BestSolution.at phone ++43 512 935834 >>>>>> -- >>>>>> B e s t S o l u t i o n . a t EDV Systemhaus GmbH >>>>>> ------------------------------------------------------------------------ >>>>>> tom schindl gesch?ftsf?hrer/CEO >>>>>> ------------------------------------------------------------------------ >>>>>> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 >>>>>> http://www.BestSolution.at phone ++43 512 935834 >>> > > -- B e s t S o l u t i o n . a t EDV Systemhaus GmbH ------------------------------------------------------------------------ tom schindl gesch?ftsf?hrer/CEO ------------------------------------------------------------------------ eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 http://www.BestSolution.at phone ++43 512 935834 From richard.bair at oracle.com Thu May 10 09:07:19 2012 From: richard.bair at oracle.com (Richard Bair) Date: Thu, 10 May 2012 09:07:19 -0700 Subject: Redirecting log information In-Reply-To: <4FABD6E2.9080200@bestsolution.at> References: <4FA8396A.2070305@bestsolution.at> <50376A1F-FEE5-410B-BFE4-AABE3F5AC352@gmx.de> <4FA84B0B.5070303@bestsolution.at> <4FA90F6D.4020704@bestsolution.at> <4FA93B95.2080104@oracle.com> <4FA9447C.4030906@oracle.com> <44FA9AA8-130C-46DF-9979-3A7912706312@oracle.com> <4FABD6E2.9080200@bestsolution.at> Message-ID: <414810EE-A830-4895-99C8-2A2BEFD32227@oracle.com> >> Thread [JavaFX Application Thread] (Suspended) >> PrintStream.println(String) line: 755 >> PlatformLogger$LoggerProxy.doLog(int, String) line: 361 >> PlatformLogger.severe(String) line: 217 >> TestApp.start(Stage) line: 22 >> LauncherImpl$5.run() line: 315 >> PlatformImpl$4.run() line: 174 >> PlatformImpl$3.run() line: 141 >> WinApplication._runLoop(String[], Launchable) line: not available [native method] >> WinApplication.access$100(WinApplication, String[], Launchable) line: 29 >> WinApplication$2$1.run() line: 62 >> Thread.run() line: 662 > > I wished the source of this would be available ;-) You and me both! From hang.vo at oracle.com Thu May 10 09:18:43 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 10 May 2012 16:18:43 +0000 Subject: hg: openjfx/2.2/controls/rt: RT-20779 : Scaling UI Controls down to QVGA: ScrollBar Message-ID: <20120510161845.9E2614722C@hg.openjdk.java.net> Changeset: 49f0d0943c33 Author: mickf Date: 2012-05-10 17:15 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/49f0d0943c33 RT-20779 : Scaling UI Controls down to QVGA: ScrollBar ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/embedded.css From hang.vo at oracle.com Thu May 10 09:48:53 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 10 May 2012 16:48:53 +0000 Subject: hg: openjfx/2.2/controls/rt: Fixed RT-21446: Create internal API in utility class to detect embedded screen sizes Message-ID: <20120510164854.A111E4722F@hg.openjdk.java.net> Changeset: 103d8426a8e1 Author: leifs Date: 2012-05-10 09:45 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/103d8426a8e1 Fixed RT-21446: Create internal API in utility class to detect embedded screen sizes ! javafx-ui-common/src/com/sun/javafx/Utils.java From hang.vo at oracle.com Thu May 10 10:03:47 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 10 May 2012 17:03:47 +0000 Subject: hg: openjfx/2.2/controls/rt: 3 new changesets Message-ID: <20120510170350.2434847230@hg.openjdk.java.net> Changeset: 6ef3e69d5552 Author: David Grieve Date: 2012-05-10 11:22 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/6ef3e69d5552 RT-21292: if stylehelper is null in impl_getStyleHelper, return null since the call to createStyleHelper will likely return null ! javafx-ui-common/src/javafx/scene/Node.java Changeset: b066bcf3f047 Author: David Grieve Date: 2012-05-10 12:53 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/b066bcf3f047 [TEST ONLY] Ignore ControlTest.testRT18097 pending RT-21471 ! javafx-ui-controls/test/javafx/scene/control/ControlTest.java Changeset: f0003deafe5f Author: David Grieve Date: 2012-05-10 12:54 -0400 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/f0003deafe5f Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/controls/jfx/rt From lubomir.nerad at oracle.com Thu May 10 10:26:42 2012 From: lubomir.nerad at oracle.com (Lubomir Nerad) Date: Thu, 10 May 2012 19:26:42 +0200 Subject: API change RT-19955: Configuring a PopupWindow so that it consumes the event used for hiding In-Reply-To: <8F3576CD-F0E5-4B20-90BA-3D9B623291C9@oracle.com> References: <4F9A8279.7070708@oracle.com> <4F9A8BC7.7000909@media-interactive.de> <4FA114C8.6050504@oracle.com> <4FAA56A9.8030204@oracle.com> <64DE710D-15C9-4C3D-ADFF-51AD872332B7@oracle.com> <4FABA638.2080801@oracle.com> <8F3576CD-F0E5-4B20-90BA-3D9B623291C9@oracle.com> Message-ID: <4FABFA52.7040605@oracle.com> On 5/10/2012 4:18 PM, Richard Bair wrote: > (a) Do we add consumeAutoHidingEvents? Yes, +1 > (b) Do we use a different name? I don't mind, but some other ideas: > forwardEventsCausingAutoHide > consumeEventsCausingAutoHide > > They are long though! > Unless somebody objects, I'll go with (a) then. > (c) Do we change the default behavior? I'm not sure. Sometimes apps want one, sometimes the other. I would be tempted to remain compatible and not change the default behavior. What do you think? > I still think that consuming auto hiding events is a better default. But probably not that better to cause some incompatibility problems. Eric, would you mind if we don't change the default? > Richard > Thanks, Lubo > On May 10, 2012, at 4:27 AM, Lubomir Nerad wrote: > >> Yes. It seems that in Safari popups invoked from toolbars have different behavior than popups invoked from dialogs. >> >> On 5/10/2012 2:10 AM, Richard Bair wrote: >>> I tried the download pop up, and then clicking something outside the download popup. Do you see the same? >>> >>> On May 9, 2012, at 4:36 AM, Lubomir Nerad wrote: >>> >>>> On 5/7/2012 10:43 PM, Richard Bair wrote: >>>>>>> Hi Lubo, >>>>>>> >>>>>>> why do you think that the name is ambiguous? Seems clear to me. Some >>>>>>> other thoughts: >>>>>> I don't remember how exactly the auto-hide feature for popups is implemented. Is it sometimes triggered from Glass ("ungrab" event)? What event will be consumed in this case? >>>>>> >>>>>> Are we confident we'll be able to implement this property? If a popup is auto-hidden from the ungrab event handler, there may be no direct connection between this event and the mouse/key/etc. event to consume. >>>>> Before approving the API addition I guess we need to know the answer to this. Likewise, the default behavior I think is platform specific. At least in Safari, it seems that it does not consume mouse events by default that cause the popup to be closed. However I know Cocoa has an API for specifying what this behavior should be. If we add such an API, we probably will want to make sure it defaults to some platform specific value rather than always defaulting to "true" or "false"? >>>>> >>>> The property only aims at controlling the events between the popup and its parent window. Ungrab events and possible mouse clicks which caused them (outside of the popup window and its parent window) can't be influenced in general (and probably shouldn't be). >>>> >>>> In Safari, it seems to me that the events are actually consumed. If you invoke preferences and in one tab page expand a combo box, then click on an another control in the same tab page, the function of that other control is not executed. Only if the interaction involves multiple windows, I can see that the event is not consumed. With the property we will control this behavior among controls / popups of a single window, while leaving the behavior between multiple windows OS dependent. >>>> >>>> Thanks, >>>> Lubo >>>> >>>> >>>> >>>> From hang.vo at oracle.com Thu May 10 10:48:52 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 10 May 2012 17:48:52 +0000 Subject: hg: openjfx/2.2/controls/rt: Fixed RT-19370: Virtual Keyboard: Input Method Constraints Message-ID: <20120510174853.6CFD647231@hg.openjdk.java.net> Changeset: 0dd42d0513f2 Author: leifs Date: 2012-05-10 10:39 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/0dd42d0513f2 Fixed RT-19370: Virtual Keyboard: Input Method Constraints ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/FXVK.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/FXVKSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/TextInputControlSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/resources/controls.properties ! javafx-ui-controls/src/javafx/scene/control/TextInputControl.java From Peter.Zhelezniakov at oracle.com Thu May 10 12:07:45 2012 From: Peter.Zhelezniakov at oracle.com (Peter Zhelezniakov) Date: Thu, 10 May 2012 23:07:45 +0400 Subject: API request: WebEngine settings In-Reply-To: <39A5B3EE-8C3C-4D40-8A12-F14613C18C51@oracle.com> References: <948B6ECD-BB6B-45B7-A5DF-D6334136A1A8@oracle.com> <98850DE8-0666-4A73-96C8-896524C4FA5D@oracle.com> <93D2BC90-576F-449C-ACD2-974A2CD39716@oracle.com> <39A5B3EE-8C3C-4D40-8A12-F14613C18C51@oracle.com> Message-ID: <21FE2ED3-6947-4AF4-AB7F-BD87350588FE@oracle.com> Hi Richard, Ok, so how does that look: class javafx.scene.web.WebEngine { /** * Specifies whether JavaScript execution is enabled. * * @defaultValue true */ private BooleanProperty javaScriptEnabled; public final void setJavaScriptEnabled(boolean value); public final boolean isJavaScriptEnabled(); public final BooleanProperty javaScriptEnabledProperty(); /** * Specifies whether context menu is enabled. * * @defaultValue true */ private BooleanProperty contextMenuEnabled; public final void setContextMenuEnabled(boolean value); public final boolean isContextMenuEnabled(); public final BooleanProperty contextMenuEnabledProperty(); /** * Location of the user stylesheet as a string URL. * *

This should be a local URL, i.e. either {@code 'file:'} or * {@code 'jar:'}. Remote URLs are not allowed for security reasons. * * @defaultValue null */ private StringProperty userStyleSheetLocation; public final void setUserStyleSheetLocation(String value); public final String getUserStyleSheetLocation(); public final StringProperty userStyleSheetLocationProperty(); } On May 10, 2012, at 5:07 AM, Richard Bair wrote: > Hi Peter, > > I gave it a few days to see if I'd change my mind but really I like adding the settings directly on WebEngine. I'm not bothered if a bunch of settings get put there. I am bothered by the fact that in FXML it is not a 1-1 mapping (ie, we alias from ). > > I'm wondering how this plays in SceneBuilder as well. Right now I don't think SB has any special support so you cannot set any web engine specific settings. > > As m inch as possible we want to keep the FXML / CSS / API in sync such that you can look at the API and know how to express something in FXML or CSS. That is, the process would be mechanical. So I would have thought: > > > > > > And likewise, if settings were a separate class, I would then have a WebSettings tag within the WebEngine tag. And in SB we would have to show that hierarchy as well. Does that make sense? By synthesizing a property on WebView, we now have to face resolving: > > > > > > What do we do? I think this illustrates one of the problems with not having a 1-1 mapping. So if we have WebSettings, then we have an extra level of nesting -- in code, in SB, and in FXML. This is why I have wondered about whether we ought not just roll these settings into WebEngine. > > Richard Thanks! -- Peter | x33066 | St Petersburg, Russia | timezone: GMT+04 From mcdonnell.john at gmail.com Thu May 10 12:15:28 2012 From: mcdonnell.john at gmail.com (John McDonnell) Date: Thu, 10 May 2012 20:15:28 +0100 Subject: List of features for next release Message-ID: Hi all. Just wondering if there is a public list of features that you are looking to have in the next release? I ask because I'm essentially looking for a tree/table view component and would ideally love not to have to design one only for a standard One to come out a couple of months later..... Regards John From jonathan.giles at oracle.com Thu May 10 12:25:33 2012 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Fri, 11 May 2012 07:25:33 +1200 Subject: List of features for next release In-Reply-To: References: Message-ID: <4FAC162D.7000403@oracle.com> Specifially, a TreeTableView control will not be appearing in 2.2, which is still many months away. I am the developer of the TreeView and TableView controls, and whilst I have a proof-of-concept TreeTableView implementation locally, it has not yet made it to any repos (private or public). Trust me, I've been nagging to get it out there some way or another. :-) More generally, Jira searches will yield you a lot of useful information, if you narrow the search down to 'features' that are in 2.2. You may also be interested in 'tweaks' in 2.2, which are just simpler changes (less than 2 weeks work, etc). -- Jonathan On Friday, 11 May 2012 7:15:28 a.m., John McDonnell wrote: > Hi all. > > Just wondering if there is a public list of features that you are looking > to have in the next release? > > I ask because I'm essentially looking for a tree/table view component and > would ideally love not to have to design one only for a standard One to > come out a couple of months later..... > > Regards > > John From mcdonnell.john at gmail.com Thu May 10 13:40:36 2012 From: mcdonnell.john at gmail.com (John McDonnell) Date: Thu, 10 May 2012 21:40:36 +0100 Subject: List of features for next release In-Reply-To: <4FAC162D.7000403@oracle.com> References: <4FAC162D.7000403@oracle.com> Message-ID: Jonathan, Thanks for the tip about Jira searches, I'll give that a look into. With regards to the TreeTableView control, I will probably over the next couple of days look into developing my first Java FX control. Oh by the way keep up the good work on http://fxexperience.com/, thoser links of the week are an extremely welcome collection of Java FX knowledge on a monday morning... John On 10 May 2012 20:25, Jonathan Giles wrote: > Specifially, a TreeTableView control will not be appearing in 2.2, which > is still many months away. I am the developer of the TreeView and TableView > controls, and whilst I have a proof-of-concept TreeTableView implementation > locally, it has not yet made it to any repos (private or public). > > Trust me, I've been nagging to get it out there some way or another. :-) > > More generally, Jira searches will yield you a lot of useful information, > if you narrow the search down to 'features' that are in 2.2. You may also > be interested in 'tweaks' in 2.2, which are just simpler changes (less than > 2 weeks work, etc). > > -- Jonathan > > > On Friday, 11 May 2012 7:15:28 a.m., John McDonnell wrote: > >> Hi all. >> >> Just wondering if there is a public list of features that you are looking >> to have in the next release? >> >> I ask because I'm essentially looking for a tree/table view component and >> would ideally love not to have to design one only for a standard One to >> come out a couple of months later..... >> >> Regards >> >> John >> > -- John From jonathan.giles at oracle.com Thu May 10 13:46:13 2012 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Fri, 11 May 2012 08:46:13 +1200 Subject: List of features for next release In-Reply-To: References: <4FAC162D.7000403@oracle.com> Message-ID: <4FAC2915.9060401@oracle.com> Thanks, For my TreeTableView, I basically did a merge of the TreeView and TableView code. Basically I had the TreeItem API combined with the TableColumn API. Then I merged the cell factories behind the scenes to indent the first column and show the disclosure nodes. It wasn't hard to do, but that is coming from the perspective of someone who wrote these two controls. Feel free to ping me off-list and I can give more pointers. I would like to get this code out into an open sandbox repository, but I'm still waiting for clearance on this. -- Jonathan On 11/05/2012 8:40 a.m., John McDonnell wrote: > Jonathan, > > Thanks for the tip about Jira searches, I'll give that a look into. > > > With regards to the TreeTableView control, I will probably over the > next couple of days look into developing my first Java FX control. > > Oh by the way keep up the good work on http://fxexperience.com/, > thoser links of the week are an extremely welcome collection of Java > FX knowledge on a monday morning... > > > John > > On 10 May 2012 20:25, Jonathan Giles > wrote: > > Specifially, a TreeTableView control will not be appearing in 2.2, > which is still many months away. I am the developer of the > TreeView and TableView controls, and whilst I have a > proof-of-concept TreeTableView implementation locally, it has not > yet made it to any repos (private or public). > > Trust me, I've been nagging to get it out there some way or > another. :-) > > More generally, Jira searches will yield you a lot of useful > information, if you narrow the search down to 'features' that are > in 2.2. You may also be interested in 'tweaks' in 2.2, which are > just simpler changes (less than 2 weeks work, etc). > > -- Jonathan > > > On Friday, 11 May 2012 7:15:28 a.m., John McDonnell wrote: > > Hi all. > > Just wondering if there is a public list of features that you > are looking > to have in the next release? > > I ask because I'm essentially looking for a tree/table view > component and > would ideally love not to have to design one only for a > standard One to > come out a couple of months later..... > > Regards > > John > > > > > -- > John From hang.vo at oracle.com Thu May 10 13:48:42 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 10 May 2012 20:48:42 +0000 Subject: hg: openjfx/2.2/graphics/rt: RT-6917 Make ImagePattern Public API Message-ID: <20120510204844.0000A47243@hg.openjdk.java.net> Changeset: 5eba0c61b67a Author: "Joseph Andresen" Date: 2012-05-10 13:22 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/5eba0c61b67a RT-6917 Make ImagePattern Public API - javafx-ui-common/src/com/sun/javafx/scene/paint/ImagePattern.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/scene/paint/ImagePattern.java ! javafx-ui-common/src/javafx/scene/paint/doc-files/ImagePattern.png ! javafx-ui-common/test/unit/com/sun/javafx/pgstub/StubToolkit.java - javafx-ui-common/test/unit/com/sun/javafx/scene/paint/ImagePatternTest.java + javafx-ui-common/test/unit/javafx/scene/paint/ImagePatternTest.java ! test-stub-toolkit/src/com/sun/javafx/pgstub/StubToolkit.java From tom.schindl at bestsolution.at Thu May 10 13:53:50 2012 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Thu, 10 May 2012 22:53:50 +0200 Subject: List of features for next release In-Reply-To: <4FAC2915.9060401@oracle.com> References: <4FAC162D.7000403@oracle.com> <4FAC2915.9060401@oracle.com> Message-ID: <4FAC2ADE.2000903@bestsolution.at> A TreeTable is really something needed, it's been one of the things made me leave Swing behind and move the SWT simply because the framework had a TreeTable. Tom Am 10.05.12 22:46, schrieb Jonathan Giles: > Thanks, > > For my TreeTableView, I basically did a merge of the TreeView and > TableView code. Basically I had the TreeItem API combined with the > TableColumn API. Then I merged the cell factories behind the scenes to > indent the first column and show the disclosure nodes. It wasn't hard to > do, but that is coming from the perspective of someone who wrote these > two controls. Feel free to ping me off-list and I can give more pointers. > > I would like to get this code out into an open sandbox repository, but > I'm still waiting for clearance on this. > > -- Jonathan > > > On 11/05/2012 8:40 a.m., John McDonnell wrote: >> Jonathan, >> >> Thanks for the tip about Jira searches, I'll give that a look into. >> >> >> With regards to the TreeTableView control, I will probably over the >> next couple of days look into developing my first Java FX control. >> >> Oh by the way keep up the good work on http://fxexperience.com/, >> thoser links of the week are an extremely welcome collection of Java >> FX knowledge on a monday morning... >> >> >> John >> >> On 10 May 2012 20:25, Jonathan Giles > > wrote: >> >> Specifially, a TreeTableView control will not be appearing in 2.2, >> which is still many months away. I am the developer of the >> TreeView and TableView controls, and whilst I have a >> proof-of-concept TreeTableView implementation locally, it has not >> yet made it to any repos (private or public). >> >> Trust me, I've been nagging to get it out there some way or >> another. :-) >> >> More generally, Jira searches will yield you a lot of useful >> information, if you narrow the search down to 'features' that are >> in 2.2. You may also be interested in 'tweaks' in 2.2, which are >> just simpler changes (less than 2 weeks work, etc). >> >> -- Jonathan >> >> >> On Friday, 11 May 2012 7:15:28 a.m., John McDonnell wrote: >> >> Hi all. >> >> Just wondering if there is a public list of features that you >> are looking >> to have in the next release? >> >> I ask because I'm essentially looking for a tree/table view >> component and >> would ideally love not to have to design one only for a >> standard One to >> come out a couple of months later..... >> >> Regards >> >> John >> >> >> >> >> -- >> John -- B e s t S o l u t i o n . a t EDV Systemhaus GmbH ------------------------------------------------------------------------ tom schindl gesch?ftsf?hrer/CEO ------------------------------------------------------------------------ eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 http://www.BestSolution.at phone ++43 512 935834 From jonathan.giles at oracle.com Thu May 10 14:12:00 2012 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Fri, 11 May 2012 09:12:00 +1200 Subject: List of features for next release In-Reply-To: <4FAC2ADE.2000903@bestsolution.at> References: <4FAC162D.7000403@oracle.com> <4FAC2915.9060401@oracle.com> <4FAC2ADE.2000903@bestsolution.at> Message-ID: <4FAC2F20.1000402@oracle.com> Tom - I've heard this numerous times as well from people at conferences, twitter and in private emails. I have relayed this back to the people responsible for planning future releases, but so far it has not been adopted on the plans. I think, if we are to provide one in a reasonable timeframe, your feedback on this list would be much appreciated. Alternatively, as I mentioned a few emails back, I would just love to get what I do have out into a sandbox repo for very early user testing. -- Jonathan On Friday, 11 May 2012 8:53:50 a.m., Tom Schindl wrote: > A TreeTable is really something needed, it's been one of the things made > me leave Swing behind and move the SWT simply because the framework had > a TreeTable. > > Tom > > Am 10.05.12 22:46, schrieb Jonathan Giles: >> Thanks, >> >> For my TreeTableView, I basically did a merge of the TreeView and >> TableView code. Basically I had the TreeItem API combined with the >> TableColumn API. Then I merged the cell factories behind the scenes to >> indent the first column and show the disclosure nodes. It wasn't hard to >> do, but that is coming from the perspective of someone who wrote these >> two controls. Feel free to ping me off-list and I can give more pointers. >> >> I would like to get this code out into an open sandbox repository, but >> I'm still waiting for clearance on this. >> >> -- Jonathan >> >> >> On 11/05/2012 8:40 a.m., John McDonnell wrote: >>> Jonathan, >>> >>> Thanks for the tip about Jira searches, I'll give that a look into. >>> >>> >>> With regards to the TreeTableView control, I will probably over the >>> next couple of days look into developing my first Java FX control. >>> >>> Oh by the way keep up the good work on http://fxexperience.com/, >>> thoser links of the week are an extremely welcome collection of Java >>> FX knowledge on a monday morning... >>> >>> >>> John >>> >>> On 10 May 2012 20:25, Jonathan Giles>> > wrote: >>> >>> Specifially, a TreeTableView control will not be appearing in 2.2, >>> which is still many months away. I am the developer of the >>> TreeView and TableView controls, and whilst I have a >>> proof-of-concept TreeTableView implementation locally, it has not >>> yet made it to any repos (private or public). >>> >>> Trust me, I've been nagging to get it out there some way or >>> another. :-) >>> >>> More generally, Jira searches will yield you a lot of useful >>> information, if you narrow the search down to 'features' that are >>> in 2.2. You may also be interested in 'tweaks' in 2.2, which are >>> just simpler changes (less than 2 weeks work, etc). >>> >>> -- Jonathan >>> >>> >>> On Friday, 11 May 2012 7:15:28 a.m., John McDonnell wrote: >>> >>> Hi all. >>> >>> Just wondering if there is a public list of features that you >>> are looking >>> to have in the next release? >>> >>> I ask because I'm essentially looking for a tree/table view >>> component and >>> would ideally love not to have to design one only for a >>> standard One to >>> come out a couple of months later..... >>> >>> Regards >>> >>> John >>> >>> >>> >>> >>> -- >>> John > > From kimtopley at gmail.com Thu May 10 14:18:09 2012 From: kimtopley at gmail.com (kimtopley at gmail.com) Date: Thu, 10 May 2012 21:18:09 +0000 Subject: List of features for next release In-Reply-To: <4FAC2F20.1000402@oracle.com> References: <4FAC162D.7000403@oracle.com> <4FAC2915.9060401@oracle.com> <4FAC2ADE.2000903@bestsolution.at> <4FAC2F20.1000402@oracle.com> Message-ID: <1358493284-1336684693-cardhu_decombobulator_blackberry.rim.net-497891721-@b1.c12.bise6.blackberry> +1 to having a TreeTableView. Business applications almost always need one and it has to be efficient too, unlike the Swing example TreeTable which rebuilt the entire model when almost anything changed. You just can't do this when the model is going to be updated many times per second. Kim Sent from my Verizon Wireless BlackBerry -----Original Message----- From: Jonathan Giles Sender: openjfx-dev-bounces at openjdk.java.net Date: Fri, 11 May 2012 09:12:00 To: Tom Schindl Reply-To: jonathan.giles at oracle.com Cc: Subject: Re: List of features for next release Tom - I've heard this numerous times as well from people at conferences, twitter and in private emails. I have relayed this back to the people responsible for planning future releases, but so far it has not been adopted on the plans. I think, if we are to provide one in a reasonable timeframe, your feedback on this list would be much appreciated. Alternatively, as I mentioned a few emails back, I would just love to get what I do have out into a sandbox repo for very early user testing. -- Jonathan On Friday, 11 May 2012 8:53:50 a.m., Tom Schindl wrote: > A TreeTable is really something needed, it's been one of the things made > me leave Swing behind and move the SWT simply because the framework had > a TreeTable. > > Tom > > Am 10.05.12 22:46, schrieb Jonathan Giles: >> Thanks, >> >> For my TreeTableView, I basically did a merge of the TreeView and >> TableView code. Basically I had the TreeItem API combined with the >> TableColumn API. Then I merged the cell factories behind the scenes to >> indent the first column and show the disclosure nodes. It wasn't hard to >> do, but that is coming from the perspective of someone who wrote these >> two controls. Feel free to ping me off-list and I can give more pointers. >> >> I would like to get this code out into an open sandbox repository, but >> I'm still waiting for clearance on this. >> >> -- Jonathan >> >> >> On 11/05/2012 8:40 a.m., John McDonnell wrote: >>> Jonathan, >>> >>> Thanks for the tip about Jira searches, I'll give that a look into. >>> >>> >>> With regards to the TreeTableView control, I will probably over the >>> next couple of days look into developing my first Java FX control. >>> >>> Oh by the way keep up the good work on http://fxexperience.com/, >>> thoser links of the week are an extremely welcome collection of Java >>> FX knowledge on a monday morning... >>> >>> >>> John >>> >>> On 10 May 2012 20:25, Jonathan Giles>> > wrote: >>> >>> Specifially, a TreeTableView control will not be appearing in 2.2, >>> which is still many months away. I am the developer of the >>> TreeView and TableView controls, and whilst I have a >>> proof-of-concept TreeTableView implementation locally, it has not >>> yet made it to any repos (private or public). >>> >>> Trust me, I've been nagging to get it out there some way or >>> another. :-) >>> >>> More generally, Jira searches will yield you a lot of useful >>> information, if you narrow the search down to 'features' that are >>> in 2.2. You may also be interested in 'tweaks' in 2.2, which are >>> just simpler changes (less than 2 weeks work, etc). >>> >>> -- Jonathan >>> >>> >>> On Friday, 11 May 2012 7:15:28 a.m., John McDonnell wrote: >>> >>> Hi all. >>> >>> Just wondering if there is a public list of features that you >>> are looking >>> to have in the next release? >>> >>> I ask because I'm essentially looking for a tree/table view >>> component and >>> would ideally love not to have to design one only for a >>> standard One to >>> come out a couple of months later..... >>> >>> Regards >>> >>> John >>> >>> >>> >>> >>> -- >>> John > > From jonathan.giles at oracle.com Thu May 10 14:23:44 2012 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Fri, 11 May 2012 09:23:44 +1200 Subject: List of features for next release In-Reply-To: <1358493284-1336684693-cardhu_decombobulator_blackberry.rim.net-497891721-@b1.c12.bise6.blackberry> References: <4FAC162D.7000403@oracle.com> <4FAC2915.9060401@oracle.com> <4FAC2ADE.2000903@bestsolution.at> <4FAC2F20.1000402@oracle.com> <1358493284-1336684693-cardhu_decombobulator_blackberry.rim.net-497891721-@b1.c12.bise6.blackberry> Message-ID: <4FAC31E0.3020200@oracle.com> You may be interested in the following Jira issue, which features a screenshot of a TreeTableView browsing my file system very efficiently (i.e. model built on demand), as well as rather extensive discussion on the approach I've taken thus far: http://javafx-jira.kenai.com/browse/RT-17288 -- Jonathan On Friday, 11 May 2012 9:18:09 a.m., kimtopley at gmail.com wrote: > +1 to having a TreeTableView. Business applications almost always need one and it has to be efficient too, unlike the Swing example TreeTable which rebuilt the entire model when almost anything changed. You just can't do this when the model is going to be updated many times per second. > > Kim > > Sent from my Verizon Wireless BlackBerry > > -----Original Message----- > From: Jonathan Giles > Sender: openjfx-dev-bounces at openjdk.java.net > Date: Fri, 11 May 2012 09:12:00 > To: Tom Schindl > Reply-To: jonathan.giles at oracle.com > Cc: > Subject: Re: List of features for next release > > Tom - I've heard this numerous times as well from people at > conferences, twitter and in private emails. I have relayed this back to > the people responsible for planning future releases, but so far it has > not been adopted on the plans. > > I think, if we are to provide one in a reasonable timeframe, your > feedback on this list would be much appreciated. Alternatively, as I > mentioned a few emails back, I would just love to get what I do have > out into a sandbox repo for very early user testing. > > -- Jonathan > > On Friday, 11 May 2012 8:53:50 a.m., Tom Schindl wrote: >> A TreeTable is really something needed, it's been one of the things made >> me leave Swing behind and move the SWT simply because the framework had >> a TreeTable. >> >> Tom >> >> Am 10.05.12 22:46, schrieb Jonathan Giles: >>> Thanks, >>> >>> For my TreeTableView, I basically did a merge of the TreeView and >>> TableView code. Basically I had the TreeItem API combined with the >>> TableColumn API. Then I merged the cell factories behind the scenes to >>> indent the first column and show the disclosure nodes. It wasn't hard to >>> do, but that is coming from the perspective of someone who wrote these >>> two controls. Feel free to ping me off-list and I can give more pointers. >>> >>> I would like to get this code out into an open sandbox repository, but >>> I'm still waiting for clearance on this. >>> >>> -- Jonathan >>> >>> >>> On 11/05/2012 8:40 a.m., John McDonnell wrote: >>>> Jonathan, >>>> >>>> Thanks for the tip about Jira searches, I'll give that a look into. >>>> >>>> >>>> With regards to the TreeTableView control, I will probably over the >>>> next couple of days look into developing my first Java FX control. >>>> >>>> Oh by the way keep up the good work on http://fxexperience.com/, >>>> thoser links of the week are an extremely welcome collection of Java >>>> FX knowledge on a monday morning... >>>> >>>> >>>> John >>>> >>>> On 10 May 2012 20:25, Jonathan Giles>>> > wrote: >>>> >>>> Specifially, a TreeTableView control will not be appearing in 2.2, >>>> which is still many months away. I am the developer of the >>>> TreeView and TableView controls, and whilst I have a >>>> proof-of-concept TreeTableView implementation locally, it has not >>>> yet made it to any repos (private or public). >>>> >>>> Trust me, I've been nagging to get it out there some way or >>>> another. :-) >>>> >>>> More generally, Jira searches will yield you a lot of useful >>>> information, if you narrow the search down to 'features' that are >>>> in 2.2. You may also be interested in 'tweaks' in 2.2, which are >>>> just simpler changes (less than 2 weeks work, etc). >>>> >>>> -- Jonathan >>>> >>>> >>>> On Friday, 11 May 2012 7:15:28 a.m., John McDonnell wrote: >>>> >>>> Hi all. >>>> >>>> Just wondering if there is a public list of features that you >>>> are looking >>>> to have in the next release? >>>> >>>> I ask because I'm essentially looking for a tree/table view >>>> component and >>>> would ideally love not to have to design one only for a >>>> standard One to >>>> come out a couple of months later..... >>>> >>>> Regards >>>> >>>> John >>>> >>>> >>>> >>>> >>>> -- >>>> John >> >> From kimtopley at gmail.com Thu May 10 14:29:50 2012 From: kimtopley at gmail.com (kimtopley at gmail.com) Date: Thu, 10 May 2012 21:29:50 +0000 Subject: List of features for next release In-Reply-To: <4FAC31E0.3020200@oracle.com> References: <4FAC162D.7000403@oracle.com> <4FAC2915.9060401@oracle.com> <4FAC2ADE.2000903@bestsolution.at> <4FAC2F20.1000402@oracle.com> <1358493284-1336684693-cardhu_decombobulator_blackberry.rim.net-497891721-@b1.c12.bise6.blackberry> <4FAC31E0.3020200@oracle.com> Message-ID: <78009526-1336685394-cardhu_decombobulator_blackberry.rim.net-556330623-@b1.c12.bise6.blackberry> I will add some comments to the JIRA. Hopefully, you can persuade the powers that be to reconsider. Sent from my Verizon Wireless BlackBerry -----Original Message----- From: Jonathan Giles Date: Fri, 11 May 2012 09:23:44 To: Reply-To: jonathan.giles at oracle.com Cc: ; Tom Schindl Subject: Re: List of features for next release You may be interested in the following Jira issue, which features a screenshot of a TreeTableView browsing my file system very efficiently (i.e. model built on demand), as well as rather extensive discussion on the approach I've taken thus far: http://javafx-jira.kenai.com/browse/RT-17288 -- Jonathan On Friday, 11 May 2012 9:18:09 a.m., kimtopley at gmail.com wrote: > +1 to having a TreeTableView. Business applications almost always need one and it has to be efficient too, unlike the Swing example TreeTable which rebuilt the entire model when almost anything changed. You just can't do this when the model is going to be updated many times per second. > > Kim > > Sent from my Verizon Wireless BlackBerry > > -----Original Message----- > From: Jonathan Giles > Sender: openjfx-dev-bounces at openjdk.java.net > Date: Fri, 11 May 2012 09:12:00 > To: Tom Schindl > Reply-To: jonathan.giles at oracle.com > Cc: > Subject: Re: List of features for next release > > Tom - I've heard this numerous times as well from people at > conferences, twitter and in private emails. I have relayed this back to > the people responsible for planning future releases, but so far it has > not been adopted on the plans. > > I think, if we are to provide one in a reasonable timeframe, your > feedback on this list would be much appreciated. Alternatively, as I > mentioned a few emails back, I would just love to get what I do have > out into a sandbox repo for very early user testing. > > -- Jonathan > > On Friday, 11 May 2012 8:53:50 a.m., Tom Schindl wrote: >> A TreeTable is really something needed, it's been one of the things made >> me leave Swing behind and move the SWT simply because the framework had >> a TreeTable. >> >> Tom >> >> Am 10.05.12 22:46, schrieb Jonathan Giles: >>> Thanks, >>> >>> For my TreeTableView, I basically did a merge of the TreeView and >>> TableView code. Basically I had the TreeItem API combined with the >>> TableColumn API. Then I merged the cell factories behind the scenes to >>> indent the first column and show the disclosure nodes. It wasn't hard to >>> do, but that is coming from the perspective of someone who wrote these >>> two controls. Feel free to ping me off-list and I can give more pointers. >>> >>> I would like to get this code out into an open sandbox repository, but >>> I'm still waiting for clearance on this. >>> >>> -- Jonathan >>> >>> >>> On 11/05/2012 8:40 a.m., John McDonnell wrote: >>>> Jonathan, >>>> >>>> Thanks for the tip about Jira searches, I'll give that a look into. >>>> >>>> >>>> With regards to the TreeTableView control, I will probably over the >>>> next couple of days look into developing my first Java FX control. >>>> >>>> Oh by the way keep up the good work on http://fxexperience.com/, >>>> thoser links of the week are an extremely welcome collection of Java >>>> FX knowledge on a monday morning... >>>> >>>> >>>> John >>>> >>>> On 10 May 2012 20:25, Jonathan Giles>>> > wrote: >>>> >>>> Specifially, a TreeTableView control will not be appearing in 2.2, >>>> which is still many months away. I am the developer of the >>>> TreeView and TableView controls, and whilst I have a >>>> proof-of-concept TreeTableView implementation locally, it has not >>>> yet made it to any repos (private or public). >>>> >>>> Trust me, I've been nagging to get it out there some way or >>>> another. :-) >>>> >>>> More generally, Jira searches will yield you a lot of useful >>>> information, if you narrow the search down to 'features' that are >>>> in 2.2. You may also be interested in 'tweaks' in 2.2, which are >>>> just simpler changes (less than 2 weeks work, etc). >>>> >>>> -- Jonathan >>>> >>>> >>>> On Friday, 11 May 2012 7:15:28 a.m., John McDonnell wrote: >>>> >>>> Hi all. >>>> >>>> Just wondering if there is a public list of features that you >>>> are looking >>>> to have in the next release? >>>> >>>> I ask because I'm essentially looking for a tree/table view >>>> component and >>>> would ideally love not to have to design one only for a >>>> standard One to >>>> come out a couple of months later..... >>>> >>>> Regards >>>> >>>> John >>>> >>>> >>>> >>>> >>>> -- >>>> John >> >> From nicolas.lorain at oracle.com Thu May 10 14:31:39 2012 From: nicolas.lorain at oracle.com (Nicolas Lorain) Date: Thu, 10 May 2012 14:31:39 -0700 Subject: Why is the windows runtime/sdk only provided as .exe In-Reply-To: References: <4F045E66.2020408@bestsolution.at> <4F047CCF.6080600@oracle.com> <4F047EA0.5060300@bestsolution.at> <4F048053.6010107@oracle.com> <4FA8F6CD.4000501@bestsolution.at> <4FA92244.8090202@oracle.com> <9F82B134-6E8E-474C-90AC-A656CBE4746D@bestsolution.at> <4FAAEF48.7010108@bestsolution.at> <4FABB567.2040404@oracle.com> Message-ID: <4FAC33BB.60604@oracle.com> I'm one of the Product Managers for JavaFX, and I had originally posted my answer as a comment to the Jira issue Tom had re-opened (RT-18807 ) We completely get what you are saying, and why you are asking for it, and as a matter of fact we've been making available zip files for the JavaFX 2.1 developer previews almost as soon as Tom initially requested. We actually may have done this so fast that we didn't double-checked whether zip files were actually provided for Java SE (they aren't, and they've never been). However, when it comes to something that will be supported as part if the GA version of the product, such a request needs to be implemented consistently across platforms, take into account any additional testing efforts, and get the buy-in of Oracle's support organization. At this point, what we've been doing for the Developer Preview builds doesn't meet these demands. I'm looking actively into this issue, and while my hope is to see this resolved soon, I believe a more realistic scenario is to expect to have a solution in place for JavaFX 2.2. I understand this seems like a long wait for what looks like a very simple packaging exercise, but JavaFX 2.2 is just around the corner, and we want to make sure that whatever solution won't need to be revisited for every release of JavaFX. As for supporting JavaFX on Java SE 6 (whether on Linux, Mac, or Windows), this is something that is only available for JavaFX on Windows), and we will no longer do past it November, which is when Java SE 6 will reach EOL (https://blogs.oracle.com/henrik/entry/updated_java_6_eol_date). After that date, Oracle will no longer provide update releases or security fixes for Java SE, unless you work for a company that has a support plan in place with Oracle. If you don't have a support plan in place, you will still be able to use JavaFX 2.2 (Windows) on Java SE 6 for as long as it's available in the Java archives, but that will be at your own risks From our point of view, releasing a version of JavaFX on a platform that is going to reach EOL within a few month is not something we plan to do, and this is pretty much the decision we've made with JavaFX 2.1/JDK7 for Mac and Snow Leopard, as Apple will top supporting Mac OS 10.6 as soon as 10.8 is released this summer. Nicolas On 5/10/12 5:57 AM, Adam Granger wrote: > Hi Kevin, > > My experience on the subject.... I work for a large software company, > currently we do our GUIs with Swing. I did some R&D with JavaFX, and have > been trying to push for its adoption... > > - My only objections to the .exe distribution are that it requires admin > to install - which most developers don't have - (a ridiculous corporate > IT strategy!) and that the installation directory cannot be changed. > Surely an advanced install option could be added allowing normal user > install to a custom directory? I've zipped up c:\program > files\oracle\JavaFX* from one machine and copied to another without > issue, so whatever additional work the .exe is doing is unnecessary in > our case... > > - our target platform is Linux although some people use Windows as a dev > environment. Things move slowly round here, I doubt we'll be moving to > Java7 anytime soon, so a standalone JavaFX that works with Java6 on Linux > would be essential for us to start using it. Are there any technical > limitations as to why JavaFX2 cannot run with Java6 on Linux as it does > on Windows? > > Regards, > > Adam. > >> Hi Tom, >> >> This is a product management decision, based largely on two things: >> >> 1) Alignment with the JDK, which doesn't provide .zip files for Mac and >> Windows >> >> 2) For Mac and Linux the only supported way to get JavaFX is bundled >> with JDK7. We don't release / support an unbundled JavaFX on those >> platforms. Going forward this will be true for Windows as well. >> Standalone JavaFX 2.x bundles will continue to be released for Windows >> to support JDK6. Developer preview releases will also continue to be >> released as standalone bundles (including .zip). >> >> My understanding is that product management is looking into the >> possibility of releasing JDK as a .zip bundle but they would need to >> respond as what the status of that is. >> >> I have included Nicolas and Ajay on this who can speak to these issues. >> >> -- Kevin >> >> >> Tom Schindl wrote: >>> Hi Kevin, >>> >>> I'm replying here because I think more people who are interested in zips >>> (e.g. anyone using maven!) are listening here. >>> >>> So you are stating in the bug that no zips will be provided anymore >>> which I think is a very disappointing situation - I will and have to >>> accept it. >>> >>> If you read through the mailing list threads how Richard, Jasper, ... >>> advised to deploy JavaFX application they always stated that one should >>> bundle it with the application (probably with the JRE which is a no go >>> when we talk about Webstart). >>> >>> Without providing zips you force me to have: >>> * Win32 >>> * Mac OS X> 10.7.0 >>> * Linux (in future) >>> >>> to extract the fxjar + native libs to repackage in my custom app. I know >>> I need them anyways to test, ... but forcing me to do it manually >>> instead of simply providing zip downloads is ridiculous (and because of >>> the licensing stuff I one person in the world would have done and wants >>> to share it with the rest of us he/she is not allowed). >>> >>> For me as a tooling vendor your current decision gives me headaches >>> because I want and need to support multiple different >>> SDK-Install-Styles: >>> * Dev Preview install (done through zips with the structure in there) >>> >>> * JDK-7-Installs >>> => Not sure how they look like and I'm unable to test because I only >>> have OS-X 10.6.8 >>> >>> * JDK-6 >>> >>> When we take a look into the future this JDK-Exe install kind of thing >>> is a deadend road because you'll stop viewing the JDK/JRE as an all in >>> one thing installable through one .exe because of jigsaw. >>> >>> Anyways I appreciate that you took a look but I'm not happy with it and >>> hope I can find a way around it until then I can only point people to >>> the JIRA entry when they want to use e(fx)clipse os OS-X. >>> >>> Can anyone here tell me how the OS-X JDK-7-Installation structure looks >>> like? Where am I supposed to find: >>> * the javafxrt.jar >>> * the dlls >>> * the fx-javadoc >>> >>> Tom >>> >>> Am 08.05.12 15:43, schrieb Tom Schindl: >>> >>>> Haveing the SDK-zips will solve all my current problems. Thanks for >>>> taking a Look. >>>> >>>> Tom >>>> >>>> Von meinem iPhone gesendet >>>> >>>> Am 08.05.2012 um 15:40 schrieb Kevin Rushforth >>>> : >>>> >>>> >>>>> Hi Tom, >>>>> >>>>> I just looked and you are right...only see the .exe files were >>>>> released for 2.1. I will check into this and get back to you. >>>>> >>>>> The Mac issue will be trickier since we don't have any tested / >>>>> supported standalone bundles of JavaFX 2.1 on Mac. As a released >>>>> product JavaFX 2.1 for Mac is only available as part of JDK 7u4. >>>>> >>>>> -- Kevin >>>>> >>>>> >>>>> Tom Schindl wrote: >>>>> >>>>>> Kevin - can you take a look at this once more? Since the 2.1 release >>>>>> the >>>>>> zips for the SDKs are not available anymore! >>>>>> >>>>>> One can only download the one for 2.2 so it looks like the >>>>>> dev-release >>>>>> site was adjusted but the GA site not. >>>>>> >>>>>> For those of use doing cross platform development and packaging >>>>>> JavaFX >>>>>> with their apps getting geting the releases as zips is something >>>>>> really >>>>>> important. >>>>>> >>>>>> Sidenote: Even worse because I'm still on OS-X 10.6.8 I can't even >>>>>> install JavaFX because the JDK-7 release requires at least 10.7.0 (I >>>>>> know you are not support JavaFX prior to JDK 7) >>>>>> >>>>>> Thanks >>>>>> >>>>>> Tom >>>>>> >>>>>> Am 04.01.12 17:37, schrieb Kevin Rushforth: >>>>>> >>>>>> >>>>>>> Oh, maybe we don't actually release the SDK on the public web page >>>>>>> either (I knew we didn't release the runtime as a zip since we don't >>>>>>> even generate it internally). >>>>>>> >>>>>>> -- Kevin >>>>>>> >>>>>>> >>>>>>> Tom Schindl wrote: >>>>>>> >>>>>>> >>>>>>>> Hi Kevin, >>>>>>>> >>>>>>>> Well maybe I'm blind but for win32 the there is NO zip available >>>>>>>> from >>>>>>>> this page [1]. >>>>>>>> >>>>>>>> The only thing available currently as a zip is the OS-X SDK version >>>>>>>> which misses the win32 native libs not? I'll file a JIRA. >>>>>>>> >>>>>>>> [1]http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.html >>>>>>>> >>>>>>>> >>>>>>>> Am 04.01.12 17:22, schrieb Kevin Rushforth: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> Good question. The SDK is available as both an installer and a >>>>>>>>> zip, and >>>>>>>>> we could consider make the runtime available as a zip file as >>>>>>>>> well, so >>>>>>>>> please file a JIRA feature request for this. >>>>>>>>> >>>>>>>>> As for your other question, it is not currently possible to have >>>>>>>>> 2.0.2 >>>>>>>>> and 2.1 instaled side-by-side. >>>>>>>>> >>>>>>>>> -- Kevin >>>>>>>>> >>>>>>>>> >>>>>>>>> Tom Schindl wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> Now that since 2.0.2 (and also 2.1) are redistributeable it might >>>>>>>>>> make >>>>>>>>>> sense to provide them also as simple ZIP-Files. >>>>>>>>>> >>>>>>>>>> I find it odd that if I want to package JavaFX with my product >>>>>>>>>> that I >>>>>>>>>> first have to install something only my system, navigate to the >>>>>>>>>> install >>>>>>>>>> dir and copy over the stuff my own project directory. >>>>>>>>>> >>>>>>>>>> Is it BTW possible to have 2.1 and 2.0.2 installed next to each >>>>>>>>>> other? I >>>>>>>>>> guess not which makes it hard to test with both versions on the >>>>>>>>>> same >>>>>>>>>> system, which would be made much more easy if provided as simple >>>>>>>>>> ZIP-Files. >>>>>>>>>> >>>>>>>>>> Would you mind providing JavaFX 2.1 binaries (and maybe also> >>>>>>>>>> 2.0.2) as >>>>>>>>>> a simple zip-File like you do it with 2.1 OS-X ones? >>>>>>>>>> >>>>>>>>>> Tom >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>>>> >>>>>> >>> >>> From hang.vo at oracle.com Thu May 10 15:48:31 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 10 May 2012 22:48:31 +0000 Subject: hg: openjfx/2.2/controls/rt: Disable FXVK for non-embedded platform and move styling to embedded stylesheet. Message-ID: <20120510224833.25B5D4724D@hg.openjdk.java.net> Changeset: f8e9729880b7 Author: leifs Date: 2012-05-10 15:41 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/f8e9729880b7 Disable FXVK for non-embedded platform and move styling to embedded stylesheet. ! javafx-ui-controls/src/com/sun/javafx/scene/control/behavior/TextInputControlBehavior.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/behavior/TextInputControlBindings.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/embedded.css From hang.vo at oracle.com Thu May 10 17:18:55 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 11 May 2012 00:18:55 +0000 Subject: hg: openjfx/2.2/controls/rt: 3 new changesets Message-ID: <20120511001858.06F994724E@hg.openjdk.java.net> Changeset: 696d11f09dd6 Author: jgiles Date: 2012-05-11 12:03 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/696d11f09dd6 Fixing yet another build failure with the various property-scanning controls unit tests where the default value did not equal the actual value after the ctor was run. Unfortunately this means alignment is not what I'd prefer in one case, but that can be revisited again at a later date. ! javafx-ui-controls/src/javafx/scene/control/cell/CheckBoxTableCell.java Changeset: ca46b09eeb5b Author: jgiles Date: 2012-05-11 12:08 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/ca46b09eeb5b Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2/scrum/controls/jfx/rt Changeset: 07e5fa9c1741 Author: jgiles Date: 2012-05-11 12:13 +1200 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/07e5fa9c1741 Enabling previously @Ignore'd unit test ! javafx-ui-controls/test/javafx/scene/control/ControlTest.java From james.graham at oracle.com Thu May 10 23:25:04 2012 From: james.graham at oracle.com (Jim Graham) Date: Thu, 10 May 2012 23:25:04 -0700 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FAA8A38.6090706@oracle.com> References: <4FAA8A38.6090706@oracle.com> Message-ID: <4FACB0C0.1010009@oracle.com> Hi Pavel, On 5/9/2012 8:16 AM, Pavel Safrata wrote: > Hello, > I've been working on the local-to-scene transform > (http://javafx-jira.kenai.com/browse/RT-520). I have a prototype that > makes it an observable (read-only) property, registering for > invalidation notifications to parent only when somebody registers a > listener to it. This is nicer than a simple "compute" method - it looks > like a standard observable lazy property from user's point of view. > > The big question now is what the type of the property should be. The > first candidate is javafx.scene.transform.Affine. Unfortunately this > class has each element of the matrix as a property, which makes it > pretty impractical for that purpose. There are two options there: > - We can create a new Affine instance each time the transformation > changes (and somebody calls the getter). This way all the elements would > have to be immutable, so all their setters would need to throw > exceptions (ugly) and whole their observability would be just a useless > slowdown. Why do we need to make them read only? As long as the Affine we hand out is a copy and we make that clear, then let them muck with the value they get back. > - Or we can keep the single instance and modify its elements. This way > user would have to register twelve listeners to be notified of > transformation changes. > None of those options seems good enough. That second option definitely doesn't seem very good. > We considered another option: creating a new class TransformationMatrix. > This class would be immutable and would contain various methods for work > with matrices. All the transforms would have a getter that would return > an instance of this class, the Affine class would have also a setter. > Now the localToSceneTransformation property could be of type > TransformationMatrix. This would spare us the above problems and provide > an independent class for matrix operations, but on the other hand, > converting transformations to the matrix and back may be an unnecessary > burden, also doing some complex matrix computation with an immutable > matrix class would result in pretty huge garbage production (slowing > down the computation). If we created a matrix class it would be an excellent place to put all of the methods that people have been asking for for doing matrix math. If we wanted an immutable matrix class for this purpose then we'd end up with needing the immutable matrix for the property and a mutable matrix for doing actual matrix work. What's wrong with having the property return a mutable matrix? Is there some rule that the value of a property has to be "==" identical between notifications? > So we propose yet another approach. In the base Transform class, > introduce getters for all the elements of the transformation matrix (not > observable, just getters). Each transformation would be able to return > the values according to its current state. Our property would then be of > type Transform, allowing only for getting the matrix values. This would > make the property observable as a whole (creating a new instance each > time), unmodifiable, and would leave us with a nicely open way to > introduce the methods for matrix operations on the Transform class, most > of them probably returning the Affine instance as a result, and the > Affine class could then have a bunch of methods to be modified in place. How important is immutability in the values of properties? Because you say that the Transform value here would be "unmodifiable", but it would be unmodifiable only in terms of its declared type and if you choose to return an Affine then it can be cast and modified which would mean we don't really care about the mutability of property values...? Also, in your last point, it sounds like you want the value used to be modifiable in place, but you claim that it would be unmodifiable earlier as if it was a "feature". I'm a little confused as to the constraints here in terms of mutability of property values...? ...jim From eric.le.ponner at oracle.com Fri May 11 00:42:14 2012 From: eric.le.ponner at oracle.com (Eric Le Ponner) Date: Fri, 11 May 2012 09:42:14 +0200 Subject: API change RT-19955: Configuring a PopupWindow so that it consumes the event used for hiding In-Reply-To: <4FABFA52.7040605@oracle.com> References: <4F9A8279.7070708@oracle.com> <4F9A8BC7.7000909@media-interactive.de> <4FA114C8.6050504@oracle.com> <4FAA56A9.8030204@oracle.com> <64DE710D-15C9-4C3D-ADFF-51AD872332B7@oracle.com> <4FABA638.2080801@oracle.com> <8F3576CD-F0E5-4B20-90BA-3D9B623291C9@oracle.com> <4FABFA52.7040605@oracle.com> Message-ID: <28A38714-4677-495E-8AAF-8C7076807F56@oracle.com> Le 10 mai 2012 ? 19:26, Lubomir Nerad a ?crit : > > > On 5/10/2012 4:18 PM, Richard Bair wrote: >> (a) Do we add consumeAutoHidingEvents? Yes, +1 >> (b) Do we use a different name? I don't mind, but some other ideas: >> forwardEventsCausingAutoHide >> consumeEventsCausingAutoHide >> >> They are long though! >> > > Unless somebody objects, I'll go with (a) then. > >> (c) Do we change the default behavior? I'm not sure. Sometimes apps want one, sometimes the other. I would be tempted to remain compatible and not change the default behavior. What do you think? >> > > I still think that consuming auto hiding events is a better default. But probably not that better to cause some incompatibility problems. Eric, would you mind if we don't change the default? I agree with you on both points : auto-hiding would probably be a good default; but, for compatibility reason, let's keep it off by default. Eric > >> Richard >> > > Thanks, > Lubo > >> On May 10, 2012, at 4:27 AM, Lubomir Nerad wrote: >> >>> Yes. It seems that in Safari popups invoked from toolbars have different behavior than popups invoked from dialogs. >>> >>> On 5/10/2012 2:10 AM, Richard Bair wrote: >>>> I tried the download pop up, and then clicking something outside the download popup. Do you see the same? >>>> >>>> On May 9, 2012, at 4:36 AM, Lubomir Nerad wrote: >>>> >>>>> On 5/7/2012 10:43 PM, Richard Bair wrote: >>>>>>>> Hi Lubo, >>>>>>>> >>>>>>>> why do you think that the name is ambiguous? Seems clear to me. Some >>>>>>>> other thoughts: >>>>>>> I don't remember how exactly the auto-hide feature for popups is implemented. Is it sometimes triggered from Glass ("ungrab" event)? What event will be consumed in this case? >>>>>>> >>>>>>> Are we confident we'll be able to implement this property? If a popup is auto-hidden from the ungrab event handler, there may be no direct connection between this event and the mouse/key/etc. event to consume. >>>>>> Before approving the API addition I guess we need to know the answer to this. Likewise, the default behavior I think is platform specific. At least in Safari, it seems that it does not consume mouse events by default that cause the popup to be closed. However I know Cocoa has an API for specifying what this behavior should be. If we add such an API, we probably will want to make sure it defaults to some platform specific value rather than always defaulting to "true" or "false"? >>>>>> >>>>> The property only aims at controlling the events between the popup and its parent window. Ungrab events and possible mouse clicks which caused them (outside of the popup window and its parent window) can't be influenced in general (and probably shouldn't be). >>>>> >>>>> In Safari, it seems to me that the events are actually consumed. If you invoke preferences and in one tab page expand a combo box, then click on an another control in the same tab page, the function of that other control is not executed. Only if the interaction involves multiple windows, I can see that the event is not consumed. With the property we will control this behavior among controls / popups of a single window, while leaving the behavior between multiple windows OS dependent. >>>>> >>>>> Thanks, >>>>> Lubo >>>>> >>>>> >>>>> >>>>> From pavel.safrata at oracle.com Fri May 11 01:14:53 2012 From: pavel.safrata at oracle.com (Pavel Safrata) Date: Fri, 11 May 2012 10:14:53 +0200 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FACB0C0.1010009@oracle.com> References: <4FAA8A38.6090706@oracle.com> <4FACB0C0.1010009@oracle.com> Message-ID: <4FACCA7D.7090309@oracle.com> Hi Jim, On 11.5.2012 8:25, Jim Graham wrote: > Hi Pavel, > > On 5/9/2012 8:16 AM, Pavel Safrata wrote: >> Hello, >> I've been working on the local-to-scene transform >> (http://javafx-jira.kenai.com/browse/RT-520). I have a prototype that >> makes it an observable (read-only) property, registering for >> invalidation notifications to parent only when somebody registers a >> listener to it. This is nicer than a simple "compute" method - it looks >> like a standard observable lazy property from user's point of view. >> >> The big question now is what the type of the property should be. The >> first candidate is javafx.scene.transform.Affine. Unfortunately this >> class has each element of the matrix as a property, which makes it >> pretty impractical for that purpose. There are two options there: >> - We can create a new Affine instance each time the transformation >> changes (and somebody calls the getter). This way all the elements would >> have to be immutable, so all their setters would need to throw >> exceptions (ugly) and whole their observability would be just a useless >> slowdown. > > Why do we need to make them read only? As long as the Affine we hand > out is a copy and we make that clear, then let them muck with the > value they get back. Do we have any precedent for such copy-out property? I think it is highly confusing. Users are used to do getSomething().modifyIt() all the time and everywhere it makes an effect on the node. Where it is not possible, we always return something immutable or "unmodifiable". I think that proper javadoc doesn't really justify making one property behaving differently from all the others. Another thing is that the object property notifies you each time its reference changes, telling you the old reference and new reference. Returning a different reference every time doesn't really fit there. Not mentioning that instead of creating the matrix each time it changes, we will create it each time someone calls getter, which may be much more often. > >> - Or we can keep the single instance and modify its elements. This way >> user would have to register twelve listeners to be notified of >> transformation changes. >> None of those options seems good enough. > > That second option definitely doesn't seem very good. Agreed, unless we introduce a new mechanism for notifying about object state changes. > >> We considered another option: creating a new class TransformationMatrix. >> This class would be immutable and would contain various methods for work >> with matrices. All the transforms would have a getter that would return >> an instance of this class, the Affine class would have also a setter. >> Now the localToSceneTransformation property could be of type >> TransformationMatrix. This would spare us the above problems and provide >> an independent class for matrix operations, but on the other hand, >> converting transformations to the matrix and back may be an unnecessary >> burden, also doing some complex matrix computation with an immutable >> matrix class would result in pretty huge garbage production (slowing >> down the computation). > > If we created a matrix class it would be an excellent place to put all > of the methods that people have been asking for for doing matrix math. > If we wanted an immutable matrix class for this purpose then we'd end > up with needing the immutable matrix for the property and a mutable > matrix for doing actual matrix work. > > What's wrong with having the property return a mutable matrix? Is > there some rule that the value of a property has to be "==" identical > between notifications? As I wrote above, I believe this would be the only property whatsoever that would be mutable but whose changes would be ignored by the node. This alone is enough for me to tell I really don't like it. Did I miss something? > >> So we propose yet another approach. In the base Transform class, >> introduce getters for all the elements of the transformation matrix (not >> observable, just getters). Each transformation would be able to return >> the values according to its current state. Our property would then be of >> type Transform, allowing only for getting the matrix values. This would >> make the property observable as a whole (creating a new instance each >> time), unmodifiable, and would leave us with a nicely open way to >> introduce the methods for matrix operations on the Transform class, most >> of them probably returning the Affine instance as a result, and the >> Affine class could then have a bunch of methods to be modified in place. > > How important is immutability in the values of properties? Because > you say that the Transform value here would be "unmodifiable", but it > would be unmodifiable only in terms of its declared type and if you > choose to return an Affine then it can be cast and modified which > would mean we don't really care about the mutability of property > values...? I think I never told I would choose to return Affine. Just the opposite, I would probably boost the performance by returning something that doesn't have twelve property objects that take ages to even construct. > > Also, in your last point, it sounds like you want the value used to be > modifiable in place, but you claim that it would be unmodifiable > earlier as if it was a "feature". I want Affine to be modifiable in place, but not Transform, which I want to use for the property. > > I'm a little confused as to the constraints here in terms of > mutability of property values...? I hope the above explained my view of this.. Thanks, Pavel > > ...jim From alexander.kouznetsov at oracle.com Fri May 11 01:56:05 2012 From: alexander.kouznetsov at oracle.com (Alexander Kouznetsov) Date: Fri, 11 May 2012 12:56:05 +0400 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FAA8A38.6090706@oracle.com> References: <4FAA8A38.6090706@oracle.com> Message-ID: <4FACD425.7080408@oracle.com> Hi Pavel, I like the way you're going. Here is another issue you may want to concern: http://javafx-jira.kenai.com/browse/RT-17942 Having immutable matrix seems to be a reasonable solution and I agree that Affine doesn't fit there. However I agree with Jim that having mutable subclasses fakes the immutability of the base class. Moreover it increases garbage collection overhead. Can't we just make Affine3D public instead? That way we'll provide matrices calculation layer and all we need is to provide methods to convert Affine3D to Affine and vice versa. Just an idea. Best regards, Alexander Kouznetsov On 09.05.2012 19:16, Pavel Safrata wrote: > Hello, > I've been working on the local-to-scene transform > (http://javafx-jira.kenai.com/browse/RT-520). I have a prototype that > makes it an observable (read-only) property, registering for > invalidation notifications to parent only when somebody registers a > listener to it. This is nicer than a simple "compute" method - it > looks like a standard observable lazy property from user's point of view. > > The big question now is what the type of the property should be. The > first candidate is javafx.scene.transform.Affine. Unfortunately this > class has each element of the matrix as a property, which makes it > pretty impractical for that purpose. There are two options there: > - We can create a new Affine instance each time the transformation > changes (and somebody calls the getter). This way all the elements > would have to be immutable, so all their setters would need to throw > exceptions (ugly) and whole their observability would be just a > useless slowdown. > - Or we can keep the single instance and modify its elements. This way > user would have to register twelve listeners to be notified of > transformation changes. > None of those options seems good enough. > > We considered another option: creating a new class > TransformationMatrix. This class would be immutable and would contain > various methods for work with matrices. All the transforms would have > a getter that would return an instance of this class, the Affine class > would have also a setter. Now the localToSceneTransformation property > could be of type TransformationMatrix. This would spare us the above > problems and provide an independent class for matrix operations, but > on the other hand, converting transformations to the matrix and back > may be an unnecessary burden, also doing some complex matrix > computation with an immutable matrix class would result in pretty huge > garbage production (slowing down the computation). > > So we propose yet another approach. In the base Transform class, > introduce getters for all the elements of the transformation matrix > (not observable, just getters). Each transformation would be able to > return the values according to its current state. Our property would > then be of type Transform, allowing only for getting the matrix > values. This would make the property observable as a whole (creating a > new instance each time), unmodifiable, and would leave us with a > nicely open way to introduce the methods for matrix operations on the > Transform class, most of them probably returning the Affine instance > as a result, and the Affine class could then have a bunch of methods > to be modified in place. > > What do you think? > Thanks, > Pavel From pavel.safrata at oracle.com Fri May 11 02:09:44 2012 From: pavel.safrata at oracle.com (Pavel Safrata) Date: Fri, 11 May 2012 11:09:44 +0200 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FABDF11.5040305@geomatys.fr> References: <4FAA8A38.6090706@oracle.com> <4FABDF11.5040305@geomatys.fr> Message-ID: <4FACD758.5080408@oracle.com> Hello Martin, your comments make perfect sense. However, I seriously doubt our scene graph would ever be able to operate with such general transformations. Apart from the fact that we would most probably have a great trouble to implement all the existing functionality if such transformations were allowed, it would bring a serious performance drop and would create an API considerably less handy for the usual cases. Anyway, if we decide that the naming issue is serious and/or that we want to leave the door open to the generic transforms, we can do following: insert a new class (say AffineBase) as a subclass of Transform and superclass of all the existing transforms, then go with our proposed solution using AffineBase instead of Transform. To me it seems as a good thing to do. Thanks, Pavel On 10.5.2012 17:30, Martin Desruisseaux wrote: > Hello all > > Le 09/05/12 17:16, Pavel Safrata a ?crit : >> We considered another option: creating a new class >> TransformationMatrix. This class would be immutable and would contain >> various methods for work with matrices. All the transforms would have >> a getter that would return an instance of this class, the Affine >> class would have also a setter. Now the localToSceneTransformation >> property could be of type TransformationMatrix. This would spare us >> the above problems and provide an independent class for matrix >> operations, but on the other hand, converting transformations to the >> matrix and back may be an unnecessary burden, also doing some complex >> matrix computation with an immutable matrix class would result in >> pretty huge garbage production (slowing down the computation). > > If this approach was selected, maybe a plain "Matrix" class name, with > 'getNumRows()', 'getNumColumns()' and 'get(i,j)' methods would be > sufficient. This would allow usage in two-dimensional cases (as 3?3 > matrices), three-dimensional cases (as 4?4 matrices), perspective > transform (which is not affine, but still represented by 3?3 matrices) > or other matrix operations not necessarily related to coordinate > transformations. > > For example, when dealing with generic (not necessarily affine) > coordinate transformations - for example map projections -, > transforming a point is not always sufficient. Some time we need the > mathematical derivative of the transform at a given point. In the > particular case of affine transforms, the derivative is trivially the > same everywhere, which may explain why Java2D has never feel a need > for it (note however that java.awt.geom.AffineTransform has something > close: the deltaTransform(...) method). But in the general case the > transform derivative may vary at any point, and the result of a > transform derivative can be express as a matrix. See for example: > > > http://www.geoapi.org/snapshot/javadoc/org/opengis/referencing/operation/MathTransform.html#derivative%28org.opengis.geometry.DirectPosition%29 > > The derivatives are useful for example because a map projection may > change straight lines into curved lines, and the derivative are useful > for computing B?zier curves that approximate those curves. They are > also useful for helping some iterative algorithms to converge faster. > If the matrix class name was "TransformMatrix", we would need a > "DerivativeMatrix" for the above case, and likewise for all other > matrix usage. I think that a plain "Matrix" class of arbitrary > dimension would fit better the need. > > >> So we propose yet another approach. In the base Transform class, >> introduce getters for all the elements of the transformation matrix >> (not observable, just getters). Each transformation would be able to >> return the values according to its current state. Our property would >> then be of type Transform, allowing only for getting the matrix >> values. This would make the property observable as a whole (creating >> a new instance each time), unmodifiable, and would leave us with a >> nicely open way to introduce the methods for matrix operations on the >> Transform class, most of them probably returning the Affine instance >> as a result, and the Affine class could then have a bunch of methods >> to be modified in place. > > If this approach was selected, the "Transform" class name would become > unfortunate, because the class name suggests arbitrary transform, > while the above-cited getters would in practice restrict the transform > to the affine case. This would be yet more confusing since an Affine > class already exist. If we were allowed to rename the classes, it > seems to me that the "Transform" class would need to be renamed > "Affine" (because "Translate", "Scale", "Shear" and "Rotate" are > special cases of affine transforms) and the current "Affine" would > have to be renamed into something else, maybe "GeneralAffine". > > I would like to propose a mix of those two approaches: the > 'localToSceneTransformation' property would be of kind "Transform" > like the second proposal, but instead of individual getter methods for > various matrix coefficients, provide the following method in the > Transform class: > > public abstract Matrix getMatrix(Point3D location); > > For every current JavaFX implementations, the Point3D argument would > be ignored and can be null. For custom implementations, e.g. map > projections (or anything which is non-linear), the result vary for > each points. This method would copy the current Transform state in a > new Matrix object (i.e. take a snapshot) - so no need for new > Transform instance when the state change, and no need for new Matrix > instance when performing matrix operations (the operations could be > applied in-place in the existing Matrix instance). > > Martin > From ozemale at ozemail.com.au Fri May 11 02:28:56 2012 From: ozemale at ozemail.com.au (John C. Turnbull) Date: Fri, 11 May 2012 19:28:56 +1000 Subject: JavaFX on iOS - viable or pipe dream? Message-ID: <003f01cd2f58$7d796e30$786c4a90$@com.au> I see with much excitement that there have now been numerous demonstrations of JavaFX running on iOS. Let's face it, JavaFX cannot really be considered a true success if it doesn't run and run well on arguably the most significant platforms in use today namely tablets and mobile phones for which iOS is the most critical. Having small demo applications run on iOS is one thing but are we just dreaming? I mean this is a great first step but will Apple ever allow Java or JavaFX to run on iOS? They have stated quite publicly that they are determined to prevent so-called "meta platforms" running on iOS (think Flash, Silverlight) so why should JavaFX be any different? I realise the JRE will be statically linked but Java is (by Apple's definitions at least) a "meta platform". Historically they have tended to be rather fussy in this area and they make the rules. Another concern is could an app burdened with a heavy and intermediate layer in the JRE perform like a "native" app on ARM and other relatively low powered CPUs? Clearly the JavaFX community wants it to run on iOS more than any other unsupported platform and many see this is as an absolute priority for Oracle. Perhaps now that Steve Jobs has left the building things have mellowed over at Apple but is it possible someone from the JavaFX development could comment on how they intend to overcome these issues? Thanks, -jct From pavel.safrata at oracle.com Fri May 11 02:33:31 2012 From: pavel.safrata at oracle.com (Pavel Safrata) Date: Fri, 11 May 2012 11:33:31 +0200 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FACD425.7080408@oracle.com> References: <4FAA8A38.6090706@oracle.com> <4FACD425.7080408@oracle.com> Message-ID: <4FACDCEB.9000007@oracle.com> Hi Alexander, On 11.5.2012 10:56, Alexander Kouznetsov wrote: > Hi Pavel, > > I like the way you're going. Here is another issue you may want to > concern: http://javafx-jira.kenai.com/browse/RT-17942 I know about it. I expect we will provide methods as "getInverseTransform()" on the base (unmodifiable) class that would return a new transformation, and methods as "inverse()" (and others requested by RT-17942) on the Affine class, that would modify it in place. > > Having immutable matrix seems to be a reasonable solution and I agree > that Affine doesn't fit there. However I agree with Jim that having > mutable subclasses fakes the immutability of the base class. Moreover > it increases garbage collection overhead. I believe our proposal keeps the garbage collection overhead low. Creating a new instance each time a getter is called makes things worse, keeping one object all the time would mean necessity to listen on all the members, so I don't see any better solution here. Also I don't see the problem the mutable subclasses. We just probably shouldn't call the base class "immutable", but rather "unmodifiable". > > Can't we just make Affine3D public instead? That way we'll provide > matrices calculation layer and all we need is to provide methods to > convert Affine3D to Affine and vice versa. Just an idea. This sounds like a bad idea to me. From user's point of view, Affine3D and Affine would be duplicates except that Affine's members are observable. What I think we should do is to port some of the Affine3D functionality to the Affine class (which sounds close to RT-17942). Thanks, Pavel > > Best regards, > Alexander Kouznetsov > > > On 09.05.2012 19:16, Pavel Safrata wrote: >> Hello, >> I've been working on the local-to-scene transform >> (http://javafx-jira.kenai.com/browse/RT-520). I have a prototype that >> makes it an observable (read-only) property, registering for >> invalidation notifications to parent only when somebody registers a >> listener to it. This is nicer than a simple "compute" method - it >> looks like a standard observable lazy property from user's point of >> view. >> >> The big question now is what the type of the property should be. The >> first candidate is javafx.scene.transform.Affine. Unfortunately this >> class has each element of the matrix as a property, which makes it >> pretty impractical for that purpose. There are two options there: >> - We can create a new Affine instance each time the transformation >> changes (and somebody calls the getter). This way all the elements >> would have to be immutable, so all their setters would need to throw >> exceptions (ugly) and whole their observability would be just a >> useless slowdown. >> - Or we can keep the single instance and modify its elements. This >> way user would have to register twelve listeners to be notified of >> transformation changes. >> None of those options seems good enough. >> >> We considered another option: creating a new class >> TransformationMatrix. This class would be immutable and would contain >> various methods for work with matrices. All the transforms would have >> a getter that would return an instance of this class, the Affine >> class would have also a setter. Now the localToSceneTransformation >> property could be of type TransformationMatrix. This would spare us >> the above problems and provide an independent class for matrix >> operations, but on the other hand, converting transformations to the >> matrix and back may be an unnecessary burden, also doing some complex >> matrix computation with an immutable matrix class would result in >> pretty huge garbage production (slowing down the computation). >> >> So we propose yet another approach. In the base Transform class, >> introduce getters for all the elements of the transformation matrix >> (not observable, just getters). Each transformation would be able to >> return the values according to its current state. Our property would >> then be of type Transform, allowing only for getting the matrix >> values. This would make the property observable as a whole (creating >> a new instance each time), unmodifiable, and would leave us with a >> nicely open way to introduce the methods for matrix operations on the >> Transform class, most of them probably returning the Affine instance >> as a result, and the Affine class could then have a bunch of methods >> to be modified in place. >> >> What do you think? >> Thanks, >> Pavel From alexander.kouznetsov at oracle.com Fri May 11 02:44:44 2012 From: alexander.kouznetsov at oracle.com (Alexander Kouznetsov) Date: Fri, 11 May 2012 13:44:44 +0400 Subject: Multiple-click events In-Reply-To: <4FAA52F4.7020306@oracle.com> References: <4F9AB876.6030508@oracle.com> <353535825-1335540238-cardhu_decombobulator_blackberry.rim.net-135158866-@b1.c12.bise6.blackberry> <180971B9-6797-414A-A5F2-052447A52974@reportmill.com> <4F9AC4A5.5030408@oracle.com> <1470656124-1335543352-cardhu_decombobulator_blackberry.rim.net-1895564359-@b1.c12.bise6.blackberry> <4F9AC6A7.6050702@oracle.com> <872024149-1335543700-cardhu_decombobulator_blackberry.rim.net-871228946-@b1.c12.bise6.blackberry> <4F9AC87F.6090404@oracle.com> <1296427510-1335544427-cardhu_decombobulator_blackberry.rim.net-36084016-@b1.c12.bise6.blackberry> <4F9E86A8.2060400@oracle.com> <4FA15776.5030807@oracle.com> <4FAA52F4.7020306@oracle.com> Message-ID: <4FACDF8C.3070908@oracle.com> Hi Pavel, Thank you for your efforts! "Bad UI design" seems to be a good reason for not allowing it. Let's see if there are any other cases. Best regards, Alexander Kouznetsov On 09.05.2012 15:20, Pavel Safrata wrote: > Hello, > I tried to get approval for the new event and our architects raised > the same objections I've had: "I don't really think we should add this > API. It just doesn't seem like something any UI should be doing. It > seems in every case we could think of when a single, double, triple > click is associated with a single node (such as Text, etc), the double > click builds upon what the single click did, and the triple click > builds on what the double click did. It is never a case where the > double click is going to do something quite different from a single > click, and if such a situation comes up, it seems bad UI design." ... > "We think we ought not go down this road." > > I completely agree and won't add the functionality unless a really > compelling use-case is presented. Switching an application to > full-screen can definitely be solved other way (without introducing > unnecessary waiting for each slide). Shanliang, you claimed > SceneBuilder needs this, what is your use-case? > > Thanks, > Pavel > > On 2.5.2012 17:49, Alexander Kouznetsov wrote: >> Hi Pavel, >> >> I believe ClickSequenceFinished is an interesting event that may be >> useful. >> >> I have two usecase: >> >> 1. Presentation app >> * one click to proceed to next slide >> * double-click to enter fullscreen mode >> 2. MediaPlayer >> * one click to pause >> * double-click to enter fullscreen mode >> >> Actually second example works without this event (by pausing on first >> click and playing again on second one). But the first one doesn't. >> >> Best regards, >> Alexander Kouznetsov >> >> On 30.04.2012 16:33, Pavel Safrata wrote: >>> Hello, >>> we discussed the matter again, considering all the raised issues. We >>> agree that the delay really is a problem. We cannot find any common >>> use-case in the native environments that would do an action on >>> single-click that wouldn't be done as part of a double click. I >>> think this pattern should be strongly discouraged, because it will >>> make the UI feel pretty laggy (and thus FX seem slow). Default >>> timeout on Windows is over half a second and can be increased by >>> user to more than two and a half. Waiting any noticeable time for a >>> click to be recognized would bother almost everybody I think, even >>> the half-second is a multiple of the recommended reaction time. >>> >>> We're not happy this is requested for our internal tools. We can, >>> however, fulfill the request by a new event, something like >>> ClickSequenceFinished, but we don't want to promote this so there >>> would be no setOn* method. It would be possible for the special >>> cases to add a handler for this event to find out when user finished >>> clicking. >>> >>> Is that acceptable? >>> Thanks, >>> Pavel >>> >>> On 27.4.2012 18:33, kimtopley at gmail.com wrote: >>>> Selection was only an example. The point is that there are cases >>>> where the single-click response will be required immediately, while >>>> a different double-click action is required as and when the double >>>> click occurs. For clarity, it would be better if both actions were >>>> triggered from the same event handler, as they are today. This >>>> change forces me to rewrite my code so that the single-click action >>>> can be called both on mouse released and on mouse clicked. Having >>>> an opt-in for the new behavior would also avoid breaking existing >>>> code. >>>> >>>> Sent from my Verizon Wireless BlackBerry >>>> >>>> -----Original Message----- >>>> From: Alexander Kouznetsov >>>> Date: Fri, 27 Apr 2012 20:25:35 >>>> To: >>>> Cc: Jeff Martin; Pavel >>>> Safrata;; >>>> openjfx-dev at openjdk.java.net; VIENOT, >>>> SIMON; Richard Bair >>>> Subject: Re: Multiple-click events >>>> >>>> Usually selection occurs on mousePressed or even on mouseEntered >>>> events. >>>> mouseReleased and mouseClicked events may arrive much later because >>>> you >>>> can hold the mouse button pressed. >>>> >>>> Best regards, >>>> Alexander Kouznetsov >>>> >>>> >>>> On 27.04.2012 20:21, kimtopley at gmail.com wrote: >>>>> The user will be able to tell that I did that, because the first >>>>> click will be slower to arrive than it otherwise would have been, >>>>> in the case where the user just clicks once, right? So now there >>>>> is a "long" delay after the first click when the user sees nothing >>>>> happening at all. >>>>> >>>>> Sent from my Verizon Wireless BlackBerry >>>>> >>>>> -----Original Message----- >>>>> From: Alexander Kouznetsov >>>>> Date: Fri, 27 Apr 2012 20:17:43 >>>>> To: >>>>> Cc: Jeff Martin; Pavel >>>>> Safrata;; >>>>> openjfx-dev at openjdk.java.net; >>>>> VIENOT, SIMON; Richard >>>>> Bair >>>>> Subject: Re: Multiple-click events >>>>> >>>>> I don't see any problem here. You can select it on first click or on >>>>> second click - that is still the same place. >>>>> >>>>> Best regards, >>>>> Alexander Kouznetsov >>>>> >>>>> >>>>> On 27.04.2012 20:15, kimtopley at gmail.com wrote: >>>>>> That doesn't seem right to me. If I want to take one action on >>>>>> single click (eg select a row) and another on double click (eg >>>>>> open the row content in another editor), I will be forced to >>>>>> implement one of those actions when processing mouse released and >>>>>> the other in mouse clicked, whereas today that code would all be >>>>>> in the same place. For this use case, shouldn't it be possible to >>>>>> opt out of this behavior? >>>>>> >>>>>> Sent from my Verizon Wireless BlackBerry >>>>>> >>>>>> -----Original Message----- >>>>>> From: Alexander Kouznetsov >>>>>> Date: Fri, 27 Apr 2012 20:09:09 >>>>>> To: Jeff Martin >>>>>> Cc:; Pavel >>>>>> Safrata;; >>>>>> openjfx-dev at openjdk.java.net; >>>>>> VIENOT, SIMON; Richard >>>>>> Bair >>>>>> Subject: Re: Multiple-click events >>>>>> >>>>>> This code is something we want to avoid. >>>>>> >>>>>> If people want to handle first click without any delays that can >>>>>> just >>>>>> handle mouseReleased event. >>>>>> >>>>>> Best regards, >>>>>> Alexander Kouznetsov >>>>>> >>>>>> >>>>>> On 27.04.2012 19:51, Jeff Martin wrote: >>>>>>> It seems a little dangerous to arbitrarily delay all initial >>>>>>> mouse clicks. Does Swing do anything like this? I've never run >>>>>>> into a problem with processing both single and double clicks, >>>>>>> but if it was an issue, isn't there some kind of event peek that >>>>>>> could easily be done: >>>>>>> >>>>>>> if(mouseEvent.getClickCount()==1) { >>>>>>> Thread.sleep(200); >>>>>>> if(EventDispatcher.peek(MouseEvent.MOUSE_CLICKED!=null) >>>>>>> return; >>>>>>> < ? handle single click normally ?> >>>>>>> } >>>>>>> >>>>>>> If that isn't there, could that be added instead? >>>>>>> >>>>>>> jeff >>>>>>> >>>>>>> >>>>>>> On Apr 27, 2012, at 10:23 AM, kimtopley at gmail.com wrote: >>>>>>> >>>>>>>> Would it be possible to make this configurable, maybe at the >>>>>>>> Scene level? In some cases, a single click is all that's >>>>>>>> required and the delay waiting for a second click that means >>>>>>>> nothing more to the application is unnecessary. >>>>>>>> >>>>>>>> >>>>>>>> Sent from my Verizon Wireless BlackBerry >>>>>>>> >>>>>>>> -----Original Message----- >>>>>>>> From: Pavel Safrata >>>>>>>> Sender: openjfx-dev-bounces at openjdk.java.net >>>>>>>> Date: Fri, 27 Apr 2012 17:17:10 >>>>>>>> To: openjfx-dev at openjdk.java.net >>>>>>>> Cc: VIENOT, SIMON; Alexander >>>>>>>> Kouznetsov; Richard >>>>>>>> Bair >>>>>>>> Subject: Multiple-click events >>>>>>>> >>>>>>>> Hello, >>>>>>>> currently we deliver MOUSE_CLICKED event any time a node was >>>>>>>> pressed and >>>>>>>> released by mouse; if the next press happens fast enough and near >>>>>>>> enough, we increase the clickCount number for the events. There >>>>>>>> are >>>>>>>> requests to make a standalone single-click distinguishable from >>>>>>>> a first >>>>>>>> click of a double-click (and so on). >>>>>>>> >>>>>>>> After some discussion we concluded that the cleanest approach >>>>>>>> would be >>>>>>>> somewhat backward incompatible - we propose to generate the >>>>>>>> click event >>>>>>>> only when we are sure that there is no next click. In other >>>>>>>> words, the >>>>>>>> partial clicks would not be delivered at all, the final click >>>>>>>> would be a >>>>>>>> bit delayed. The pressed/released events would of course be still >>>>>>>> delivered normally, with the correct clickCount value. >>>>>>>> >>>>>>>> Any objections? >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Pavel >>>>>>>> From martin.desruisseaux at geomatys.fr Fri May 11 03:20:22 2012 From: martin.desruisseaux at geomatys.fr (Martin Desruisseaux) Date: Fri, 11 May 2012 12:20:22 +0200 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FACD758.5080408@oracle.com> References: <4FAA8A38.6090706@oracle.com> <4FABDF11.5040305@geomatys.fr> <4FACD758.5080408@oracle.com> Message-ID: <4FACE7E6.10207@geomatys.fr> Hello Pavel Right, I was not expecting the scene graph to support such general transform. To make my long email short, I was just pointing that adding 'getScaleX()', 'getScaleY()' and similar methods in the 'Transform' class effectively restrict the Transform class to the Affine case, in which case the current class names become problematic. Using a 'getMatrix' method (we could find a better name) with a 'Point3d' argument would solve the conceptual problem, without obligation for JavaFX to support such general transforms - that would be left to users (I would be fine with JavaFX throwing an exception if given a unrecognized transform). The intend was just to avoid a class naming problem while keeping the current class hierarchy, and keeping door open for non-linear transforms in the future. Regards, Martin Le 11/05/12 11:09, Pavel Safrata a ?crit : > Hello Martin, > your comments make perfect sense. However, I seriously doubt our scene > graph would ever be able to operate with such general transformations. > Apart from the fact that we would most probably have a great trouble > to implement all the existing functionality if such transformations > were allowed, it would bring a serious performance drop and would > create an API considerably less handy for the usual cases. Anyway, if > we decide that the naming issue is serious and/or that we want to > leave the door open to the generic transforms, we can do following: > insert a new class (say AffineBase) as a subclass of Transform and > superclass of all the existing transforms, then go with our proposed > solution using AffineBase instead of Transform. To me it seems as a > good thing to do. From tbee at tbee.org Fri May 11 04:11:33 2012 From: tbee at tbee.org (Tom Eugelink) Date: Fri, 11 May 2012 13:11:33 +0200 Subject: JavaFX on iOS - viable or pipe dream? In-Reply-To: <003f01cd2f58$7d796e30$786c4a90$@com.au> References: <003f01cd2f58$7d796e30$786c4a90$@com.au> Message-ID: <4FACF3E5.1000908@tbee.org> On 11-5-2012 11:28, John C. Turnbull wrote: > Clearly the JavaFX community wants it to run on iOS more than any other > unsupported platform and many see this is as an absolute priority for > Oracle. Perhaps now that Steve Jobs has left the building things have > mellowed over at Apple but is it possible someone from the JavaFX > development could comment on how they intend to overcome these issues? > Oracle 101: Oracle has very very VERY strict rules for its employee on releasing information. It is considered a capital sin to release any info before it is officially sanctioned by the organization. I figure the JFX team don't want to lie, hence you (we) probably simply are not going to get a response to this important question. But there have been minor slips about that there is work going on with regards to touch controlling of JavaFX (I hope they will do a better job in intermixing mouse and touch control than W8 is currently doing), and we have all seen the iOS demo's. So chances are high that there are talking going on. But until it is official, you won't hear anything. This is frustrating for a lot of people. For example: right now I'm doing a project for a "world wide top 50 fastest growing company" according to some Fortune 500 index and I know they are in a pinch on where to evolve to with their mobile platform. I would love to be able to argue to them to go "JavaFX", but alas... Or: I've actually got a mobile game designed and want to start the implementation as soon I get a hole in my schedule, but what technology to use so a single codebase can run on the most platforms? C++ and OpenGL? Javascript and canvas? Or JFX? Tom From kevin.rushforth at oracle.com Fri May 11 07:19:04 2012 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 11 May 2012 07:19:04 -0700 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FACE7E6.10207@geomatys.fr> References: <4FAA8A38.6090706@oracle.com> <4FABDF11.5040305@geomatys.fr> <4FACD758.5080408@oracle.com> <4FACE7E6.10207@geomatys.fr> Message-ID: <4FAD1FD8.8090509@oracle.com> I'm not sure that the existing Transform class should ever support non-affine matrices. Perhaps it would be better to provide a different base class for that. -- Kevin Martin Desruisseaux wrote: > Hello Pavel > > Right, I was not expecting the scene graph to support such general > transform. To make my long email short, I was just pointing that > adding 'getScaleX()', 'getScaleY()' and similar methods in the > 'Transform' class effectively restrict the Transform class to the > Affine case, in which case the current class names become problematic. > Using a 'getMatrix' method (we could find a better name) with a > 'Point3d' argument would solve the conceptual problem, without > obligation for JavaFX to support such general transforms - that would > be left to users (I would be fine with JavaFX throwing an exception if > given a unrecognized transform). > > The intend was just to avoid a class naming problem while keeping the > current class hierarchy, and keeping door open for non-linear > transforms in the future. > > Regards, > > Martin > > > Le 11/05/12 11:09, Pavel Safrata a ?crit : >> Hello Martin, >> your comments make perfect sense. However, I seriously doubt our >> scene graph would ever be able to operate with such general >> transformations. Apart from the fact that we would most probably have >> a great trouble to implement all the existing functionality if such >> transformations were allowed, it would bring a serious performance >> drop and would create an API considerably less handy for the usual >> cases. Anyway, if we decide that the naming issue is serious and/or >> that we want to leave the door open to the generic transforms, we can >> do following: insert a new class (say AffineBase) as a subclass of >> Transform and superclass of all the existing transforms, then go with >> our proposed solution using AffineBase instead of Transform. To me it >> seems as a good thing to do. > From richard.bair at oracle.com Fri May 11 08:04:37 2012 From: richard.bair at oracle.com (Richard Bair) Date: Fri, 11 May 2012 08:04:37 -0700 Subject: JavaFX on iOS - viable or pipe dream? In-Reply-To: <4FACF3E5.1000908@tbee.org> References: <003f01cd2f58$7d796e30$786c4a90$@com.au> <4FACF3E5.1000908@tbee.org> Message-ID: <636ECDFE-088C-4E90-8D5F-6CA21D951AA2@oracle.com> > This is frustrating for a lot of people. For example: right now I'm doing a project for a "world wide top 50 fastest growing company" according to some Fortune 500 index and I know they are in a pinch on where to evolve to with their mobile platform. I would love to be able to argue to them to go "JavaFX", but alas... Or: I've actually got a mobile game designed and want to start the implementation as soon I get a hole in my schedule, but what technology to use so a single codebase can run on the most platforms? C++ and OpenGL? Javascript and canvas? Or JFX? I totally hear you. This is a refrain we hear everywhere we go. We get all the issues, from policy to legal to VM technology to graphics capabilities to performance characteristics to pixel density, etc. As you say, Oracle 101, when we're ready to make an official statement, we will. BTW, I hear this same rumor a lot, that Apple is never going to let Java on their device. Because we don't make public statements about such things the rumors spread. Looks, there are *lots* of meta-platforms on iOS. Once upon a time, in the distant past, there were no meta-platforms. Or at least, Apple tried to ban them. But lo and behold, virtually every one of the top 10 games in the app store were written using some meta-platform (for example, Unity). It is virtually impossible to write an OpenGL game without using such a framework. And Adobe does in fact ship Air apps on iOS. There are many more examples. You won't see Java or Flash or Silverlight *in the browser* (no plugins), but as an app it is another matter. Richard From joseph.andresen at oracle.com Fri May 11 10:22:17 2012 From: joseph.andresen at oracle.com (joe andresen) Date: Fri, 11 May 2012 10:22:17 -0700 Subject: Canvas API Feedback. In-Reply-To: <4FAD49F8.3010709@oracle.com> References: <4cba3034-e4a9-4011-a178-713778892e5b@default> <4FAC795E.1090505@oracle.com> <3E837DA1-2233-4E49-B99A-941072BF5321@oracle.com> <4FACAD68.6040804@oracle.com> <4FAD46AD.5020302@oracle.com> <4FAD49F8.3010709@oracle.com> Message-ID: <4FAD4AC9.3060306@oracle.com> Hello All, We would like to thank all of you for your input on the recent Canvas API. We received a lot of great feedback and made several changes. The following is a list. (PS. We are not providing docs now because once this gets pushed into the open source runtime (hopefully soon) you can view it there) 1. Added a FillRule Property 2. Added getters with a copy-in copy-out rule for mutable objects (transforms and effects). 3. 3. Canvas will not be automatically resized by layout managers (that is, Canvas.isResizable() will be false), however we plan to provide an example of how one would implement this functionality. 4. We are sticking with an application controlled immediate mode drawing API for Canvas, similar to the likes of HTML 5 canvas. The rendering will be triggered by the application, and not by a paint callback. 5. We are making the GraphicsContext class final. We are not ready to provide a generic graphics interface as of JavaFX 2.2. This is out of scope for the Canvas feature, and is also something we might not want to base off of something like GraphicsContext anyway (and if we do provide this kind of interface, GraphicsContext could implement it). By not allowing subclassing in this first release, we have more flexibility to evolve the GraphicsContext over time. 6. Removed public double measureText(string text) from the API. There were actually many reasons we decided to do this. First off, we knew that the current spec and the names chosen implied that TextMetrics would contain more than just a double (if you look at the working draft of the spec last updated May 8th http://www.whatwg.org/specs/web-apps/current-work/#textmetrics you will see that it indeed contains more information). Instead, our developers can use a text node to get the information they need, and we will provide a more general metrics class for text not limited to the Canvas package in the future. Thanks again, Joe From joshua at marinacci.org Fri May 11 10:38:49 2012 From: joshua at marinacci.org (Josh Marinacci) Date: Fri, 11 May 2012 10:38:49 -0700 Subject: Canvas API Feedback. In-Reply-To: <4FAD4AC9.3060306@oracle.com> References: <4cba3034-e4a9-4011-a178-713778892e5b@default> <4FAC795E.1090505@oracle.com> <3E837DA1-2233-4E49-B99A-941072BF5321@oracle.com> <4FACAD68.6040804@oracle.com> <4FAD46AD.5020302@oracle.com> <4FAD49F8.3010709@oracle.com> <4FAD4AC9.3060306@oracle.com> Message-ID: <89CC94F4B9AB4B26A984FACB476C033B@marinacci.org> > 4. We are sticking with an application controlled immediate mode drawing > API for Canvas, similar to the likes of HTML 5 canvas. The rendering > will be triggered by the application, and not by a paint callback. > > Will this enable developers to handle the infinite scrolling area use case? For example: a control which draws the an audio waveform. It would only actually draw the visible area, letting the user pan to the area they choose. It seems like the canvas needs some indication of when part of the canvas has been revealed and must be repainted. The only alternative (I think) is for the program handle scrolling / revealing entirely on their own. > 6. Removed public double measureText(string text) from the API. There > were actually many reasons we decided to do this. First off, we knew > that the current spec and the names chosen implied that TextMetrics > would contain more than just a double (if you look at the working draft > of the spec last updated May 8th > http://www.whatwg.org/specs/web-apps/current-work/#textmetrics you will > see that it indeed contains more information). Instead, our developers > can use a text node to get the information they need, and we will > provide a more general metrics class for text not limited to the Canvas > package in the future. > > Awesome. The current text support in HTML Canvas is horrible. No need to emulate it. thanks, Josh > > Thanks again, > Joe > > From tom.schindl at bestsolution.at Fri May 11 10:42:35 2012 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Fri, 11 May 2012 19:42:35 +0200 Subject: No JavaFX 2.2 downloads? Message-ID: <4FAD4F8B.1090605@bestsolution.at> The link on http://www.oracle.com/technetwork/java/javafx/downloads/index.html points to http://www.oracle.com/technetwork/java/javafx/downloads/ssLINK/1429449 which is not known. Tom -- B e s t S o l u t i o n . a t EDV Systemhaus GmbH ------------------------------------------------------------------------ tom schindl gesch?ftsf?hrer/CEO ------------------------------------------------------------------------ eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 http://www.BestSolution.at phone ++43 512 935834 From hang.vo at oracle.com Fri May 11 11:03:50 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 11 May 2012 18:03:50 +0000 Subject: hg: openjfx/2.2/controls/rt: Pagination: add tooltips to page indicators. Message-ID: <20120511180352.0D51E47294@hg.openjdk.java.net> Changeset: f321fad48da9 Author: Kinsley Wong Date: 2012-05-11 10:50 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/f321fad48da9 Pagination: add tooltips to page indicators. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/PaginationSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css From joseph.andresen at oracle.com Fri May 11 11:12:06 2012 From: joseph.andresen at oracle.com (joe andresen) Date: Fri, 11 May 2012 11:12:06 -0700 Subject: Canvas API Feedback. In-Reply-To: <89CC94F4B9AB4B26A984FACB476C033B@marinacci.org> References: <4cba3034-e4a9-4011-a178-713778892e5b@default> <4FAC795E.1090505@oracle.com> <3E837DA1-2233-4E49-B99A-941072BF5321@oracle.com> <4FACAD68.6040804@oracle.com> <4FAD46AD.5020302@oracle.com> <4FAD49F8.3010709@oracle.com> <4FAD4AC9.3060306@oracle.com> <89CC94F4B9AB4B26A984FACB476C033B@marinacci.org> Message-ID: <4FAD5676.8010204@oracle.com> On 5/11/2012 10:38 AM, Josh Marinacci wrote: >> 4. We are sticking with an application controlled immediate mode drawing >> API for Canvas, similar to the likes of HTML 5 canvas. The rendering >> will be triggered by the application, and not by a paint callback. > > Will this enable developers to handle the infinite scrolling area use > case? For example: a control which draws the an audio waveform. It > would only actually draw the visible area, letting the user pan to the > area they choose. It seems like the canvas needs some indication of > when part of the canvas has been revealed and must be repainted. There really isn's such a thing as "part" of the canvas (or really it is just not a good idea to). You must think of canvas as an image where the GraphicsContext will issue a bunch of draw calls to it. It is up to the developer to choose which draw calls to issue (ie transform your calls for scrolling events, etc.) > The only alternative (I think) is for the program handle scrolling / > revealing entirely on their own. This is what you have to do. Your problem is solvable with Canvas for sure, and we may want to provide an example on how to do this. From joseph.andresen at oracle.com Fri May 11 11:32:24 2012 From: joseph.andresen at oracle.com (joe andresen) Date: Fri, 11 May 2012 11:32:24 -0700 Subject: Canvas API Feedback. In-Reply-To: <4FAD5676.8010204@oracle.com> References: <4cba3034-e4a9-4011-a178-713778892e5b@default> <4FAC795E.1090505@oracle.com> <3E837DA1-2233-4E49-B99A-941072BF5321@oracle.com> <4FACAD68.6040804@oracle.com> <4FAD46AD.5020302@oracle.com> <4FAD49F8.3010709@oracle.com> <4FAD4AC9.3060306@oracle.com> <89CC94F4B9AB4B26A984FACB476C033B@marinacci.org> <4FAD5676.8010204@oracle.com> Message-ID: <4FAD5B38.3050506@oracle.com> On 5/11/2012 11:12 AM, joe andresen wrote: > On 5/11/2012 10:38 AM, Josh Marinacci wrote: >>> 4. We are sticking with an application controlled immediate mode >>> drawing >>> API for Canvas, similar to the likes of HTML 5 canvas. The rendering >>> will be triggered by the application, and not by a paint callback. >> >> Will this enable developers to handle the infinite scrolling area use >> case? For example: a control which draws the an audio waveform. It >> would only actually draw the visible area, letting the user pan to >> the area they choose. It seems like the canvas needs some indication >> of when part of the canvas has been revealed and must be repainted. > There really isn's such a thing as "part" of the canvas (or really it > is just not a good idea to). You must think of canvas as an image > where the GraphicsContext will issue a bunch of draw calls to it. It > is up to the developer to choose which draw calls to issue (ie > transform your calls for scrolling events, etc.) > there are already several html 5 canvas examples that could help inform your solution. http://dougx.net/plunder/ http://www.html5gamedevs.com/2012/01/10/parallax-scrolling-html5-canvas-iphone/ From kevin.rushforth at oracle.com Fri May 11 11:54:15 2012 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 11 May 2012 11:54:15 -0700 Subject: No JavaFX 2.2 downloads? In-Reply-To: <4FAD4F8B.1090605@bestsolution.at> References: <4FAD4F8B.1090605@bestsolution.at> Message-ID: <4FAD6057.6090709@oracle.com> It's fixed now. -- Kevin Tom Schindl wrote: > The link on > http://www.oracle.com/technetwork/java/javafx/downloads/index.html > points to > http://www.oracle.com/technetwork/java/javafx/downloads/ssLINK/1429449 > which is not known. > > Tom > > From joseph.andresen at oracle.com Fri May 11 12:55:58 2012 From: joseph.andresen at oracle.com (joe andresen) Date: Fri, 11 May 2012 12:55:58 -0700 Subject: Canvas API Feedback. In-Reply-To: <4FAD5B38.3050506@oracle.com> References: <4cba3034-e4a9-4011-a178-713778892e5b@default> <4FAC795E.1090505@oracle.com> <3E837DA1-2233-4E49-B99A-941072BF5321@oracle.com> <4FACAD68.6040804@oracle.com> <4FAD46AD.5020302@oracle.com> <4FAD49F8.3010709@oracle.com> <4FAD4AC9.3060306@oracle.com> <89CC94F4B9AB4B26A984FACB476C033B@marinacci.org> <4FAD5676.8010204@oracle.com> <4FAD5B38.3050506@oracle.com> Message-ID: <4FAD6ECE.9070701@oracle.com> Also, note that we have discussed 3,4, and 5 and have some ideas on how to implement them, but also some issues we would need to work through. None of them could be fully vetted in the 2.2 time frame and all of them we felt could be added in future releases without much trouble so we reserve the possibility of adding any of them in a future release when we have more time to get them right. On 5/11/2012 11:32 AM, joe andresen wrote: > On 5/11/2012 11:12 AM, joe andresen wrote: >> On 5/11/2012 10:38 AM, Josh Marinacci wrote: >>>> 4. We are sticking with an application controlled immediate mode >>>> drawing >>>> API for Canvas, similar to the likes of HTML 5 canvas. The rendering >>>> will be triggered by the application, and not by a paint callback. >>> >>> Will this enable developers to handle the infinite scrolling area >>> use case? For example: a control which draws the an audio >>> waveform. It would only actually draw the visible area, letting >>> the user pan to the area they choose. It seems like the canvas >>> needs some indication of when part of the canvas has been revealed >>> and must be repainted. >> There really isn's such a thing as "part" of the canvas (or really it >> is just not a good idea to). You must think of canvas as an image >> where the GraphicsContext will issue a bunch of draw calls to it. It >> is up to the developer to choose which draw calls to issue (ie >> transform your calls for scrolling events, etc.) >> > there are already several html 5 canvas examples that could help > inform your solution. > > http://dougx.net/plunder/ > > http://www.html5gamedevs.com/2012/01/10/parallax-scrolling-html5-canvas-iphone/ > From hang.vo at oracle.com Fri May 11 13:18:45 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 11 May 2012 20:18:45 +0000 Subject: hg: openjfx/2.2/controls/rt: Show FXVK in a separate Stage. Message-ID: <20120511201847.8D753472A1@hg.openjdk.java.net> Changeset: c9947ba174fd Author: leifs Date: 2012-05-11 13:15 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/c9947ba174fd Show FXVK in a separate Stage. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/FXVK.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/FXVKSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/TextInputControlSkin.java From james.graham at oracle.com Fri May 11 15:55:44 2012 From: james.graham at oracle.com (Jim Graham) Date: Fri, 11 May 2012 15:55:44 -0700 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FACCA7D.7090309@oracle.com> References: <4FAA8A38.6090706@oracle.com> <4FACB0C0.1010009@oracle.com> <4FACCA7D.7090309@oracle.com> Message-ID: <4FAD98F0.3010007@oracle.com> Hi Pavel, Thanks for clarifying the mutability issues for properties for me. I think I get the proposals better as well. On 5/11/2012 1:14 AM, Pavel Safrata wrote: > On 11.5.2012 8:25, Jim Graham wrote: >>> So we propose yet another approach. In the base Transform class, >>> introduce getters for all the elements of the transformation matrix (not >>> observable, just getters). Each transformation would be able to return >>> the values according to its current state. Our property would then be of >>> type Transform, allowing only for getting the matrix values. This would >>> make the property observable as a whole (creating a new instance each >>> time), unmodifiable, and would leave us with a nicely open way to >>> introduce the methods for matrix operations on the Transform class, most >>> of them probably returning the Affine instance as a result, and the >>> Affine class could then have a bunch of methods to be modified in place. >> >> How important is immutability in the values of properties? Because you >> say that the Transform value here would be "unmodifiable", but it >> would be unmodifiable only in terms of its declared type and if you >> choose to return an Affine then it can be cast and modified which >> would mean we don't really care about the mutability of property >> values...? > > I think I never told I would choose to return Affine. Just the opposite, > I would probably boost the performance by returning something that > doesn't have twelve property objects that take ages to even construct. I see now that I misread "returning the Affine instance" as meaning that you would choose the Affine class as the implementation of Transform to return from the property. But, I see now that you were referring to returning it as the "answer" from the manipulation methods on Transform, though I think you could just declare their return values as Transform as well and then just have it coincidentally be an Affine in most cases. So, what you are proposing here is: public ReadOnlyProperty localToSceneTransformProperty(); - Transform would add methods to get the various elements of a matrix (but not set). (And it might also add other "informative" getters like the determinant.) - We'd create an internal immutable transform subclass that we'd use as the values of this property. - In the future we might add manipulation methods to Transform, but they would all return the result as a Transform or Affine and leave the original object unmodified. (Technically, subclasses could use covariant return values to further narrow the type of the answer - Transform.rotate() would have to return a Transform, but Rotate.rotate() could return a Rotate and Rotate.scale() could admit to returning an Affine.) - In the future we might also add manipulation methods to Affine that manipulate it in place. - Neither of those last two would affect the immutability of Transform being used as the value of this property. I like this idea... ...jim From kimtopley at gmail.com Fri May 11 16:29:45 2012 From: kimtopley at gmail.com (Kim Topley) Date: Fri, 11 May 2012 19:29:45 -0400 Subject: Eclipse and JavaFX bundled with Java 7u4 Message-ID: I installed the JDK 7u4 on my Mac and went through the normal procedure to add it as a installed JRE in Eclipse Indigo (as directed at http://www.oracle.com/technetwork/java/javase/downloads/jdk-for-mac-readme-1564562.html#eclipse). This all works fine, EXCEPT that when I now create a new Java project, the JavaFX classes are not on the class path. Looking at the definition of the JRE, it is clear that jfxrt.jar was not picked up from jre/lib directory when Eclipse built the JRE definition. I don't whether this is an Oracle problem or an Eclipse problem, or where to file a bug report to get this fixed. The obvious workaround is to use the "Add External JARs..." button on the JRE definition window, but that won't work because the JAR file is inside a .app and the file chooser dialog that pops up won't allow opening up of the package to select a file. So it looks like the only solution is to copy jfxrt.jar and all its libraries to another location from which they can be added. Luckily, I have the OpenJFX source installed, so I can pick up JavaFX from there, but this is going to be very frustrating for people who just want to try out JavaFX with Java 7. Kim From tom.schindl at bestsolution.at Fri May 11 17:03:23 2012 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Sat, 12 May 2012 02:03:23 +0200 Subject: Eclipse and JavaFX bundled with Java 7u4 In-Reply-To: References: Message-ID: <4FADA8CB.8050100@bestsolution.at> Hi, if you wait for some days the e(fx)clipse [1] project will come to rescue with this problem [2]. The problem is that I'm not sure if Eclipse is really wrong in not picking up JavaFX in its classpath. JavaFX though installed together with JDK-7 is not part of JDK/JRE (e.g. on win32 the jfxrt.jar is not installed in the JDK-Directory)! [1]http://efxclipse.org/ [2]http://efxclipse.org/trac/ticket/112 Tom Am 12.05.12 01:29, schrieb Kim Topley: > I installed the JDK 7u4 on my Mac and went through the normal procedure to > add it as a installed JRE in Eclipse Indigo (as directed at > http://www.oracle.com/technetwork/java/javase/downloads/jdk-for-mac-readme-1564562.html#eclipse). > This all works fine, EXCEPT that when I now create a new Java project, the > JavaFX classes are not on the class path. Looking at the definition of the > JRE, it is clear that jfxrt.jar was not picked up from jre/lib directory > when Eclipse built the JRE definition. > > I don't whether this is an Oracle problem or an Eclipse problem, or where > to file a bug report to get this fixed. > > The obvious workaround is to use the "Add External JARs..." button on the > JRE definition window, but that won't work because the JAR file is inside a > .app and the file chooser dialog that pops up won't allow opening up of the > package to select a file. So it looks like the only solution is to copy > jfxrt.jar and all its libraries to another location from which they can be > added. Luckily, I have the OpenJFX source installed, so I can pick up > JavaFX from there, but this is going to be very frustrating for people who > just want to try out JavaFX with Java 7. > > Kim -- B e s t S o l u t i o n . a t EDV Systemhaus GmbH ------------------------------------------------------------------------ tom schindl gesch?ftsf?hrer/CEO ------------------------------------------------------------------------ eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 http://www.BestSolution.at phone ++43 512 935834 From kevin.rushforth at oracle.com Fri May 11 18:03:20 2012 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 11 May 2012 18:03:20 -0700 Subject: API REVIEW request for RT-17398: snapshot (aka render to image) Message-ID: <4FADB6D8.4020204@oracle.com> JIRA: http://javafx-jira.kenai.com/browse/RT-17398 This feature request will add public API to support taking a snapshot of a Scene or Node and rendering it into an Image. To address this feature, I propose to add the following methods on the existing Node and Scene class, along with two new classes to hold the parameters and the result, respectively. Scene: public Image snapshot(Image image) public void snapshot(Callback callback, Image image) Node: public Image snapshot(SnapshotParameters params, Image image) public void snapshot(Callback callback, SnapshotParameters params, Image image) // Data container class with the following attributes SnapshotParameters: get/setDepthBuffer(boolean) get/setCamera(Camera) get/setTransform(Transform); get/setFill(Paint); get/setViewport(Rectangle2D) // Data container class to return the result of an async snapshot, currently immutable SnapshotResult: Image image Object source SnapshotParameters params Here is the preliminary Javadoc for the four snapshot methods: ------------------------------------------------------------------- Scene: public Image snapshot(Image image) Takes a snapshot of this scene and returns the rendered image when it is ready. CSS and layout processing will be done for the scene prior to rendering it. image - the image that will be used to hold the rendered scene. It may be null in which case a new Image will be constructed. If the image is non-null, the scene will be rendered into the existing image. If the image is larger than the scene, the area outside the bounds of the scene will be filled with the Scene fill color. If the image is smaller than the scene, the rendered image will be clipped. ------------------------------------------------------------------- Scene: public void snapshot(Callback callback, Image image) Takes a snapshot of this scene at the next frame and calls the specified callback method when the image is ready. CSS and layout processing will be done for the scene prior to rendering it. This is an asynchronous call, which means that other events or animation might be processed before the scene is rendered. If any such events modify a node in the scene that modification will be reflected in the rendered image (as it will also be reflected in the frame rendered to the Stage). callback - a class whose call method will be called when the image is ready. The SnapshotResult that is passed into the call method of the callback will contain the rendered image and the source scene that was rendered. image - the image that will be used to hold the rendered scene. It may be null in which case a new Image will be constructed. If the image is non-null, the scene will be rendered into the existing image. If the image is larger than the scene, the area outside the bounds of the scene will be filled with the Scene fill color. If the image is smaller than the scene, the rendered image will be clipped. ------------------------------------------------------------------- Node: public Image snapshot(SnapshotParameters params, Image image) Takes a snapshot of this node and returns the rendered image when it is ready. CSS and layout processing will be done for the node, and any of its children, prior to rendering it. Parameters: params - the snapshot parameters containing attributes that will control the rendering. image - the image that will be used to hold the rendered node. It may be null in which case a new Image will be constructed. If the image is non-null, the node will be rendered into the existing image. If the image is larger than the bounds of the node, the area outside the bounds will be filled with the fill color specified in the snapshot parameters. If the image is smaller than the bounds, the rendered image will be clipped. ------------------------------------------------------------------- Node: public void snapshot(Callback callback, SnapshotParameters params, Image image) Takes a snapshot of this node at the next frame and calls the specified callback method when the image is ready. CSS and layout processing will be done for the node, and any of its children, prior to rendering it. This is an asynchronous call, which means that other events or animation might be processed before the node is rendered. If any such events modify the node, or any of its children, that modification will be reflected in the rendered image (just like it will also be reflected in the frame rendered to the Stage, if this node is part of a live scene graph). callback - a class whose call method will be called when the image is ready. The SnapshotResult that is passed into the call method of the callback will contain the rendered image, the source node that was rendered, and a copy of the SnapshotParameters. params - the snapshot parameters containing attributes that will control the rendering. image - the image that will be used to hold the rendered node. It may be null in which case a new Image will be constructed. If the image is non-null, the node will be rendered into the existing image. If the image is larger than the bounds of the node, the area outside the bounds will be filled with the fill color specified in the snapshot parameters. If the image is smaller than the bounds, the rendered image will be clipped. From tom.schindl at bestsolution.at Fri May 11 18:16:26 2012 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Sat, 12 May 2012 03:16:26 +0200 Subject: API REVIEW request for RT-17398: snapshot (aka render to image) In-Reply-To: <4FADB6D8.4020204@oracle.com> References: <4FADB6D8.4020204@oracle.com> Message-ID: <4FADB9EA.8040808@bestsolution.at> One question will the complete content get rendered into an image or the only the visible one? E.g a node has a size of 2000x2000 but my screen is only 1024x768 will the rendered image be 2000x2000? Tom Am 12.05.12 03:03, schrieb Kevin Rushforth: > JIRA: http://javafx-jira.kenai.com/browse/RT-17398 > > This feature request will add public API to support taking a snapshot of > a Scene or Node and rendering it into an Image. > > To address this feature, I propose to add the following methods on the > existing Node and Scene class, along with two new classes to hold the > parameters and the result, respectively. > > Scene: > public Image snapshot(Image image) > public void snapshot(Callback callback, Image > image) > > Node: > public Image snapshot(SnapshotParameters params, Image image) > public void snapshot(Callback callback, > SnapshotParameters params, Image image) > > // Data container class with the following attributes > SnapshotParameters: > get/setDepthBuffer(boolean) > get/setCamera(Camera) > get/setTransform(Transform); > get/setFill(Paint); > get/setViewport(Rectangle2D) > > // Data container class to return the result of an async snapshot, > currently immutable > SnapshotResult: > Image image > Object source > SnapshotParameters params > > > Here is the preliminary Javadoc for the four snapshot methods: > > ------------------------------------------------------------------- > > Scene: > public Image snapshot(Image image) > > Takes a snapshot of this scene and returns the rendered image when it is > ready. CSS and layout processing will be done for the scene prior to > rendering it. > > image - the image that will be used to hold the rendered scene. It > may be null in which case a new Image will be constructed. If the image > is non-null, the scene will be rendered into the existing image. If the > image is larger than the scene, the area outside the bounds of the scene > will be filled with the Scene fill color. If the image is smaller than > the scene, the rendered image will be clipped. > > ------------------------------------------------------------------- > > Scene: > public void snapshot(Callback callback, Image > image) > > Takes a snapshot of this scene at the next frame and calls the specified > callback method when the image is ready. CSS and layout processing will > be done for the scene prior to rendering it. This is an asynchronous > call, which means that other events or animation might be processed > before the scene is rendered. If any such events modify a node in the > scene that modification will be reflected in the rendered image (as it > will also be reflected in the frame rendered to the Stage). > > callback - a class whose call method will be called when the image is > ready. The SnapshotResult that is passed into the call method of the > callback will contain the rendered image and the source scene that was > rendered. > > image - the image that will be used to hold the rendered scene. It > may be null in which case a new Image will be constructed. If the image > is non-null, the scene will be rendered into the existing image. If the > image is larger than the scene, the area outside the bounds of the scene > will be filled with the Scene fill color. If the image is smaller than > the scene, the rendered image will be clipped. > > ------------------------------------------------------------------- > > Node: > public Image snapshot(SnapshotParameters params, Image image) > > Takes a snapshot of this node and returns the rendered image when it is > ready. CSS and layout processing will be done for the node, and any of > its children, prior to rendering it. > > Parameters: > params - the snapshot parameters containing attributes that will > control the rendering. > > image - the image that will be used to hold the rendered node. It may > be null in which case a new Image will be constructed. If the image is > non-null, the node will be rendered into the existing image. If the > image is larger than the bounds of the node, the area outside the bounds > will be filled with the fill color specified in the snapshot parameters. > If the image is smaller than the bounds, the rendered image will be > clipped. > > ------------------------------------------------------------------- > > Node: > public void snapshot(Callback callback, > SnapshotParameters params, Image image) > > Takes a snapshot of this node at the next frame and calls the specified > callback method when the image is ready. CSS and layout processing will > be done for the node, and any of its children, prior to rendering it. > This is an asynchronous call, which means that other events or animation > might be processed before the node is rendered. If any such events > modify the node, or any of its children, that modification will be > reflected in the rendered image (just like it will also be reflected in > the frame rendered to the Stage, if this node is part of a live scene > graph). > > callback - a class whose call method will be called when the image is > ready. The SnapshotResult that is passed into the call method of the > callback will contain the rendered image, the source node that was > rendered, and a copy of the SnapshotParameters. > > params - the snapshot parameters containing attributes that will > control the rendering. > > image - the image that will be used to hold the rendered node. It may > be null in which case a new Image will be constructed. If the image is > non-null, the node will be rendered into the existing image. If the > image is larger than the bounds of the node, the area outside the bounds > will be filled with the fill color specified in the snapshot parameters. > If the image is smaller than the bounds, the rendered image will be > clipped. > -- B e s t S o l u t i o n . a t EDV Systemhaus GmbH ------------------------------------------------------------------------ tom schindl gesch?ftsf?hrer/CEO ------------------------------------------------------------------------ eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 http://www.BestSolution.at phone ++43 512 935834 From jmartine_1026 at yahoo.com Fri May 11 20:06:15 2012 From: jmartine_1026 at yahoo.com (Jose Martinez) Date: Fri, 11 May 2012 20:06:15 -0700 (PDT) Subject: API REVIEW request for RT-17398: snapshot (aka render to image) In-Reply-To: <4FADB9EA.8040808@bestsolution.at> References: <4FADB6D8.4020204@oracle.com> <4FADB9EA.8040808@bestsolution.at> Message-ID: <1336791975.41533.YahooMailNeo@web160902.mail.bf1.yahoo.com> Awesome feature. ?I do not know enough about how rendering is done to understand why the new SnapshotParams would need a?Camera and depthBuffer but I guess in the end that just gives it more flexibility or maybes it required for Swing integration. ?It would be good to know why the params in that class were selected. ?Also, I think the faster this feature is the better... please keep speed in mind when selecting which params and implementation should be used when making these snapshots. ?Isolate implementations that might be slower so its used only when needed.... slow feature rich snapshot and quick get the job done snapshots. >?E.g a node has a size of 2000x2000 but my screen is only 1024x768 will?the rendered image be 2000x2000? Maybe the ViewPort in SnapshotParam will decide what part of the scene is stored in the snapshot? ? jose ________________________________ From: Tom Schindl To: openjfx-dev at openjdk.java.net Sent: Friday, May 11, 2012 9:16 PM Subject: Re: API REVIEW request for RT-17398: snapshot (aka render to image) One question will the complete content get rendered into an image or the only the visible one? E.g a node has a size of 2000x2000 but my screen is only 1024x768 will the rendered image be 2000x2000? Tom Am 12.05.12 03:03, schrieb Kevin Rushforth: > JIRA:? http://javafx-jira.kenai.com/browse/RT-17398 > > This feature request will add public API to support taking a snapshot of > a Scene or Node and rendering it into an Image. > > To address this feature, I propose to add the following methods on the > existing Node and Scene class, along with two new classes to hold the > parameters and the result, respectively. > > Scene: >? ? public Image snapshot(Image image) >? ? public void snapshot(Callback callback, Image > image) > > Node: >? ? public Image snapshot(SnapshotParameters params, Image image) >? ? public void snapshot(Callback callback, > SnapshotParameters params, Image image) > > // Data container class with the following attributes > SnapshotParameters: >? ? get/setDepthBuffer(boolean) >? ? get/setCamera(Camera) >? ? get/setTransform(Transform); >? ? get/setFill(Paint); >? ? get/setViewport(Rectangle2D) > > // Data container class to return the result of an async snapshot, > currently immutable > SnapshotResult: >? ? Image image >? ? Object source >? ? SnapshotParameters params > > > Here is the preliminary Javadoc for the four snapshot methods: > > ------------------------------------------------------------------- > > Scene: >? ? public Image snapshot(Image image) > > Takes a snapshot of this scene and returns the rendered image when it is > ready. CSS and layout processing will be done for the scene prior to > rendering it. > >? ? image - the image that will be used to hold the rendered scene. It > may be null in which case a new Image will be constructed. If the image > is non-null, the scene will be rendered into the existing image. If the > image is larger than the scene, the area outside the bounds of the scene > will be filled with the Scene fill color. If the image is smaller than > the scene, the rendered image will be clipped. > > ------------------------------------------------------------------- > > Scene: >? ? public void snapshot(Callback callback, Image > image) > > Takes a snapshot of this scene at the next frame and calls the specified > callback method when the image is ready. CSS and layout processing will > be done for the scene prior to rendering it. This is an asynchronous > call, which means that other events or animation might be processed > before the scene is rendered. If any such events modify a node in the > scene that modification will be reflected in the rendered image (as it > will also be reflected in the frame rendered to the Stage). > >? ? callback - a class whose call method will be called when the image is > ready. The SnapshotResult that is passed into the call method of the > callback will contain the rendered image and the source scene that was > rendered. > >? ? image - the image that will be used to hold the rendered scene. It > may be null in which case a new Image will be constructed. If the image > is non-null, the scene will be rendered into the existing image. If the > image is larger than the scene, the area outside the bounds of the scene > will be filled with the Scene fill color. If the image is smaller than > the scene, the rendered image will be clipped. > > ------------------------------------------------------------------- > > Node: >? ? public Image snapshot(SnapshotParameters params, Image image) > > Takes a snapshot of this node and returns the rendered image when it is > ready. CSS and layout processing will be done for the node, and any of > its children, prior to rendering it. > > Parameters: >? ? params - the snapshot parameters containing attributes that will > control the rendering. > >? ? image - the image that will be used to hold the rendered node. It may > be null in which case a new Image will be constructed. If the image is > non-null, the node will be rendered into the existing image. If the > image is larger than the bounds of the node, the area outside the bounds > will be filled with the fill color specified in the snapshot parameters. > If the image is smaller than the bounds, the rendered image will be > clipped. > > ------------------------------------------------------------------- > > Node: >? ? public void snapshot(Callback callback, > SnapshotParameters params, Image image) > > Takes a snapshot of this node at the next frame and calls the specified > callback method when the image is ready. CSS and layout processing will > be done for the node, and any of its children, prior to rendering it. > This is an asynchronous call, which means that other events or animation > might be processed before the node is rendered. If any such events > modify the node, or any of its children, that modification will be > reflected in the rendered image (just like it will also be reflected in > the frame rendered to the Stage, if this node is part of a live scene > graph). > >? ? callback - a class whose call method will be called when the image is > ready. The SnapshotResult that is passed into the call method of the > callback will contain the rendered image, the source node that was > rendered, and a copy of the SnapshotParameters. > >? ? params - the snapshot parameters containing attributes that will > control the rendering. > >? ? image - the image that will be used to hold the rendered node. It may > be null in which case a new Image will be constructed. If the image is > non-null, the node will be rendered into the existing image. If the > image is larger than the bounds of the node, the area outside the bounds > will be filled with the fill color specified in the snapshot parameters. > If the image is smaller than the bounds, the rendered image will be > clipped. > -- B e s t S o l u t i o n . a t? ? ? ? ? ? ? ? ? ? ? ? EDV Systemhaus GmbH ------------------------------------------------------------------------ tom schindl? ? ? ? ? ? ? ? gesch?ftsf?hrer/CEO ------------------------------------------------------------------------ eduard-bodem-gasse 5-7/1? A-6020 innsbruck? ? fax? ? ? ++43 512 935833 http://www.BestSolution.at? ? ? ? ? ? ? ? ? ? ? phone? ? ++43 512 935834 From zonski at googlemail.com Fri May 11 20:16:06 2012 From: zonski at googlemail.com (Daniel Zwolenski) Date: Sat, 12 May 2012 13:16:06 +1000 Subject: Fwd: API REVIEW request for RT-17398: snapshot (aka render to image) In-Reply-To: References: <4FADB6D8.4020204@oracle.com> <4FADB9EA.8040808@bestsolution.at> <1336791975.41533.YahooMailNeo@web160902.mail.bf1.yahoo.com> Message-ID: Forgot to reply all... ---------- Forwarded message ---------- From: Daniel Zwolenski Date: Sat, May 12, 2012 at 1:15 PM Subject: Re: API REVIEW request for RT-17398: snapshot (aka render to image) To: Jose Martinez I like it. Does it snapshot the current state of the screen or the 'unused' view of it - e.g. if the mouse is over a button will the button be in that state or it's normal state? Similar question for tooltips, selected text in fields, etc? Is this the official solution for how we do printing too, or is that going to be something different again. Random thought, would it be possible to specify an alternate stylesheet (maybe in the params) to use for the snapshot? Feels like there could be some use cases for this, but not sure exactly - more a thought than a suggestion. On Sat, May 12, 2012 at 1:06 PM, Jose Martinez wrote: > Awesome feature. I do not know enough about how rendering is done to > understand why the new SnapshotParams would need a Camera and depthBuffer > but I guess in the end that just gives it more flexibility or maybes it > required for Swing integration. It would be good to know why the params in > that class were selected. Also, I think the faster this feature is the > better... please keep speed in mind when selecting which params and > implementation should be used when making these snapshots. Isolate > implementations that might be slower so its used only when needed.... slow > feature rich snapshot and quick get the job done snapshots. > > > E.g a node has a size of 2000x2000 but my screen is only 1024x768 > will the rendered image be 2000x2000? > Maybe the ViewPort in SnapshotParam will decide what part of the scene is > stored in the snapshot? > > jose > > > ________________________________ > From: Tom Schindl > To: openjfx-dev at openjdk.java.net > Sent: Friday, May 11, 2012 9:16 PM > Subject: Re: API REVIEW request for RT-17398: snapshot (aka render to > image) > > One question will the complete content get rendered into an image or the > only the visible one? > > E.g a node has a size of 2000x2000 but my screen is only 1024x768 will > the rendered image be 2000x2000? > > Tom > > Am 12.05.12 03:03, schrieb Kevin Rushforth: > > JIRA: http://javafx-jira.kenai.com/browse/RT-17398 > > > > This feature request will add public API to support taking a snapshot of > > a Scene or Node and rendering it into an Image. > > > > To address this feature, I propose to add the following methods on the > > existing Node and Scene class, along with two new classes to hold the > > parameters and the result, respectively. > > > > Scene: > > public Image snapshot(Image image) > > public void snapshot(Callback callback, Image > > image) > > > > Node: > > public Image snapshot(SnapshotParameters params, Image image) > > public void snapshot(Callback callback, > > SnapshotParameters params, Image image) > > > > // Data container class with the following attributes > > SnapshotParameters: > > get/setDepthBuffer(boolean) > > get/setCamera(Camera) > > get/setTransform(Transform); > > get/setFill(Paint); > > get/setViewport(Rectangle2D) > > > > // Data container class to return the result of an async snapshot, > > currently immutable > > SnapshotResult: > > Image image > > Object source > > SnapshotParameters params > > > > > > Here is the preliminary Javadoc for the four snapshot methods: > > > > ------------------------------------------------------------------- > > > > Scene: > > public Image snapshot(Image image) > > > > Takes a snapshot of this scene and returns the rendered image when it is > > ready. CSS and layout processing will be done for the scene prior to > > rendering it. > > > > image - the image that will be used to hold the rendered scene. It > > may be null in which case a new Image will be constructed. If the image > > is non-null, the scene will be rendered into the existing image. If the > > image is larger than the scene, the area outside the bounds of the scene > > will be filled with the Scene fill color. If the image is smaller than > > the scene, the rendered image will be clipped. > > > > ------------------------------------------------------------------- > > > > Scene: > > public void snapshot(Callback callback, Image > > image) > > > > Takes a snapshot of this scene at the next frame and calls the specified > > callback method when the image is ready. CSS and layout processing will > > be done for the scene prior to rendering it. This is an asynchronous > > call, which means that other events or animation might be processed > > before the scene is rendered. If any such events modify a node in the > > scene that modification will be reflected in the rendered image (as it > > will also be reflected in the frame rendered to the Stage). > > > > callback - a class whose call method will be called when the image is > > ready. The SnapshotResult that is passed into the call method of the > > callback will contain the rendered image and the source scene that was > > rendered. > > > > image - the image that will be used to hold the rendered scene. It > > may be null in which case a new Image will be constructed. If the image > > is non-null, the scene will be rendered into the existing image. If the > > image is larger than the scene, the area outside the bounds of the scene > > will be filled with the Scene fill color. If the image is smaller than > > the scene, the rendered image will be clipped. > > > > ------------------------------------------------------------------- > > > > Node: > > public Image snapshot(SnapshotParameters params, Image image) > > > > Takes a snapshot of this node and returns the rendered image when it is > > ready. CSS and layout processing will be done for the node, and any of > > its children, prior to rendering it. > > > > Parameters: > > params - the snapshot parameters containing attributes that will > > control the rendering. > > > > image - the image that will be used to hold the rendered node. It may > > be null in which case a new Image will be constructed. If the image is > > non-null, the node will be rendered into the existing image. If the > > image is larger than the bounds of the node, the area outside the bounds > > will be filled with the fill color specified in the snapshot parameters. > > If the image is smaller than the bounds, the rendered image will be > > clipped. > > > > ------------------------------------------------------------------- > > > > Node: > > public void snapshot(Callback callback, > > SnapshotParameters params, Image image) > > > > Takes a snapshot of this node at the next frame and calls the specified > > callback method when the image is ready. CSS and layout processing will > > be done for the node, and any of its children, prior to rendering it. > > This is an asynchronous call, which means that other events or animation > > might be processed before the node is rendered. If any such events > > modify the node, or any of its children, that modification will be > > reflected in the rendered image (just like it will also be reflected in > > the frame rendered to the Stage, if this node is part of a live scene > > graph). > > > > callback - a class whose call method will be called when the image is > > ready. The SnapshotResult that is passed into the call method of the > > callback will contain the rendered image, the source node that was > > rendered, and a copy of the SnapshotParameters. > > > > params - the snapshot parameters containing attributes that will > > control the rendering. > > > > image - the image that will be used to hold the rendered node. It may > > be null in which case a new Image will be constructed. If the image is > > non-null, the node will be rendered into the existing image. If the > > image is larger than the bounds of the node, the area outside the bounds > > will be filled with the fill color specified in the snapshot parameters. > > If the image is smaller than the bounds, the rendered image will be > > clipped. > > > > > -- > B e s t S o l u t i o n . a t EDV Systemhaus GmbH > ------------------------------------------------------------------------ > tom schindl gesch?ftsf?hrer/CEO > ------------------------------------------------------------------------ > eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 > http://www.BestSolution.at phone ++43 512 935834 > From alexander.kouznetsov at oracle.com Sat May 12 00:25:16 2012 From: alexander.kouznetsov at oracle.com (Alexander Kouznetsov) Date: Sat, 12 May 2012 11:25:16 +0400 Subject: API REVIEW request for RT-17398: snapshot (aka render to image) In-Reply-To: <4FADB6D8.4020204@oracle.com> References: <4FADB6D8.4020204@oracle.com> Message-ID: <4FAE105C.1090907@oracle.com> Hi Kevin, The proposal looks very reasonable. I want to clarify a few points: 1. Does it allow to render nodes that are not part of any Scene? Looks like that. 2. Can params be null? Meaning that for the nodes added to scene, its depthbuffer and camera parameters are used to render? It looks like boundsInLocal seems to be a good candidate for the view port in this case. Transform the identity and Fill is TRANSPARENT? Best regards, Alexander Kouznetsov On 12.05.2012 5:03, Kevin Rushforth wrote: > JIRA: http://javafx-jira.kenai.com/browse/RT-17398 > > This feature request will add public API to support taking a snapshot > of a Scene or Node and rendering it into an Image. > > To address this feature, I propose to add the following methods on the > existing Node and Scene class, along with two new classes to hold the > parameters and the result, respectively. > > Scene: > public Image snapshot(Image image) > public void snapshot(Callback callback, Image > image) > > Node: > public Image snapshot(SnapshotParameters params, Image image) > public void snapshot(Callback callback, > SnapshotParameters params, Image image) > > // Data container class with the following attributes > SnapshotParameters: > get/setDepthBuffer(boolean) > get/setCamera(Camera) > get/setTransform(Transform); > get/setFill(Paint); > get/setViewport(Rectangle2D) > > // Data container class to return the result of an async snapshot, > currently immutable > SnapshotResult: > Image image > Object source > SnapshotParameters params > > > Here is the preliminary Javadoc for the four snapshot methods: > > ------------------------------------------------------------------- > > Scene: > public Image snapshot(Image image) > > Takes a snapshot of this scene and returns the rendered image when it > is ready. CSS and layout processing will be done for the scene prior > to rendering it. > > image - the image that will be used to hold the rendered scene. It > may be null in which case a new Image will be constructed. If the > image is non-null, the scene will be rendered into the existing image. > If the image is larger than the scene, the area outside the bounds of > the scene will be filled with the Scene fill color. If the image is > smaller than the scene, the rendered image will be clipped. > > ------------------------------------------------------------------- > > Scene: > public void snapshot(Callback callback, Image > image) > > Takes a snapshot of this scene at the next frame and calls the > specified callback method when the image is ready. CSS and layout > processing will be done for the scene prior to rendering it. This is > an asynchronous call, which means that other events or animation might > be processed before the scene is rendered. If any such events modify a > node in the scene that modification will be reflected in the rendered > image (as it will also be reflected in the frame rendered to the Stage). > > callback - a class whose call method will be called when the image > is ready. The SnapshotResult that is passed into the call method of > the callback will contain the rendered image and the source scene that > was rendered. > > image - the image that will be used to hold the rendered scene. It > may be null in which case a new Image will be constructed. If the > image is non-null, the scene will be rendered into the existing image. > If the image is larger than the scene, the area outside the bounds of > the scene will be filled with the Scene fill color. If the image is > smaller than the scene, the rendered image will be clipped. > > ------------------------------------------------------------------- > > Node: > public Image snapshot(SnapshotParameters params, Image image) > > Takes a snapshot of this node and returns the rendered image when it > is ready. CSS and layout processing will be done for the node, and any > of its children, prior to rendering it. > > Parameters: > params - the snapshot parameters containing attributes that will > control the rendering. > > image - the image that will be used to hold the rendered node. It > may be null in which case a new Image will be constructed. If the > image is non-null, the node will be rendered into the existing image. > If the image is larger than the bounds of the node, the area outside > the bounds will be filled with the fill color specified in the > snapshot parameters. If the image is smaller than the bounds, the > rendered image will be clipped. > > ------------------------------------------------------------------- > > Node: > public void snapshot(Callback callback, > SnapshotParameters params, Image image) > > Takes a snapshot of this node at the next frame and calls the > specified callback method when the image is ready. CSS and layout > processing will be done for the node, and any of its children, prior > to rendering it. This is an asynchronous call, which means that other > events or animation might be processed before the node is rendered. If > any such events modify the node, or any of its children, that > modification will be reflected in the rendered image (just like it > will also be reflected in the frame rendered to the Stage, if this > node is part of a live scene graph). > > callback - a class whose call method will be called when the image > is ready. The SnapshotResult that is passed into the call method of > the callback will contain the rendered image, the source node that was > rendered, and a copy of the SnapshotParameters. > > params - the snapshot parameters containing attributes that will > control the rendering. > > image - the image that will be used to hold the rendered node. It > may be null in which case a new Image will be constructed. If the > image is non-null, the node will be rendered into the existing image. > If the image is larger than the bounds of the node, the area outside > the bounds will be filled with the fill color specified in the > snapshot parameters. If the image is smaller than the bounds, the > rendered image will be clipped. > From artem.ananiev at oracle.com Sat May 12 03:07:53 2012 From: artem.ananiev at oracle.com (Artem Ananiev) Date: Sat, 12 May 2012 14:07:53 +0400 Subject: API REVIEW request for RT-17398: snapshot (aka render to image) In-Reply-To: <4FADB6D8.4020204@oracle.com> References: <4FADB6D8.4020204@oracle.com> Message-ID: <4FAE3679.1050005@oracle.com> Hi, Kevin, On 5/12/2012 5:03 AM, Kevin Rushforth wrote: > JIRA: http://javafx-jira.kenai.com/browse/RT-17398 > > This feature request will add public API to support taking a snapshot of > a Scene or Node and rendering it into an Image. > > To address this feature, I propose to add the following methods on the > existing Node and Scene class, along with two new classes to hold the > parameters and the result, respectively. > > Scene: > public Image snapshot(Image image) > public void snapshot(Callback callback, Image image) looking at the JavaDoc below, I assume the former method is synchronous (doesn't return until the scene is rendered on the render thread), and the latter is not, correct? If my assumption above is correct, do we want to warn developers about (not?) calling the former method from JavaFX event thread? Given the way how event and render threads are tightly related, it may be deadlock prone. Another option is to start a nested event loop internally, but in this case it should be mentioned in JavaDoc as well. Thanks, Artem > Node: > public Image snapshot(SnapshotParameters params, Image image) > public void snapshot(Callback callback, > SnapshotParameters params, Image image) > > // Data container class with the following attributes > SnapshotParameters: > get/setDepthBuffer(boolean) > get/setCamera(Camera) > get/setTransform(Transform); > get/setFill(Paint); > get/setViewport(Rectangle2D) > > // Data container class to return the result of an async snapshot, > currently immutable > SnapshotResult: > Image image > Object source > SnapshotParameters params > > > Here is the preliminary Javadoc for the four snapshot methods: > > ------------------------------------------------------------------- > > Scene: > public Image snapshot(Image image) > > Takes a snapshot of this scene and returns the rendered image when it is > ready. CSS and layout processing will be done for the scene prior to > rendering it. > > image - the image that will be used to hold the rendered scene. It may > be null in which case a new Image will be constructed. If the image is > non-null, the scene will be rendered into the existing image. If the > image is larger than the scene, the area outside the bounds of the scene > will be filled with the Scene fill color. If the image is smaller than > the scene, the rendered image will be clipped. > > ------------------------------------------------------------------- > > Scene: > public void snapshot(Callback callback, Image image) > > Takes a snapshot of this scene at the next frame and calls the specified > callback method when the image is ready. CSS and layout processing will > be done for the scene prior to rendering it. This is an asynchronous > call, which means that other events or animation might be processed > before the scene is rendered. If any such events modify a node in the > scene that modification will be reflected in the rendered image (as it > will also be reflected in the frame rendered to the Stage). > > callback - a class whose call method will be called when the image is > ready. The SnapshotResult that is passed into the call method of the > callback will contain the rendered image and the source scene that was > rendered. > > image - the image that will be used to hold the rendered scene. It may > be null in which case a new Image will be constructed. If the image is > non-null, the scene will be rendered into the existing image. If the > image is larger than the scene, the area outside the bounds of the scene > will be filled with the Scene fill color. If the image is smaller than > the scene, the rendered image will be clipped. > > ------------------------------------------------------------------- > > Node: > public Image snapshot(SnapshotParameters params, Image image) > > Takes a snapshot of this node and returns the rendered image when it is > ready. CSS and layout processing will be done for the node, and any of > its children, prior to rendering it. > > Parameters: > params - the snapshot parameters containing attributes that will control > the rendering. > > image - the image that will be used to hold the rendered node. It may be > null in which case a new Image will be constructed. If the image is > non-null, the node will be rendered into the existing image. If the > image is larger than the bounds of the node, the area outside the bounds > will be filled with the fill color specified in the snapshot parameters. > If the image is smaller than the bounds, the rendered image will be > clipped. > > ------------------------------------------------------------------- > > Node: > public void snapshot(Callback callback, > SnapshotParameters params, Image image) > > Takes a snapshot of this node at the next frame and calls the specified > callback method when the image is ready. CSS and layout processing will > be done for the node, and any of its children, prior to rendering it. > This is an asynchronous call, which means that other events or animation > might be processed before the node is rendered. If any such events > modify the node, or any of its children, that modification will be > reflected in the rendered image (just like it will also be reflected in > the frame rendered to the Stage, if this node is part of a live scene > graph). > > callback - a class whose call method will be called when the image is > ready. The SnapshotResult that is passed into the call method of the > callback will contain the rendered image, the source node that was > rendered, and a copy of the SnapshotParameters. > > params - the snapshot parameters containing attributes that will control > the rendering. > > image - the image that will be used to hold the rendered node. It may be > null in which case a new Image will be constructed. If the image is > non-null, the node will be rendered into the existing image. If the > image is larger than the bounds of the node, the area outside the bounds > will be filled with the fill color specified in the snapshot parameters. > If the image is smaller than the bounds, the rendered image will be > clipped. > From hang.vo at oracle.com Sat May 12 04:04:19 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sat, 12 May 2012 11:04:19 +0000 Subject: hg: openjfx/2.2/graphics/rt: Fix 19711: Color.web() should accept rgb[a] and hsb[a] formats. Message-ID: <20120512110421.49030472BB@hg.openjdk.java.net> Changeset: b173e1fe8356 Author: flar Date: 2012-05-12 04:00 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/b173e1fe8356 Fix 19711: Color.web() should accept rgb[a] and hsb[a] formats. Reviewed by Kevin and API approved by Richard last month (notifications got lost in the shuffle). ! javafx-ui-common/src/javafx/scene/paint/Color.java ! javafx-ui-common/test/unit/javafx/scene/paint/ColorTest.java From Peter.Zhelezniakov at oracle.com Sat May 12 05:02:11 2012 From: Peter.Zhelezniakov at oracle.com (Peter Zhelezniakov) Date: Sat, 12 May 2012 16:02:11 +0400 Subject: API Request: WebView.scale property Message-ID: <4FAE5143.4080409@oracle.com> I suggest adding 'scale' property to WebView: class javafx.scene.web.WebView { /** * Scale factor applied to the Web page. The scale affects logical bounds * of the Web page, but not bounds of the {@code WebView} node. * * @defaultValue 1.0 */ public final void setScale(double value); public final double getScale(); public DoubleProperty scaleProperty(); } This property is different from scaleX/Y in several ways: - scale is applied internally, i.e. logical bounds of the web page change but WebView bounds don't; rather, scrollbars are updated. Likewise in a frameset document frame bounds don't change. - Scrollbars are not scaled and keep their regular size. Similar functionality can be found in browsers, e.g. try Ctrl+/Ctrl- in Firefox. WebView currently has a similar property called fontScale, but that applies to text elements only. http://javafx-jira.kenai.com/browse/RT-21499 Thanks! -- Peter | x33066 | St Petersburg, Russia | timezone: GMT+04 From hang.vo at oracle.com Sat May 12 10:48:25 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sat, 12 May 2012 17:48:25 +0000 Subject: hg: openjfx/2.2/controls/rt: 2 new changesets Message-ID: <20120512174828.2A4BE472C1@hg.openjdk.java.net> Changeset: afb9b341bd82 Author: Kinsley Wong Date: 2012-05-12 10:34 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/afb9b341bd82 Pagination: always show the selected page when resizing. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/PaginationSkin.java Changeset: e262487f274b Author: Kinsley Wong Date: 2012-05-12 10:36 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/e262487f274b Pagination visual designs by Jasper. ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/PaginationSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css From kevin.rushforth at oracle.com Sat May 12 12:39:39 2012 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Sat, 12 May 2012 12:39:39 -0700 Subject: API REVIEW request for RT-17398: snapshot (aka render to image) In-Reply-To: <4FADB9EA.8040808@bestsolution.at> References: <4FADB6D8.4020204@oracle.com> <4FADB9EA.8040808@bestsolution.at> Message-ID: <4FAEBC7B.1000608@oracle.com> > > One question will the complete content get rendered into an image or the > only the visible one? It will be the complete content based on the size of the scene or node, not limited to the screen size. The current implementation is limited by the texture memory of the card, but that is just a bug that can be fixed (by tiling the rendering...webview already does this when displaying large images in a web page). -- Kevin Tom Schindl wrote: > One question will the complete content get rendered into an image or the > only the visible one? > > E.g a node has a size of 2000x2000 but my screen is only 1024x768 will > the rendered image be 2000x2000? > > Tom > > Am 12.05.12 03:03, schrieb Kevin Rushforth: > >> JIRA: http://javafx-jira.kenai.com/browse/RT-17398 >> >> This feature request will add public API to support taking a snapshot of >> a Scene or Node and rendering it into an Image. >> >> To address this feature, I propose to add the following methods on the >> existing Node and Scene class, along with two new classes to hold the >> parameters and the result, respectively. >> >> Scene: >> public Image snapshot(Image image) >> public void snapshot(Callback callback, Image >> image) >> >> Node: >> public Image snapshot(SnapshotParameters params, Image image) >> public void snapshot(Callback callback, >> SnapshotParameters params, Image image) >> >> // Data container class with the following attributes >> SnapshotParameters: >> get/setDepthBuffer(boolean) >> get/setCamera(Camera) >> get/setTransform(Transform); >> get/setFill(Paint); >> get/setViewport(Rectangle2D) >> >> // Data container class to return the result of an async snapshot, >> currently immutable >> SnapshotResult: >> Image image >> Object source >> SnapshotParameters params >> >> >> Here is the preliminary Javadoc for the four snapshot methods: >> >> ------------------------------------------------------------------- >> >> Scene: >> public Image snapshot(Image image) >> >> Takes a snapshot of this scene and returns the rendered image when it is >> ready. CSS and layout processing will be done for the scene prior to >> rendering it. >> >> image - the image that will be used to hold the rendered scene. It >> may be null in which case a new Image will be constructed. If the image >> is non-null, the scene will be rendered into the existing image. If the >> image is larger than the scene, the area outside the bounds of the scene >> will be filled with the Scene fill color. If the image is smaller than >> the scene, the rendered image will be clipped. >> >> ------------------------------------------------------------------- >> >> Scene: >> public void snapshot(Callback callback, Image >> image) >> >> Takes a snapshot of this scene at the next frame and calls the specified >> callback method when the image is ready. CSS and layout processing will >> be done for the scene prior to rendering it. This is an asynchronous >> call, which means that other events or animation might be processed >> before the scene is rendered. If any such events modify a node in the >> scene that modification will be reflected in the rendered image (as it >> will also be reflected in the frame rendered to the Stage). >> >> callback - a class whose call method will be called when the image is >> ready. The SnapshotResult that is passed into the call method of the >> callback will contain the rendered image and the source scene that was >> rendered. >> >> image - the image that will be used to hold the rendered scene. It >> may be null in which case a new Image will be constructed. If the image >> is non-null, the scene will be rendered into the existing image. If the >> image is larger than the scene, the area outside the bounds of the scene >> will be filled with the Scene fill color. If the image is smaller than >> the scene, the rendered image will be clipped. >> >> ------------------------------------------------------------------- >> >> Node: >> public Image snapshot(SnapshotParameters params, Image image) >> >> Takes a snapshot of this node and returns the rendered image when it is >> ready. CSS and layout processing will be done for the node, and any of >> its children, prior to rendering it. >> >> Parameters: >> params - the snapshot parameters containing attributes that will >> control the rendering. >> >> image - the image that will be used to hold the rendered node. It may >> be null in which case a new Image will be constructed. If the image is >> non-null, the node will be rendered into the existing image. If the >> image is larger than the bounds of the node, the area outside the bounds >> will be filled with the fill color specified in the snapshot parameters. >> If the image is smaller than the bounds, the rendered image will be >> clipped. >> >> ------------------------------------------------------------------- >> >> Node: >> public void snapshot(Callback callback, >> SnapshotParameters params, Image image) >> >> Takes a snapshot of this node at the next frame and calls the specified >> callback method when the image is ready. CSS and layout processing will >> be done for the node, and any of its children, prior to rendering it. >> This is an asynchronous call, which means that other events or animation >> might be processed before the node is rendered. If any such events >> modify the node, or any of its children, that modification will be >> reflected in the rendered image (just like it will also be reflected in >> the frame rendered to the Stage, if this node is part of a live scene >> graph). >> >> callback - a class whose call method will be called when the image is >> ready. The SnapshotResult that is passed into the call method of the >> callback will contain the rendered image, the source node that was >> rendered, and a copy of the SnapshotParameters. >> >> params - the snapshot parameters containing attributes that will >> control the rendering. >> >> image - the image that will be used to hold the rendered node. It may >> be null in which case a new Image will be constructed. If the image is >> non-null, the node will be rendered into the existing image. If the >> image is larger than the bounds of the node, the area outside the bounds >> will be filled with the fill color specified in the snapshot parameters. >> If the image is smaller than the bounds, the rendered image will be >> clipped. >> >> > > > From kevin.rushforth at oracle.com Sat May 12 12:42:47 2012 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Sat, 12 May 2012 12:42:47 -0700 Subject: API REVIEW request for RT-17398: snapshot (aka render to image) In-Reply-To: <1336791975.41533.YahooMailNeo@web160902.mail.bf1.yahoo.com> References: <4FADB6D8.4020204@oracle.com> <4FADB9EA.8040808@bestsolution.at> <1336791975.41533.YahooMailNeo@web160902.mail.bf1.yahoo.com> Message-ID: <4FAEBD37.9040204@oracle.com> The SnapshotParameters for Node rendering contains attributes like Fill, Camera, and DepthBuffer that are on the Scene, and used when doing Scene rendering. It allows node rendering to be able to use those same attributes. > Maybe the ViewPort in SnapshotParam will decide what part of the scene is stored in the snapshot? Exactly. The default is the bounds of the Node or Scene. Viewport allows you to specify a portion of the scene or node. -- Kevin Jose Martinez wrote: > Awesome feature. I do not know enough about how rendering is done to understand why the new SnapshotParams would need a Camera and depthBuffer but I guess in the end that just gives it more flexibility or maybes it required for Swing integration. It would be good to know why the params in that class were selected. Also, I think the faster this feature is the better... please keep speed in mind when selecting which params and implementation should be used when making these snapshots. Isolate implementations that might be slower so its used only when needed.... slow feature rich snapshot and quick get the job done snapshots. > > >> E.g a node has a size of 2000x2000 but my screen is only 1024x768 will the rendered image be 2000x2000? >> > Maybe the ViewPort in SnapshotParam will decide what part of the scene is stored in the snapshot? > > jose > > > ________________________________ > From: Tom Schindl > To: openjfx-dev at openjdk.java.net > Sent: Friday, May 11, 2012 9:16 PM > Subject: Re: API REVIEW request for RT-17398: snapshot (aka render to image) > > One question will the complete content get rendered into an image or the > only the visible one? > > E.g a node has a size of 2000x2000 but my screen is only 1024x768 will > the rendered image be 2000x2000? > > Tom > > Am 12.05.12 03:03, schrieb Kevin Rushforth: > >> JIRA: http://javafx-jira.kenai.com/browse/RT-17398 >> >> This feature request will add public API to support taking a snapshot of >> a Scene or Node and rendering it into an Image. >> >> To address this feature, I propose to add the following methods on the >> existing Node and Scene class, along with two new classes to hold the >> parameters and the result, respectively. >> >> Scene: >> public Image snapshot(Image image) >> public void snapshot(Callback callback, Image >> image) >> >> Node: >> public Image snapshot(SnapshotParameters params, Image image) >> public void snapshot(Callback callback, >> SnapshotParameters params, Image image) >> >> // Data container class with the following attributes >> SnapshotParameters: >> get/setDepthBuffer(boolean) >> get/setCamera(Camera) >> get/setTransform(Transform); >> get/setFill(Paint); >> get/setViewport(Rectangle2D) >> >> // Data container class to return the result of an async snapshot, >> currently immutable >> SnapshotResult: >> Image image >> Object source >> SnapshotParameters params >> >> >> Here is the preliminary Javadoc for the four snapshot methods: >> >> ------------------------------------------------------------------- >> >> Scene: >> public Image snapshot(Image image) >> >> Takes a snapshot of this scene and returns the rendered image when it is >> ready. CSS and layout processing will be done for the scene prior to >> rendering it. >> >> image - the image that will be used to hold the rendered scene. It >> may be null in which case a new Image will be constructed. If the image >> is non-null, the scene will be rendered into the existing image. If the >> image is larger than the scene, the area outside the bounds of the scene >> will be filled with the Scene fill color. If the image is smaller than >> the scene, the rendered image will be clipped. >> >> ------------------------------------------------------------------- >> >> Scene: >> public void snapshot(Callback callback, Image >> image) >> >> Takes a snapshot of this scene at the next frame and calls the specified >> callback method when the image is ready. CSS and layout processing will >> be done for the scene prior to rendering it. This is an asynchronous >> call, which means that other events or animation might be processed >> before the scene is rendered. If any such events modify a node in the >> scene that modification will be reflected in the rendered image (as it >> will also be reflected in the frame rendered to the Stage). >> >> callback - a class whose call method will be called when the image is >> ready. The SnapshotResult that is passed into the call method of the >> callback will contain the rendered image and the source scene that was >> rendered. >> >> image - the image that will be used to hold the rendered scene. It >> may be null in which case a new Image will be constructed. If the image >> is non-null, the scene will be rendered into the existing image. If the >> image is larger than the scene, the area outside the bounds of the scene >> will be filled with the Scene fill color. If the image is smaller than >> the scene, the rendered image will be clipped. >> >> ------------------------------------------------------------------- >> >> Node: >> public Image snapshot(SnapshotParameters params, Image image) >> >> Takes a snapshot of this node and returns the rendered image when it is >> ready. CSS and layout processing will be done for the node, and any of >> its children, prior to rendering it. >> >> Parameters: >> params - the snapshot parameters containing attributes that will >> control the rendering. >> >> image - the image that will be used to hold the rendered node. It may >> be null in which case a new Image will be constructed. If the image is >> non-null, the node will be rendered into the existing image. If the >> image is larger than the bounds of the node, the area outside the bounds >> will be filled with the fill color specified in the snapshot parameters. >> If the image is smaller than the bounds, the rendered image will be >> clipped. >> >> ------------------------------------------------------------------- >> >> Node: >> public void snapshot(Callback callback, >> SnapshotParameters params, Image image) >> >> Takes a snapshot of this node at the next frame and calls the specified >> callback method when the image is ready. CSS and layout processing will >> be done for the node, and any of its children, prior to rendering it. >> This is an asynchronous call, which means that other events or animation >> might be processed before the node is rendered. If any such events >> modify the node, or any of its children, that modification will be >> reflected in the rendered image (just like it will also be reflected in >> the frame rendered to the Stage, if this node is part of a live scene >> graph). >> >> callback - a class whose call method will be called when the image is >> ready. The SnapshotResult that is passed into the call method of the >> callback will contain the rendered image, the source node that was >> rendered, and a copy of the SnapshotParameters. >> >> params - the snapshot parameters containing attributes that will >> control the rendering. >> >> image - the image that will be used to hold the rendered node. It may >> be null in which case a new Image will be constructed. If the image is >> non-null, the node will be rendered into the existing image. If the >> image is larger than the bounds of the node, the area outside the bounds >> will be filled with the fill color specified in the snapshot parameters. >> If the image is smaller than the bounds, the rendered image will be >> clipped. >> >> > > > From kevin.rushforth at oracle.com Sat May 12 12:48:50 2012 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Sat, 12 May 2012 12:48:50 -0700 Subject: API REVIEW request for RT-17398: snapshot (aka render to image) In-Reply-To: <4FAE105C.1090907@oracle.com> References: <4FADB6D8.4020204@oracle.com> <4FAE105C.1090907@oracle.com> Message-ID: <4FAEBEA2.2030800@oracle.com> 1) Yes (although CSS and layout won't work properly if no scene...at least not for this release). 2) I hadn't planned on it, but that is an excellent suggestion. I will make that change (it's trivial). And btw, default viewport is boundsInParent for a node snapshot with a null Viewport, the default transform is IDENTITY and default fill is WHITE (matching the default on Scene). -- Kevin Alexander Kouznetsov wrote: > Hi Kevin, > > The proposal looks very reasonable. > > I want to clarify a few points: > > 1. Does it allow to render nodes that are not part of any Scene? > Looks like that. > 2. Can params be null? Meaning that for the nodes added to scene, > its depthbuffer and camera parameters are used to render? It > looks like boundsInLocal seems to be a good candidate for the > view port in this case. Transform the identity and Fill is > TRANSPARENT? > > Best regards, > Alexander Kouznetsov > > On 12.05.2012 5:03, Kevin Rushforth wrote: >> JIRA: http://javafx-jira.kenai.com/browse/RT-17398 >> >> This feature request will add public API to support taking a snapshot >> of a Scene or Node and rendering it into an Image. >> >> To address this feature, I propose to add the following methods on >> the existing Node and Scene class, along with two new classes to hold >> the parameters and the result, respectively. >> >> Scene: >> public Image snapshot(Image image) >> public void snapshot(Callback callback, Image >> image) >> >> Node: >> public Image snapshot(SnapshotParameters params, Image image) >> public void snapshot(Callback callback, >> SnapshotParameters params, Image image) >> >> // Data container class with the following attributes >> SnapshotParameters: >> get/setDepthBuffer(boolean) >> get/setCamera(Camera) >> get/setTransform(Transform); >> get/setFill(Paint); >> get/setViewport(Rectangle2D) >> >> // Data container class to return the result of an async snapshot, >> currently immutable >> SnapshotResult: >> Image image >> Object source >> SnapshotParameters params >> >> >> Here is the preliminary Javadoc for the four snapshot methods: >> >> ------------------------------------------------------------------- >> >> Scene: >> public Image snapshot(Image image) >> >> Takes a snapshot of this scene and returns the rendered image when it >> is ready. CSS and layout processing will be done for the scene prior >> to rendering it. >> >> image - the image that will be used to hold the rendered scene. It >> may be null in which case a new Image will be constructed. If the >> image is non-null, the scene will be rendered into the existing >> image. If the image is larger than the scene, the area outside the >> bounds of the scene will be filled with the Scene fill color. If the >> image is smaller than the scene, the rendered image will be clipped. >> >> ------------------------------------------------------------------- >> >> Scene: >> public void snapshot(Callback callback, Image >> image) >> >> Takes a snapshot of this scene at the next frame and calls the >> specified callback method when the image is ready. CSS and layout >> processing will be done for the scene prior to rendering it. This is >> an asynchronous call, which means that other events or animation >> might be processed before the scene is rendered. If any such events >> modify a node in the scene that modification will be reflected in the >> rendered image (as it will also be reflected in the frame rendered to >> the Stage). >> >> callback - a class whose call method will be called when the image >> is ready. The SnapshotResult that is passed into the call method of >> the callback will contain the rendered image and the source scene >> that was rendered. >> >> image - the image that will be used to hold the rendered scene. It >> may be null in which case a new Image will be constructed. If the >> image is non-null, the scene will be rendered into the existing >> image. If the image is larger than the scene, the area outside the >> bounds of the scene will be filled with the Scene fill color. If the >> image is smaller than the scene, the rendered image will be clipped. >> >> ------------------------------------------------------------------- >> >> Node: >> public Image snapshot(SnapshotParameters params, Image image) >> >> Takes a snapshot of this node and returns the rendered image when it >> is ready. CSS and layout processing will be done for the node, and >> any of its children, prior to rendering it. >> >> Parameters: >> params - the snapshot parameters containing attributes that will >> control the rendering. >> >> image - the image that will be used to hold the rendered node. It >> may be null in which case a new Image will be constructed. If the >> image is non-null, the node will be rendered into the existing image. >> If the image is larger than the bounds of the node, the area outside >> the bounds will be filled with the fill color specified in the >> snapshot parameters. If the image is smaller than the bounds, the >> rendered image will be clipped. >> >> ------------------------------------------------------------------- >> >> Node: >> public void snapshot(Callback callback, >> SnapshotParameters params, Image image) >> >> Takes a snapshot of this node at the next frame and calls the >> specified callback method when the image is ready. CSS and layout >> processing will be done for the node, and any of its children, prior >> to rendering it. This is an asynchronous call, which means that other >> events or animation might be processed before the node is rendered. >> If any such events modify the node, or any of its children, that >> modification will be reflected in the rendered image (just like it >> will also be reflected in the frame rendered to the Stage, if this >> node is part of a live scene graph). >> >> callback - a class whose call method will be called when the image >> is ready. The SnapshotResult that is passed into the call method of >> the callback will contain the rendered image, the source node that >> was rendered, and a copy of the SnapshotParameters. >> >> params - the snapshot parameters containing attributes that will >> control the rendering. >> >> image - the image that will be used to hold the rendered node. It >> may be null in which case a new Image will be constructed. If the >> image is non-null, the node will be rendered into the existing image. >> If the image is larger than the bounds of the node, the area outside >> the bounds will be filled with the fill color specified in the >> snapshot parameters. If the image is smaller than the bounds, the >> rendered image will be clipped. >> From kevin.rushforth at oracle.com Sat May 12 12:53:59 2012 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Sat, 12 May 2012 12:53:59 -0700 Subject: API REVIEW request for RT-17398: snapshot (aka render to image) In-Reply-To: <4FAE3679.1050005@oracle.com> References: <4FADB6D8.4020204@oracle.com> <4FAE3679.1050005@oracle.com> Message-ID: <4FAEBFD7.8090408@oracle.com> Actually both variants of snapshot (synchronous and asynchronous) must be called on the FX app thread, so your concern bears some thought. We haven't had any deadlock issues with the non-public version of this method (renderToImage) thus far and I don't anticipate any, but yes, I had thought about starting up a nested event loop if it turns out that there are issues. Is there anything in particular you are concerned about? The waiting that is done for the render thread is almost identical to what is already done on a pulse, so that part should be OK, but I can imagine that I might be missing something. -- Kevin Artem Ananiev wrote: > Hi, Kevin, > > On 5/12/2012 5:03 AM, Kevin Rushforth wrote: >> JIRA: http://javafx-jira.kenai.com/browse/RT-17398 >> >> This feature request will add public API to support taking a snapshot of >> a Scene or Node and rendering it into an Image. >> >> To address this feature, I propose to add the following methods on the >> existing Node and Scene class, along with two new classes to hold the >> parameters and the result, respectively. >> >> Scene: >> public Image snapshot(Image image) >> public void snapshot(Callback callback, Image >> image) > > looking at the JavaDoc below, I assume the former method is > synchronous (doesn't return until the scene is rendered on the render > thread), and the latter is not, correct? > > If my assumption above is correct, do we want to warn developers about > (not?) calling the former method from JavaFX event thread? Given the > way how event and render threads are tightly related, it may be > deadlock prone. Another option is to start a nested event loop > internally, but in this case it should be mentioned in JavaDoc as well. > > Thanks, > > Artem > >> Node: >> public Image snapshot(SnapshotParameters params, Image image) >> public void snapshot(Callback callback, >> SnapshotParameters params, Image image) >> >> // Data container class with the following attributes >> SnapshotParameters: >> get/setDepthBuffer(boolean) >> get/setCamera(Camera) >> get/setTransform(Transform); >> get/setFill(Paint); >> get/setViewport(Rectangle2D) >> >> // Data container class to return the result of an async snapshot, >> currently immutable >> SnapshotResult: >> Image image >> Object source >> SnapshotParameters params >> >> >> Here is the preliminary Javadoc for the four snapshot methods: >> >> ------------------------------------------------------------------- >> >> Scene: >> public Image snapshot(Image image) >> >> Takes a snapshot of this scene and returns the rendered image when it is >> ready. CSS and layout processing will be done for the scene prior to >> rendering it. >> >> image - the image that will be used to hold the rendered scene. It may >> be null in which case a new Image will be constructed. If the image is >> non-null, the scene will be rendered into the existing image. If the >> image is larger than the scene, the area outside the bounds of the scene >> will be filled with the Scene fill color. If the image is smaller than >> the scene, the rendered image will be clipped. >> >> ------------------------------------------------------------------- >> >> Scene: >> public void snapshot(Callback callback, Image >> image) >> >> Takes a snapshot of this scene at the next frame and calls the specified >> callback method when the image is ready. CSS and layout processing will >> be done for the scene prior to rendering it. This is an asynchronous >> call, which means that other events or animation might be processed >> before the scene is rendered. If any such events modify a node in the >> scene that modification will be reflected in the rendered image (as it >> will also be reflected in the frame rendered to the Stage). >> >> callback - a class whose call method will be called when the image is >> ready. The SnapshotResult that is passed into the call method of the >> callback will contain the rendered image and the source scene that was >> rendered. >> >> image - the image that will be used to hold the rendered scene. It may >> be null in which case a new Image will be constructed. If the image is >> non-null, the scene will be rendered into the existing image. If the >> image is larger than the scene, the area outside the bounds of the scene >> will be filled with the Scene fill color. If the image is smaller than >> the scene, the rendered image will be clipped. >> >> ------------------------------------------------------------------- >> >> Node: >> public Image snapshot(SnapshotParameters params, Image image) >> >> Takes a snapshot of this node and returns the rendered image when it is >> ready. CSS and layout processing will be done for the node, and any of >> its children, prior to rendering it. >> >> Parameters: >> params - the snapshot parameters containing attributes that will control >> the rendering. >> >> image - the image that will be used to hold the rendered node. It may be >> null in which case a new Image will be constructed. If the image is >> non-null, the node will be rendered into the existing image. If the >> image is larger than the bounds of the node, the area outside the bounds >> will be filled with the fill color specified in the snapshot parameters. >> If the image is smaller than the bounds, the rendered image will be >> clipped. >> >> ------------------------------------------------------------------- >> >> Node: >> public void snapshot(Callback callback, >> SnapshotParameters params, Image image) >> >> Takes a snapshot of this node at the next frame and calls the specified >> callback method when the image is ready. CSS and layout processing will >> be done for the node, and any of its children, prior to rendering it. >> This is an asynchronous call, which means that other events or animation >> might be processed before the node is rendered. If any such events >> modify the node, or any of its children, that modification will be >> reflected in the rendered image (just like it will also be reflected in >> the frame rendered to the Stage, if this node is part of a live scene >> graph). >> >> callback - a class whose call method will be called when the image is >> ready. The SnapshotResult that is passed into the call method of the >> callback will contain the rendered image, the source node that was >> rendered, and a copy of the SnapshotParameters. >> >> params - the snapshot parameters containing attributes that will control >> the rendering. >> >> image - the image that will be used to hold the rendered node. It may be >> null in which case a new Image will be constructed. If the image is >> non-null, the node will be rendered into the existing image. If the >> image is larger than the bounds of the node, the area outside the bounds >> will be filled with the fill color specified in the snapshot parameters. >> If the image is smaller than the bounds, the rendered image will be >> clipped. >> From kevin.rushforth at oracle.com Sat May 12 12:59:40 2012 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Sat, 12 May 2012 12:59:40 -0700 Subject: Fwd: API REVIEW request for RT-17398: snapshot (aka render to image) In-Reply-To: References: <4FADB6D8.4020204@oracle.com> <4FADB9EA.8040808@bestsolution.at> <1336791975.41533.YahooMailNeo@web160902.mail.bf1.yahoo.com> Message-ID: <4FAEC12C.4050408@oracle.com> If you snapshot a live scene it will reflect the state of those node in that scene at the time you take the snapshot (or on the next pulse for the async version), so yes, a button will be rendered in its hovered state if the mouse is over it. Tooltips are not rendered as part of the scene, though, so I wouldn't expect them to be shown (they are rendered in a popup stage). It is a good question, though, about whether it might be something that a user would want to render (if so, we could consider making it available in a future release). As for printing, it will be done differently since it has other needs to consider (although you may be able to use this as sort of a "poor man's" image-based printing of exactly what you see, it isn't suitable for generating a report or other printed rendering of a scene). We had very briefly talked about providing an alternate stylesheet, but didn't take it anywhere for this release. I could imagine adding it to SnapshotParameters in a future version. Btw, printing will likely need to address this. -- Kevin Daniel Zwolenski wrote: > Forgot to reply all... > > ---------- Forwarded message ---------- > From: Daniel Zwolenski > Date: Sat, May 12, 2012 at 1:15 PM > Subject: Re: API REVIEW request for RT-17398: snapshot (aka render to image) > To: Jose Martinez > > > I like it. > > Does it snapshot the current state of the screen or the 'unused' view of it > - e.g. if the mouse is over a button will the button be in that state or > it's normal state? Similar question for tooltips, selected text in fields, > etc? > > Is this the official solution for how we do printing too, or is that going > to be something different again. > > Random thought, would it be possible to specify an alternate stylesheet > (maybe in the params) to use for the snapshot? Feels like there could be > some use cases for this, but not sure exactly - more a thought than a > suggestion. > > > > On Sat, May 12, 2012 at 1:06 PM, Jose Martinez wrote: > > >> Awesome feature. I do not know enough about how rendering is done to >> understand why the new SnapshotParams would need a Camera and depthBuffer >> but I guess in the end that just gives it more flexibility or maybes it >> required for Swing integration. It would be good to know why the params in >> that class were selected. Also, I think the faster this feature is the >> better... please keep speed in mind when selecting which params and >> implementation should be used when making these snapshots. Isolate >> implementations that might be slower so its used only when needed.... slow >> feature rich snapshot and quick get the job done snapshots. >> >> >>> E.g a node has a size of 2000x2000 but my screen is only 1024x768 >>> >> will the rendered image be 2000x2000? >> Maybe the ViewPort in SnapshotParam will decide what part of the scene is >> stored in the snapshot? >> >> jose >> >> >> ________________________________ >> From: Tom Schindl >> To: openjfx-dev at openjdk.java.net >> Sent: Friday, May 11, 2012 9:16 PM >> Subject: Re: API REVIEW request for RT-17398: snapshot (aka render to >> image) >> >> One question will the complete content get rendered into an image or the >> only the visible one? >> >> E.g a node has a size of 2000x2000 but my screen is only 1024x768 will >> the rendered image be 2000x2000? >> >> Tom >> >> Am 12.05.12 03:03, schrieb Kevin Rushforth: >> >>> JIRA: http://javafx-jira.kenai.com/browse/RT-17398 >>> >>> This feature request will add public API to support taking a snapshot of >>> a Scene or Node and rendering it into an Image. >>> >>> To address this feature, I propose to add the following methods on the >>> existing Node and Scene class, along with two new classes to hold the >>> parameters and the result, respectively. >>> >>> Scene: >>> public Image snapshot(Image image) >>> public void snapshot(Callback callback, Image >>> image) >>> >>> Node: >>> public Image snapshot(SnapshotParameters params, Image image) >>> public void snapshot(Callback callback, >>> SnapshotParameters params, Image image) >>> >>> // Data container class with the following attributes >>> SnapshotParameters: >>> get/setDepthBuffer(boolean) >>> get/setCamera(Camera) >>> get/setTransform(Transform); >>> get/setFill(Paint); >>> get/setViewport(Rectangle2D) >>> >>> // Data container class to return the result of an async snapshot, >>> currently immutable >>> SnapshotResult: >>> Image image >>> Object source >>> SnapshotParameters params >>> >>> >>> Here is the preliminary Javadoc for the four snapshot methods: >>> >>> ------------------------------------------------------------------- >>> >>> Scene: >>> public Image snapshot(Image image) >>> >>> Takes a snapshot of this scene and returns the rendered image when it is >>> ready. CSS and layout processing will be done for the scene prior to >>> rendering it. >>> >>> image - the image that will be used to hold the rendered scene. It >>> may be null in which case a new Image will be constructed. If the image >>> is non-null, the scene will be rendered into the existing image. If the >>> image is larger than the scene, the area outside the bounds of the scene >>> will be filled with the Scene fill color. If the image is smaller than >>> the scene, the rendered image will be clipped. >>> >>> ------------------------------------------------------------------- >>> >>> Scene: >>> public void snapshot(Callback callback, Image >>> image) >>> >>> Takes a snapshot of this scene at the next frame and calls the specified >>> callback method when the image is ready. CSS and layout processing will >>> be done for the scene prior to rendering it. This is an asynchronous >>> call, which means that other events or animation might be processed >>> before the scene is rendered. If any such events modify a node in the >>> scene that modification will be reflected in the rendered image (as it >>> will also be reflected in the frame rendered to the Stage). >>> >>> callback - a class whose call method will be called when the image is >>> ready. The SnapshotResult that is passed into the call method of the >>> callback will contain the rendered image and the source scene that was >>> rendered. >>> >>> image - the image that will be used to hold the rendered scene. It >>> may be null in which case a new Image will be constructed. If the image >>> is non-null, the scene will be rendered into the existing image. If the >>> image is larger than the scene, the area outside the bounds of the scene >>> will be filled with the Scene fill color. If the image is smaller than >>> the scene, the rendered image will be clipped. >>> >>> ------------------------------------------------------------------- >>> >>> Node: >>> public Image snapshot(SnapshotParameters params, Image image) >>> >>> Takes a snapshot of this node and returns the rendered image when it is >>> ready. CSS and layout processing will be done for the node, and any of >>> its children, prior to rendering it. >>> >>> Parameters: >>> params - the snapshot parameters containing attributes that will >>> control the rendering. >>> >>> image - the image that will be used to hold the rendered node. It may >>> be null in which case a new Image will be constructed. If the image is >>> non-null, the node will be rendered into the existing image. If the >>> image is larger than the bounds of the node, the area outside the bounds >>> will be filled with the fill color specified in the snapshot parameters. >>> If the image is smaller than the bounds, the rendered image will be >>> clipped. >>> >>> ------------------------------------------------------------------- >>> >>> Node: >>> public void snapshot(Callback callback, >>> SnapshotParameters params, Image image) >>> >>> Takes a snapshot of this node at the next frame and calls the specified >>> callback method when the image is ready. CSS and layout processing will >>> be done for the node, and any of its children, prior to rendering it. >>> This is an asynchronous call, which means that other events or animation >>> might be processed before the node is rendered. If any such events >>> modify the node, or any of its children, that modification will be >>> reflected in the rendered image (just like it will also be reflected in >>> the frame rendered to the Stage, if this node is part of a live scene >>> graph). >>> >>> callback - a class whose call method will be called when the image is >>> ready. The SnapshotResult that is passed into the call method of the >>> callback will contain the rendered image, the source node that was >>> rendered, and a copy of the SnapshotParameters. >>> >>> params - the snapshot parameters containing attributes that will >>> control the rendering. >>> >>> image - the image that will be used to hold the rendered node. It may >>> be null in which case a new Image will be constructed. If the image is >>> non-null, the node will be rendered into the existing image. If the >>> image is larger than the bounds of the node, the area outside the bounds >>> will be filled with the fill color specified in the snapshot parameters. >>> If the image is smaller than the bounds, the rendered image will be >>> clipped. >>> >>> >> -- >> B e s t S o l u t i o n . a t EDV Systemhaus GmbH >> ------------------------------------------------------------------------ >> tom schindl gesch?ftsf?hrer/CEO >> ------------------------------------------------------------------------ >> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833 >> http://www.BestSolution.at phone ++43 512 935834 >> >> From hang.vo at oracle.com Sat May 12 23:19:10 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sun, 13 May 2012 06:19:10 +0000 Subject: hg: openjfx/2.2/graphics/rt: [TEST-ONLY] RT-21516: remove obsolete copy of StubToolkit from javafx-ui-common/test/unit/com/sun/javafx/pgstub/ Message-ID: <20120513061912.3FFB7472CC@hg.openjdk.java.net> Changeset: f1de549254e8 Author: kcr Date: 2012-05-12 22:34 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/f1de549254e8 [TEST-ONLY] RT-21516: remove obsolete copy of StubToolkit from javafx-ui-common/test/unit/com/sun/javafx/pgstub/ - javafx-ui-common/test/unit/com/sun/javafx/pgstub/StubToolkit.java ! test-stub-toolkit/src/com/sun/javafx/pgstub/StubToolkit.java From hang.vo at oracle.com Sun May 13 07:34:10 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sun, 13 May 2012 14:34:10 +0000 Subject: hg: openjfx/2.2/controls/rt: RT-21289 : Click on ScrollBar inc/dec buttons or track sometimes doesn't work Message-ID: <20120513143415.C0B65472CF@hg.openjdk.java.net> Changeset: cc5336993d4c Author: mickf Date: 2012-05-13 15:29 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/cc5336993d4c RT-21289 : Click on ScrollBar inc/dec buttons or track sometimes doesn't work ! javafx-ui-controls/src/com/sun/javafx/scene/control/behavior/ScrollBarBehavior.java From alexander.kouznetsov at oracle.com Sun May 13 12:51:29 2012 From: alexander.kouznetsov at oracle.com (Alexander Kouznetsov) Date: Sun, 13 May 2012 23:51:29 +0400 Subject: API Request: WebView.scale property In-Reply-To: <4FAE5143.4080409@oracle.com> References: <4FAE5143.4080409@oracle.com> Message-ID: <4FB010C1.6000601@oracle.com> Peter, Maybe it would be better to name it "Zoom" to avoid name clash with scaleX/scaleY property? Do you want to add information on which mouse gestures/keyboard shortcut will affect it? Best regards, Alexander Kouznetsov On 12.05.2012 16:02, Peter Zhelezniakov wrote: > I suggest adding 'scale' property to WebView: > > class javafx.scene.web.WebView { > /** > * Scale factor applied to the Web page. The scale affects logical > bounds > * of the Web page, but not bounds of the {@code WebView} node. > * > * @defaultValue 1.0 > */ > public final void setScale(double value); > public final double getScale(); > public DoubleProperty scaleProperty(); > } > > This property is different from scaleX/Y in several ways: > - scale is applied internally, i.e. logical bounds of the web page > change but WebView bounds don't; rather, scrollbars are updated. > Likewise in a frameset document frame bounds don't change. > - Scrollbars are not scaled and keep their regular size. > > Similar functionality can be found in browsers, e.g. try Ctrl+/Ctrl- in > Firefox. WebView currently has a similar property called fontScale, but > that applies to text elements only. > > http://javafx-jira.kenai.com/browse/RT-21499 > > Thanks! From hang.vo at oracle.com Mon May 14 00:32:43 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 14 May 2012 07:32:43 +0000 Subject: hg: openjfx/2.2/controls/rt: implementing more visual design specs and fix bugs RT-21521 & RT-21520 Message-ID: <20120514073247.2096C472DC@hg.openjdk.java.net> Changeset: 12dbf95172a6 Author: Paru Somashekar Date: 2012-05-14 00:22 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/12dbf95172a6 implementing more visual design specs and fix bugs RT-21521 & RT-21520 ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPalette.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ColorPickerSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/CustomColorDialog.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/InputFieldSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/WebColorFieldSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian.css From alexander.kouznetsov at oracle.com Mon May 14 02:21:28 2012 From: alexander.kouznetsov at oracle.com (Alexander Kouznetsov) Date: Mon, 14 May 2012 13:21:28 +0400 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FACDCEB.9000007@oracle.com> References: <4FAA8A38.6090706@oracle.com> <4FACD425.7080408@oracle.com> <4FACDCEB.9000007@oracle.com> Message-ID: <4FB0CE98.9070503@oracle.com> Hi Pavel, On 11.05.2012 13:33, Pavel Safrata wrote: >> >> Can't we just make Affine3D public instead? That way we'll provide >> matrices calculation layer and all we need is to provide methods to >> convert Affine3D to Affine and vice versa. Just an idea. > > This sounds like a bad idea to me. From user's point of view, Affine3D > and Affine would be duplicates except that Affine's members are > observable. What I think we should do is to port some of the Affine3D > functionality to the Affine class (which sounds close to RT-17942). I don't see a really big difference here. Newly added class regardless of its name would be "a duplicate" of Affine class. Moreover if you're not going to port all of its methods there would always be a feature requests to port the rest of them. On the other hand the Affine class wouldn't be just a class that members are observable but would be also a class that has no matrix algebra methods and that is part of Transforms API. Affine3D is clearly a different layer then. Best regards, Alexander Kouznetsov From james.graham at oracle.com Mon May 14 03:25:30 2012 From: james.graham at oracle.com (Jim Graham) Date: Mon, 14 May 2012 03:25:30 -0700 Subject: API review request: ImageView.viewport behavior Message-ID: <4FB0DD9A.2070503@oracle.com> We have these two requests to clarify and fix the behavior of the viewport on an ImageView. They don't involve any new API, just questions and suggestions on changing the behavior of the existing property: http://javafx-jira.kenai.com/browse/RT-19962 http://javafx-jira.kenai.com/browse/RT-19306 The history of this bug is that the code to implement viewports was ported from the Java2D source base where it had an integer "draw sub image" method. The 2D method interpreted the subimage parameters as defining a piece of the image "a subimage" that behaved as if it were extracted and isolated and then rendered as its own image. The FX implementation uses floating point values to define the viewport and describes it merely as defining "the portion of the image which falls within the viewport [is] displayed" and elsewhere as achieving a "zoom effect" if you narrow the viewport without narrowing the fit dimensions. The distinction of whether the viewport/subimage is considered in isolation only matters if you are using image smoothing, which is on by default in FX and off by default in AWT. If you are smoothing, then special math is used for the border pixels because they have no adjacent pixels to smooth against. In 1.3 and 2.0 the math was broken in the FX version because it was ported over from the 2D version which had a different rendering model. We fixed the bugs in 2.1 and brought it into compliance with "what it seemed to be trying to do" which was to isolate the image defined by the viewport. The problem was, when we "fixed those bugs" we realized that there wasn't really any good definition of what the "subimage" was when you are using floating point coordinates since it is hard to create an image from fractions of the border pixels. So, we filed the above bugs to clarify this and to change the implementation of viewports to be more like what you get with "texture mapping" where they simply define the points on the image that map to the corners of the ImageView's output. If there are no objections, I'd like to remove the synthetic "edge conditions" on the ImageView viewport so that it simply acts like a clip affecting what is seen from the original image - a sort of "narrowing lens" if you will... ...jim From james.graham at oracle.com Mon May 14 03:30:01 2012 From: james.graham at oracle.com (Jim Graham) Date: Mon, 14 May 2012 03:30:01 -0700 Subject: RT-20302: Consider changing picking behavior of dashed strokes In-Reply-To: <4FAA90D1.5040400@oracle.com> References: <4FAA90D1.5040400@oracle.com> Message-ID: <4FB0DEA9.4050605@oracle.com> I think the justification that was given when we talked about this in the pre-FX days was that the dashes could be animated for a marquee effect and you wouldn't want to make it harder to click on them. It's probably a lame example and I think others have given better arguments to why this behavior is not necessarily a bad thing, but I wanted to throw it out in case it rings a bell with any applications that are out there or planned... ...jim On 5/9/2012 8:44 AM, Lubomir Nerad wrote: > Hi, > > I would like to change mouse picking behavior of objects with dashed > stroke as described in http://javafx-jira.kenai.com/browse/RT-20302. > Currently an object is picked even when the mouse click happens in the > non-filled parts (inside spaces) of the dashed stroke (stroke dash array > and dash offset have no impact on picking). With RT-19994, this can > create an unexpected situation, when a Shape is picked inside stroke > spaces, but if it is used in a CAG operation (for example > Shape.intersect(shape1, shape1)) the resulting Shape won't include the > spaces and so won't be picked inside of them. To get consistent behavior > I propose not to pick the spaces inside object stokes. > > Do you agree? > > Thanks, > Lubo > From pavel.safrata at oracle.com Mon May 14 04:49:30 2012 From: pavel.safrata at oracle.com (Pavel Safrata) Date: Mon, 14 May 2012 13:49:30 +0200 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FB0CE98.9070503@oracle.com> References: <4FAA8A38.6090706@oracle.com> <4FACD425.7080408@oracle.com> <4FACDCEB.9000007@oracle.com> <4FB0CE98.9070503@oracle.com> Message-ID: <4FB0F14A.4090907@oracle.com> Hi Alexander, On 14.5.2012 11:21, Alexander Kouznetsov wrote: > Hi Pavel, > > On 11.05.2012 13:33, Pavel Safrata wrote: >>> >>> Can't we just make Affine3D public instead? That way we'll provide >>> matrices calculation layer and all we need is to provide methods to >>> convert Affine3D to Affine and vice versa. Just an idea. >> >> This sounds like a bad idea to me. From user's point of view, >> Affine3D and Affine would be duplicates except that Affine's members >> are observable. What I think we should do is to port some of the >> Affine3D functionality to the Affine class (which sounds close to >> RT-17942). > I don't see a really big difference here. Newly added class regardless > of its name would be "a duplicate" of Affine class. I'm not going to add any new class (except of an internal immutable implementation of Transform). The Affine class is already part of public API for a long time, so we should use it and not create any duplicates of it. > Moreover if you're not going to port all of its methods there would > always be a feature requests to port the rest of them. We will consider all the feature requests and implement the reasonable ones. If we end up with something very close to Affine3D, we may then consider switching to the public classes internally. > On the other hand the Affine class wouldn't be just a class that > members are observable but would be also a class that has no matrix > algebra methods and that is part of Transforms API. Affine3D is > clearly a different layer then. The Affine class will have the matrix algebra methods. I don't think we should publish any other layer (our proposal tries to avoid that) - that would lead to more confusion and more work with converting matrices between the layers. Everything should work with the existing classes from the user's point of view. Thanks, Pavel > > Best regards, > Alexander Kouznetsov > > From hang.vo at oracle.com Mon May 14 05:03:09 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 14 May 2012 12:03:09 +0000 Subject: hg: openjfx/2.2/controls/rt: 2 new changesets Message-ID: <20120514120312.4B707472E3@hg.openjdk.java.net> Changeset: 99c751fbdff1 Author: mickf Date: 2012-05-14 12:46 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/99c751fbdff1 RT-21290 : Scrollbar behaves wrong on touch screen ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ScrollBarSkin.java Changeset: a06b43c0bb36 Author: mickf Date: 2012-05-14 12:51 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/a06b43c0bb36 RT-21291 : Scrollable controls scroll in a wrong direction when scrollbar is dragged on touch screen ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ScrollPaneSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/VirtualFlow.java From mp at jugs.org Mon May 14 05:12:27 2012 From: mp at jugs.org (Dr. Michael Paus) Date: Mon, 14 May 2012 14:12:27 +0200 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FB0F14A.4090907@oracle.com> References: <4FAA8A38.6090706@oracle.com> <4FACD425.7080408@oracle.com> <4FACDCEB.9000007@oracle.com> <4FB0CE98.9070503@oracle.com> <4FB0F14A.4090907@oracle.com> Message-ID: <4FB0F6AB.80701@jugs.org> Hi, could you please explain how this will fit into the current class hierarchy for transforms? The general Transform class has all the static methods to create specific transforms. If the Affine class will have all the matrix algebra, then how is this supposed to work? All the specific transformation classes Translate, Rotate, ... are not derived from Affine and thus will not inherit the matrix algebra methods. Michael Am 14.05.2012 13:49, schrieb Pavel Safrata: > Hi Alexander, > > On 14.5.2012 11:21, Alexander Kouznetsov wrote: >> Hi Pavel, >> >> On 11.05.2012 13:33, Pavel Safrata wrote: >>>> >>>> Can't we just make Affine3D public instead? That way we'll provide >>>> matrices calculation layer and all we need is to provide methods to >>>> convert Affine3D to Affine and vice versa. Just an idea. >>> >>> This sounds like a bad idea to me. From user's point of view, >>> Affine3D and Affine would be duplicates except that Affine's members >>> are observable. What I think we should do is to port some of the >>> Affine3D functionality to the Affine class (which sounds close to >>> RT-17942). >> I don't see a really big difference here. Newly added class >> regardless of its name would be "a duplicate" of Affine class. > > I'm not going to add any new class (except of an internal immutable > implementation of Transform). The Affine class is already part of > public API for a long time, so we should use it and not create any > duplicates of it. > >> Moreover if you're not going to port all of its methods there would >> always be a feature requests to port the rest of them. > > We will consider all the feature requests and implement the reasonable > ones. If we end up with something very close to Affine3D, we may then > consider switching to the public classes internally. > >> On the other hand the Affine class wouldn't be just a class that >> members are observable but would be also a class that has no matrix >> algebra methods and that is part of Transforms API. Affine3D is >> clearly a different layer then. > > The Affine class will have the matrix algebra methods. I don't think > we should publish any other layer (our proposal tries to avoid that) - > that would lead to more confusion and more work with converting > matrices between the layers. Everything should work with the existing > classes from the user's point of view. > > Thanks, > Pavel > >> >> Best regards, >> Alexander Kouznetsov >> >> -- -------------------------------------------------------------------------------------- Dr. Michael Paus, Chairman of the Java User Group Stuttgart e.V. (JUGS). For more information visit www.jugs.de. From hang.vo at oracle.com Mon May 14 06:02:56 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 14 May 2012 13:02:56 +0000 Subject: hg: openjfx/2.2/controls/rt: RT-20780 : Scaling UI Controls down to QVGA: ScrollPane Message-ID: <20120514130256.E4522472E6@hg.openjdk.java.net> Changeset: 8a0747a8ce6d Author: mickf Date: 2012-05-14 13:59 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/8a0747a8ce6d RT-20780 : Scaling UI Controls down to QVGA: ScrollPane ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ScrollPaneSkin.java From pavel.safrata at oracle.com Mon May 14 06:21:41 2012 From: pavel.safrata at oracle.com (Pavel Safrata) Date: Mon, 14 May 2012 15:21:41 +0200 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FB0F6AB.80701@jugs.org> References: <4FAA8A38.6090706@oracle.com> <4FACD425.7080408@oracle.com> <4FACDCEB.9000007@oracle.com> <4FB0CE98.9070503@oracle.com> <4FB0F14A.4090907@oracle.com> <4FB0F6AB.80701@jugs.org> Message-ID: <4FB106E5.90402@oracle.com> Hello, I would provide some common algebra methods as "getInverseTransform()" or "getContatenation(Transform)" on the Transform class that would return a new transformation, and methods as "inverse()" or "concatenate(Transform)" on the Affine class, that would modify it in place. For the most common use-cases you should be fine with the specific transformations, for some more complex cases there will be an easy way to convert any of them to Affine (for instance Affine.setTransformation(Transform)) and perform the computation there. Does that sound good? Thanks, Pavel On 14.5.2012 14:12, Dr. Michael Paus wrote: > Hi, > could you please explain how this will fit into the current class > hierarchy for transforms? > The general Transform class has all the static methods to create > specific transforms. If > the Affine class will have all the matrix algebra, then how is this > supposed to work? > All the specific transformation classes Translate, Rotate, ... are not > derived > from Affine and thus will not inherit the matrix algebra methods. > Michael > > > Am 14.05.2012 13:49, schrieb Pavel Safrata: >> Hi Alexander, >> >> On 14.5.2012 11:21, Alexander Kouznetsov wrote: >>> Hi Pavel, >>> >>> On 11.05.2012 13:33, Pavel Safrata wrote: >>>>> >>>>> Can't we just make Affine3D public instead? That way we'll provide >>>>> matrices calculation layer and all we need is to provide methods >>>>> to convert Affine3D to Affine and vice versa. Just an idea. >>>> >>>> This sounds like a bad idea to me. From user's point of view, >>>> Affine3D and Affine would be duplicates except that Affine's >>>> members are observable. What I think we should do is to port some >>>> of the Affine3D functionality to the Affine class (which sounds >>>> close to RT-17942). >>> I don't see a really big difference here. Newly added class >>> regardless of its name would be "a duplicate" of Affine class. >> >> I'm not going to add any new class (except of an internal immutable >> implementation of Transform). The Affine class is already part of >> public API for a long time, so we should use it and not create any >> duplicates of it. >> >>> Moreover if you're not going to port all of its methods there would >>> always be a feature requests to port the rest of them. >> >> We will consider all the feature requests and implement the >> reasonable ones. If we end up with something very close to Affine3D, >> we may then consider switching to the public classes internally. >> >>> On the other hand the Affine class wouldn't be just a class that >>> members are observable but would be also a class that has no matrix >>> algebra methods and that is part of Transforms API. Affine3D is >>> clearly a different layer then. >> >> The Affine class will have the matrix algebra methods. I don't think >> we should publish any other layer (our proposal tries to avoid that) >> - that would lead to more confusion and more work with converting >> matrices between the layers. Everything should work with the existing >> classes from the user's point of view. >> >> Thanks, >> Pavel >> >>> >>> Best regards, >>> Alexander Kouznetsov >>> >>> > > From hang.vo at oracle.com Mon May 14 07:17:57 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 14 May 2012 14:17:57 +0000 Subject: hg: openjfx/2.2/graphics/rt: 2 new changesets Message-ID: <20120514141800.19C8B472E7@hg.openjdk.java.net> Changeset: c6643233a1c9 Author: Martin Sladecek Date: 2012-05-14 16:14 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/c6643233a1c9 RT-16011 Need mechanism for PG nodes to know when they are no longer part of a scene graph ! javafx-ui-common/src/com/sun/javafx/scene/DirtyBits.java ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/test/unit/javafx/scene/NodeTest.java ! test-stub-toolkit/src/com/sun/javafx/pgstub/StubNode.java Changeset: 98a88e259289 Author: Martin Sladecek Date: 2012-05-14 16:14 +0200 URL: http://hg.openjdk.java.net/openjfx/2.2/graphics/rt/rev/98a88e259289 Automated merge with file:///home/martin/work/javafx/jfx-22-sync/rt From Peter.Zhelezniakov at oracle.com Mon May 14 07:49:28 2012 From: Peter.Zhelezniakov at oracle.com (Peter Zhelezniakov) Date: Mon, 14 May 2012 18:49:28 +0400 Subject: API Request: WebView.scale property In-Reply-To: <4FB010C1.6000601@oracle.com> References: <4FAE5143.4080409@oracle.com> <4FB010C1.6000601@oracle.com> Message-ID: <4FB11B78.1050303@oracle.com> Hi Alexander, On 05/13/12 23:51, Alexander Kouznetsov wrote: > Maybe it would be better to name it "Zoom" to avoid name clash with > scaleX/scaleY property? Zoom is a fine name, but we already have fontScale, and I'd like to have the new property named consistently. > Do you want to add information on which mouse gestures/keyboard shortcut > will affect it? None by default. Thanks! -- Peter | x33066 | St Petersburg, Russia | timezone: GMT+04 From mp at jugs.org Mon May 14 07:51:50 2012 From: mp at jugs.org (Dr. Michael Paus) Date: Mon, 14 May 2012 16:51:50 +0200 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FB106E5.90402@oracle.com> References: <4FAA8A38.6090706@oracle.com> <4FACD425.7080408@oracle.com> <4FACDCEB.9000007@oracle.com> <4FB0CE98.9070503@oracle.com> <4FB0F14A.4090907@oracle.com> <4FB0F6AB.80701@jugs.org> <4FB106E5.90402@oracle.com> Message-ID: <4FB11C06.2030800@jugs.org> Not really. If the Affine class is the only one on which you can perform matrix algebra then I would like to be able to work with only this class right from the beginning and not having to convert other classes to Affine just in order to be able to perform some math on them. I just find this all very confusing and inefficient. But maybe others have an opinion on this too. Michael Am 14.05.2012 15:21, schrieb Pavel Safrata: > Hello, > I would provide some common algebra methods as "getInverseTransform()" > or "getContatenation(Transform)" on the Transform class that would > return a new transformation, and methods as "inverse()" or > "concatenate(Transform)" on the Affine class, that would modify it in > place. For the most common use-cases you should be fine with the > specific transformations, for some more complex cases there will be an > easy way to convert any of them to Affine (for instance > Affine.setTransformation(Transform)) and perform the computation > there. Does that sound good? > Thanks, > Pavel > > On 14.5.2012 14:12, Dr. Michael Paus wrote: >> Hi, >> could you please explain how this will fit into the current class >> hierarchy for transforms? >> The general Transform class has all the static methods to create >> specific transforms. If >> the Affine class will have all the matrix algebra, then how is this >> supposed to work? >> All the specific transformation classes Translate, Rotate, ... are >> not derived >> from Affine and thus will not inherit the matrix algebra methods. >> Michael >> >> >> Am 14.05.2012 13:49, schrieb Pavel Safrata: >>> Hi Alexander, >>> >>> On 14.5.2012 11:21, Alexander Kouznetsov wrote: >>>> Hi Pavel, >>>> >>>> On 11.05.2012 13:33, Pavel Safrata wrote: >>>>>> >>>>>> Can't we just make Affine3D public instead? That way we'll >>>>>> provide matrices calculation layer and all we need is to provide >>>>>> methods to convert Affine3D to Affine and vice versa. Just an idea. >>>>> >>>>> This sounds like a bad idea to me. From user's point of view, >>>>> Affine3D and Affine would be duplicates except that Affine's >>>>> members are observable. What I think we should do is to port some >>>>> of the Affine3D functionality to the Affine class (which sounds >>>>> close to RT-17942). >>>> I don't see a really big difference here. Newly added class >>>> regardless of its name would be "a duplicate" of Affine class. >>> >>> I'm not going to add any new class (except of an internal immutable >>> implementation of Transform). The Affine class is already part of >>> public API for a long time, so we should use it and not create any >>> duplicates of it. >>> >>>> Moreover if you're not going to port all of its methods there would >>>> always be a feature requests to port the rest of them. >>> >>> We will consider all the feature requests and implement the >>> reasonable ones. If we end up with something very close to Affine3D, >>> we may then consider switching to the public classes internally. >>> >>>> On the other hand the Affine class wouldn't be just a class that >>>> members are observable but would be also a class that has no matrix >>>> algebra methods and that is part of Transforms API. Affine3D is >>>> clearly a different layer then. >>> >>> The Affine class will have the matrix algebra methods. I don't think >>> we should publish any other layer (our proposal tries to avoid that) >>> - that would lead to more confusion and more work with converting >>> matrices between the layers. Everything should work with the >>> existing classes from the user's point of view. >>> >>> Thanks, >>> Pavel >>> >>>> >>>> Best regards, >>>> Alexander Kouznetsov >>>> >>>> >> >> -- -------------------------------------------------------------------------------------- Dr. Michael Paus, Chairman of the Java User Group Stuttgart e.V. (JUGS). For more information visit www.jugs.de. From hang.vo at oracle.com Mon May 14 08:17:32 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 14 May 2012 15:17:32 +0000 Subject: hg: openjfx/2.2/controls/rt: RT-19845 : Mnemonics' behavior should be platform dependent Message-ID: <20120514151733.94CD1472EC@hg.openjdk.java.net> Changeset: fd3b4690dd58 Author: mickf Date: 2012-05-14 16:07 +0100 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/fd3b4690dd58 RT-19845 : Mnemonics' behavior should be platform dependent ! javafx-ui-common/src/com/sun/javafx/scene/KeyboardShortcutsHandler.java From pavel.safrata at oracle.com Mon May 14 08:51:45 2012 From: pavel.safrata at oracle.com (Pavel Safrata) Date: Mon, 14 May 2012 17:51:45 +0200 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FB11C06.2030800@jugs.org> References: <4FAA8A38.6090706@oracle.com> <4FACD425.7080408@oracle.com> <4FACDCEB.9000007@oracle.com> <4FB0CE98.9070503@oracle.com> <4FB0F14A.4090907@oracle.com> <4FB0F6AB.80701@jugs.org> <4FB106E5.90402@oracle.com> <4FB11C06.2030800@jugs.org> Message-ID: <4FB12A11.7000804@oracle.com> Michael, for the simple transformations (that are sufficient for a lot of applications) the specific transformation classes are considerably more efficient than Affine. You can work with Affine everywhere without using any of the other Transform implementations, except of the localToSceneTransform property value. We will provide methods on Affine to set the matrix to a particular transformation that you will be able to use instead of the factory methods on Transform. I think the reasons why the property cannot be of type Affine and why all the different classes cannot have all the Affine functionality were explained earlier in this thread (pasting below), so please let me know if you have a more specific suggestion that would meet (or disprove) all the constraints. Thanks, Pavel Why the property cannot be of type Affine: The first candidate is javafx.scene.transform.Affine. Unfortunately this class has each element of the matrix as a property, which makes it pretty impractical for that purpose. There are two options there: - We can create a new Affine instance each time the transformation changes (and somebody calls the getter). This way all the elements would have to be immutable, so all their setters would need to throw exceptions (ugly) and whole their observability would be just a useless slowdown. - Or we can keep the single instance and modify its elements. This way user would have to register twelve listeners to be notified of transformation changes. None of those options seems good enough. Why all the transformations cannot be subtypes of Affine: These transformation classes provide a simple and efficient way to set basic transformations to nodes and it would be expensive to fill them with all the data and functionality that Affine has and will have after resolving RT-17942. Moreover, we would have to restrict many of the methods that will be there for altering the Affine class (to avoid things like Rotate becoming something else then rotation), which is not a nice approach. On 14.5.2012 16:51, Dr. Michael Paus wrote: > Not really. > If the Affine class is the only one on which you can perform matrix > algebra then I would > like to be able to work with only this class right from the beginning > and not having to > convert other classes to Affine just in order to be able to perform > some math on them. > I just find this all very confusing and inefficient. But maybe others > have an opinion on > this too. > Michael > > Am 14.05.2012 15:21, schrieb Pavel Safrata: >> Hello, >> I would provide some common algebra methods as >> "getInverseTransform()" or "getContatenation(Transform)" on the >> Transform class that would return a new transformation, and methods >> as "inverse()" or "concatenate(Transform)" on the Affine class, that >> would modify it in place. For the most common use-cases you should be >> fine with the specific transformations, for some more complex cases >> there will be an easy way to convert any of them to Affine (for >> instance Affine.setTransformation(Transform)) and perform the >> computation there. Does that sound good? >> Thanks, >> Pavel >> >> On 14.5.2012 14:12, Dr. Michael Paus wrote: >>> Hi, >>> could you please explain how this will fit into the current class >>> hierarchy for transforms? >>> The general Transform class has all the static methods to create >>> specific transforms. If >>> the Affine class will have all the matrix algebra, then how is this >>> supposed to work? >>> All the specific transformation classes Translate, Rotate, ... are >>> not derived >>> from Affine and thus will not inherit the matrix algebra methods. >>> Michael >>> >>> >>> Am 14.05.2012 13:49, schrieb Pavel Safrata: >>>> Hi Alexander, >>>> >>>> On 14.5.2012 11:21, Alexander Kouznetsov wrote: >>>>> Hi Pavel, >>>>> >>>>> On 11.05.2012 13:33, Pavel Safrata wrote: >>>>>>> >>>>>>> Can't we just make Affine3D public instead? That way we'll >>>>>>> provide matrices calculation layer and all we need is to provide >>>>>>> methods to convert Affine3D to Affine and vice versa. Just an idea. >>>>>> >>>>>> This sounds like a bad idea to me. From user's point of view, >>>>>> Affine3D and Affine would be duplicates except that Affine's >>>>>> members are observable. What I think we should do is to port some >>>>>> of the Affine3D functionality to the Affine class (which sounds >>>>>> close to RT-17942). >>>>> I don't see a really big difference here. Newly added class >>>>> regardless of its name would be "a duplicate" of Affine class. >>>> >>>> I'm not going to add any new class (except of an internal immutable >>>> implementation of Transform). The Affine class is already part of >>>> public API for a long time, so we should use it and not create any >>>> duplicates of it. >>>> >>>>> Moreover if you're not going to port all of its methods there >>>>> would always be a feature requests to port the rest of them. >>>> >>>> We will consider all the feature requests and implement the >>>> reasonable ones. If we end up with something very close to >>>> Affine3D, we may then consider switching to the public classes >>>> internally. >>>> >>>>> On the other hand the Affine class wouldn't be just a class that >>>>> members are observable but would be also a class that has no >>>>> matrix algebra methods and that is part of Transforms API. >>>>> Affine3D is clearly a different layer then. >>>> >>>> The Affine class will have the matrix algebra methods. I don't >>>> think we should publish any other layer (our proposal tries to >>>> avoid that) - that would lead to more confusion and more work with >>>> converting matrices between the layers. Everything should work with >>>> the existing classes from the user's point of view. >>>> >>>> Thanks, >>>> Pavel >>>> >>>>> >>>>> Best regards, >>>>> Alexander Kouznetsov >>>>> >>>>> >>> >>> > > From mp at jugs.org Mon May 14 08:59:44 2012 From: mp at jugs.org (Dr. Michael Paus) Date: Mon, 14 May 2012 17:59:44 +0200 Subject: LocalToScene Transformation (related to Affine Transforms) In-Reply-To: <4FB12A11.7000804@oracle.com> References: <4FAA8A38.6090706@oracle.com> <4FACD425.7080408@oracle.com> <4FACDCEB.9000007@oracle.com> <4FB0CE98.9070503@oracle.com> <4FB0F14A.4090907@oracle.com> <4FB0F6AB.80701@jugs.org> <4FB106E5.90402@oracle.com> <4FB11C06.2030800@jugs.org> <4FB12A11.7000804@oracle.com> Message-ID: <4FB12BF0.8020302@jugs.org> Am 14.05.2012 17:51, schrieb Pavel Safrata: > Michael, > for the simple transformations (that are sufficient for a lot of > applications) the specific transformation classes are considerably > more efficient than Affine. You can work with Affine everywhere > without using any of the other Transform implementations, except of > the localToSceneTransform property value. We will provide methods on > Affine to set the matrix to a particular transformation that you will > be able to use instead of the factory methods on Transform. If these methods are provided, I think I can live with that. > I think the reasons why the property cannot be of type Affine and why > all the different classes cannot have all the Affine functionality > were explained earlier in this thread (pasting below), so please let > me know if you have a more specific suggestion that would meet (or > disprove) all the constraints. > Thanks, > Pavel > > Why the property cannot be of type Affine: > The first candidate is javafx.scene.transform.Affine. Unfortunately > this class has each element of the matrix as a property, which makes > it pretty impractical for that purpose. There are two options there: > - We can create a new Affine instance each time the transformation > changes (and somebody calls the getter). This way all the elements > would have to be immutable, so all their setters would need to throw > exceptions (ugly) and whole their observability would be just a > useless slowdown. > - Or we can keep the single instance and modify its elements. This way > user would have to register twelve listeners to be notified of > transformation changes. > None of those options seems good enough. > > Why all the transformations cannot be subtypes of Affine: > These transformation classes provide a simple and efficient way to set > basic transformations to nodes and it would be expensive to fill them > with all the data and functionality that Affine has and will have > after resolving RT-17942. Moreover, we would have to restrict many of > the methods that will be there for altering the Affine class (to avoid > things like Rotate becoming something else then rotation), which is > not a nice approach. > > On 14.5.2012 16:51, Dr. Michael Paus wrote: >> Not really. >> If the Affine class is the only one on which you can perform matrix >> algebra then I would >> like to be able to work with only this class right from the beginning >> and not having to >> convert other classes to Affine just in order to be able to perform >> some math on them. >> I just find this all very confusing and inefficient. But maybe others >> have an opinion on >> this too. >> Michael >> >> Am 14.05.2012 15:21, schrieb Pavel Safrata: >>> Hello, >>> I would provide some common algebra methods as >>> "getInverseTransform()" or "getContatenation(Transform)" on the >>> Transform class that would return a new transformation, and methods >>> as "inverse()" or "concatenate(Transform)" on the Affine class, that >>> would modify it in place. For the most common use-cases you should >>> be fine with the specific transformations, for some more complex >>> cases there will be an easy way to convert any of them to Affine >>> (for instance Affine.setTransformation(Transform)) and perform the >>> computation there. Does that sound good? >>> Thanks, >>> Pavel >>> >>> On 14.5.2012 14:12, Dr. Michael Paus wrote: >>>> Hi, >>>> could you please explain how this will fit into the current class >>>> hierarchy for transforms? >>>> The general Transform class has all the static methods to create >>>> specific transforms. If >>>> the Affine class will have all the matrix algebra, then how is this >>>> supposed to work? >>>> All the specific transformation classes Translate, Rotate, ... are >>>> not derived >>>> from Affine and thus will not inherit the matrix algebra methods. >>>> Michael >>>> >>>> >>>> Am 14.05.2012 13:49, schrieb Pavel Safrata: >>>>> Hi Alexander, >>>>> >>>>> On 14.5.2012 11:21, Alexander Kouznetsov wrote: >>>>>> Hi Pavel, >>>>>> >>>>>> On 11.05.2012 13:33, Pavel Safrata wrote: >>>>>>>> >>>>>>>> Can't we just make Affine3D public instead? That way we'll >>>>>>>> provide matrices calculation layer and all we need is to >>>>>>>> provide methods to convert Affine3D to Affine and vice versa. >>>>>>>> Just an idea. >>>>>>> >>>>>>> This sounds like a bad idea to me. From user's point of view, >>>>>>> Affine3D and Affine would be duplicates except that Affine's >>>>>>> members are observable. What I think we should do is to port >>>>>>> some of the Affine3D functionality to the Affine class (which >>>>>>> sounds close to RT-17942). >>>>>> I don't see a really big difference here. Newly added class >>>>>> regardless of its name would be "a duplicate" of Affine class. >>>>> >>>>> I'm not going to add any new class (except of an internal >>>>> immutable implementation of Transform). The Affine class is >>>>> already part of public API for a long time, so we should use it >>>>> and not create any duplicates of it. >>>>> >>>>>> Moreover if you're not going to port all of its methods there >>>>>> would always be a feature requests to port the rest of them. >>>>> >>>>> We will consider all the feature requests and implement the >>>>> reasonable ones. If we end up with something very close to >>>>> Affine3D, we may then consider switching to the public classes >>>>> internally. >>>>> >>>>>> On the other hand the Affine class wouldn't be just a class that >>>>>> members are observable but would be also a class that has no >>>>>> matrix algebra methods and that is part of Transforms API. >>>>>> Affine3D is clearly a different layer then. >>>>> >>>>> The Affine class will have the matrix algebra methods. I don't >>>>> think we should publish any other layer (our proposal tries to >>>>> avoid that) - that would lead to more confusion and more work with >>>>> converting matrices between the layers. Everything should work >>>>> with the existing classes from the user's point of view. >>>>> >>>>> Thanks, >>>>> Pavel >>>>> >>>>>> >>>>>> Best regards, >>>>>> Alexander Kouznetsov >>>>>> >>>>>> >>>> >>>> >> >> -- -------------------------------------------------------------------------------------- Dr. Michael Paus, Chairman of the Java User Group Stuttgart e.V. (JUGS). For more information visit www.jugs.de. From hang.vo at oracle.com Mon May 14 10:17:37 2012 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 14 May 2012 17:17:37 +0000 Subject: hg: openjfx/2.2/controls/rt: Move Pagination control to javafx.scene.control Message-ID: <20120514171738.3AC9D472EF@hg.openjdk.java.net> Changeset: ed31fcdd4818 Author: Kinsley Wong Date: 2012-05-14 10:03 -0700 URL: http://hg.openjdk.java.net/openjfx/2.2/controls/rt/rev/ed31fcdd4818 Move Pagination control to javafx.scene.control - javafx-ui-controls/src/com/sun/javafx/scene/control/Pagination.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/behavior/PaginationBehavior.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/PaginationSkin.java + javafx-ui-controls/src/javafx/scene/control/Pagination.java ! javafx-ui-controls/test/javafx/scene/control/ControlTestUtils.java ! javafx-ui-controls/test/javafx/scene/control/PaginationTest.java From pedro.duquevieira at gmail.com Mon May 14 10:46:00 2012 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Mon, 14 May 2012 18:46:00 +0100 Subject: Should we be so strict on maintaining backwards compatibility? Message-ID: Hi, I wanted to raise a question: "should we be so strict on maintaining backwards compatibility?". I'm seeing on this mailing list that maintaining backwards compatibility is of utmost importance for Oracle. The problem with maintaining backwards compatibility is that errors/bad decisions done on the past, will remain in the future. And the more releases are put out the bigger the problem with past mistakes will be. Can't we compensate for introducing backwards incompatibility by releasing detailed guides on migrating? Or even introducing automatic scripts for migration (maybe even on netbeans releases)? I prefer the pain of migrating code to the pain of having past mistakes present forever. I will be much happier if I know that all the design decisions present on JavaFX are the best possible to date. Forgive me if this is a dumb question, I just wanted to raise the issue. I'm really not fully aware of the costs vs gains on this. Thanks, best regards, -- Pedro Duque Vieira From greg.x.brown at oracle.com Mon May 14 11:14:30 2012 From: greg.x.brown at oracle.com (Greg Brown) Date: Mon, 14 May 2012 14:14:30 -0400 Subject: [Review request] Adding pre-built cells and cell factories to JavaFX In-Reply-To: References: <4FABCE5A.4090105@oracle.com> Message-ID: <55CE96A0-1356-4D68-BA68-FD2AC2AB6283@oracle.com> > Also, since it looks like some of the APIs take property objects, we'll probably need to modify FXMLLoader. FXML doesn't currently provide a way to get a reference to a property model - we'll need to add a new keyword and/or a new resolution operator to support this Actually, this probably won't be necessary. Instead, we can simply allow BeanAdapter to refer to a property model by key. For example: