From hang.vo at oracle.com Sun Dec 1 02:48:36 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sun, 01 Dec 2013 10:48:36 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34477: [Lens] Command-line option to track input device raw events Message-ID: <20131201104920.5CEC862956@hg.openjdk.java.net> Changeset: e5cbd989d3ea Author: Assaf Yavnai Date: 2013-12-01 12:14 +0200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/e5cbd989d3ea RT-34477: [Lens] Command-line option to track input device raw events Summary: Adding lens.input.trace property to display device discovery and raw events Reviewed-by: dblaukop ! modules/graphics/src/main/java/com/sun/glass/ui/lens/LensTouchInputSupport.java ! modules/graphics/src/main/native-glass/lens/input/udev/udevInput.c From hang.vo at oracle.com Sun Dec 1 10:33:02 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sun, 01 Dec 2013 18:33:02 +0000 Subject: hg: openjfx/8/graphics/rt: RT-31360: Gradle build system doesn't do partial build if native code is changed Message-ID: <20131201183321.4DCA26295C@hg.openjdk.java.net> Changeset: 2c0a00f8de4a Author: Felipe Heidrich Date: 2013-12-01 10:25 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/2c0a00f8de4a RT-31360: Gradle build system doesn't do partial build if native code is changed ! build.gradle ! buildSrc/src/main/groovy/com/sun/javafx/gradle/NativeCompileTask.groovy From hang.vo at oracle.com Sun Dec 1 14:47:55 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sun, 01 Dec 2013 22:47:55 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34083: fixing rework building apps and installed samples for ARM. Disabling non-hosted APPS Message-ID: <20131201224814.5088D6295F@hg.openjdk.java.net> Changeset: 207d6d1ca9a3 Author: ddhill Date: 2013-12-01 17:01 -0500 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/207d6d1ca9a3 RT-34083: fixing rework building apps and installed samples for ARM. Disabling non-hosted APPS ! apps/build.xml ! build.gradle From hang.vo at oracle.com Sun Dec 1 23:47:54 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 02 Dec 2013 07:47:54 +0000 Subject: hg: openjfx/8/graphics/rt: RT-27943: Update JavaFX DLL Files to include appropriate meta data (Media part) Message-ID: <20131202074809.72A736296F@hg.openjdk.java.net> Changeset: 75fc25092d2e Author: Kirill Kirichenko Date: 2013-12-02 11:33 +0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/75fc25092d2e RT-27943: Update JavaFX DLL Files to include appropriate meta data (Media part) ! build.gradle ! buildSrc/win.gradle ! modules/media/src/main/native/gstreamer/projects/win/fxplugins/Makefile ! modules/media/src/main/native/gstreamer/projects/win/glib-lite/Makefile ! modules/media/src/main/native/gstreamer/projects/win/gstreamer-lite/Makefile ! modules/media/src/main/native/jfxmedia/projects/win/Makefile From martin.sladecek at oracle.com Mon Dec 2 00:48:05 2013 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Mon, 02 Dec 2013 09:48:05 +0100 Subject: Review Request: RT-34609: [FXML] b118 FXMLLoader rejects some FXML texts that was accepted before Message-ID: <529C4945.2050508@oracle.com> Hi David, Eva, please review: JIRA: https://javafx-jira.kenai.com/browse/RT-34609 Webrev: http://cr.openjdk.java.net/~msladecek/rt-34609/webrev.00/ Thanks, -Martin From sebastian.rheinnecker at yworks.com Mon Dec 2 00:55:41 2013 From: sebastian.rheinnecker at yworks.com (Sebastian Rheinnecker) Date: Mon, 02 Dec 2013 09:55:41 +0100 Subject: JavaFX on Android build (instructions) In-Reply-To: <5294A1D2.2080902@yworks.com> References: <5294A1D2.2080902@yworks.com> Message-ID: <529C4B0D.3020004@yworks.com> Hi again, I just wanted to let you know that I solved the issue with the max method references in the dex files with using multiple dex files. To accomplish this I patched the classes FXActivity and DalvikLauncher to dynamically load the second dex file and its classes. I also patched the build process so that any application jar can be used for this. If anyone runs into the same issue, just contact me. Kind regards, Sebastian Rheinnecker Am 26.11.2013 14:27, schrieb Sebastian Rheinnecker: > Hi, > > I used your instructions with some tweaks to build a JavaFX > application for android on Windows. However, it turns out that > Android's dex format is putting a spoke into our wheel with the 65k > method reference limit. The JavaFX runtime itself already contains 51k > method references and because of that I was not yet able to bring our > full application showcase to android. > So if some android expert could contribute to the project by showing > how to use multiple dex files, one containing the javafx runtime and > one for the application, that would be great. Any help on the mailing > list is appreciated as well. > > Kind regards, > Sebastian Rheinnecker > > Am 16.11.2013 19:53, schrieb Johan Vos: >> Hi, >> >> Since I (and others) think it is very important that we can have >> JavaFX applications running on Android (and IOS, but in this mail I >> limit myself to Android), I created a bitbucket project containing >> code and build instructions to run JavaFX applications on Android. >> >> I didn't do much myself. Rather, this project is about providing easy >> and consistent build instructions. I combined information from this >> mailinglist with information I could find online, and with help from >> the JavaFX team. >> >> The project is here: https://bitbucket.org/johanvos/jfx78 >> >> After I gathered the information, it didn't cost me much time to get >> HelloWorld running on my Samsung S3 mini. I never wrote an Android >> project before, and I never used the Android SDK or NDK before I >> started with this thing almost a week ago. Hence, it is not that hard >> to create a JavaFX application on Android. >> >> This project is far from finished. There are a number of things that >> have to be done: >> * Improve build instructions >> * Simplify build >> * Fix bugs (e.g. touch-events are not processed yet) >> * Manage the synchronization with the main JavaFX repo >> * create plugins for IDE's or maven to automatically build the >> Android packages >> >> I want to open this project at this early stage, though, since I think >> it is important to have more community input. Also, I want to give a >> shout to the world that JavaFX on Android is not a dream. >> >> I hope many of you try out the instructions, improve them, correct >> them, and test your applications on Android. >> >> Thanks a lot to all the people on this mailinglist for telling how >> they were dealing with JavaFX on Android. Again, I didn't write much >> code, but rather tried to combine the information and make it useful >> for everybody. >> >> I know there is an intense debate about the role of Oracle on the >> Android (and IOS) ports. Let me close with a similar situation. About >> 17 years ago (sigh, time flies), I was involved with the port of Java >> to Linux, as part of the Blackdown team. Initially, we didn't get much >> help from Sun Microsystems (it was even not easy to get the latest >> code). But once we showed that we could run the thing on Linux, and >> that many developers were interested in it, Sun started to add >> resources on this as well. Eventually, we became obsolete. I hope to >> reach the obsolete stage on this project as well. >> >> Again, the project can be found >> here:https://bitbucket.org/johanvos/jfx78 >> >> - Johan > > -- Sebastian Rheinnecker phone: +49 7071 9709050 fax: +49 7071 9709051 yWorks GmbH Vor dem Kreuzberg 28 72070 Tuebingen Germany http://www.yworks.com Managing Directors: Sebastian M?ller, Michael Pfahler Commercial Registry: Stuttgart, Germany, HRB 382340 From tomas.brandalik at oracle.com Mon Dec 2 01:27:56 2013 From: tomas.brandalik at oracle.com (tomas.brandalik) Date: Mon, 02 Dec 2013 10:27:56 +0100 Subject: JavaFX on Android build (instructions) In-Reply-To: <529C4B0D.3020004@yworks.com> References: <5294A1D2.2080902@yworks.com> <529C4B0D.3020004@yworks.com> Message-ID: <529C529C.6020805@oracle.com> Hi Sebastian, please would you send the patch to me? thank you in advance -Tomas On 12/02/2013 09:55 AM, Sebastian Rheinnecker wrote: > Hi again, > > I just wanted to let you know that I solved the issue with the max > method references in the dex files with using multiple dex files. To > accomplish this I patched the classes FXActivity and DalvikLauncher to > dynamically load the second dex file and its classes. I also patched > the build process so that any application jar can be used for this. If > anyone runs into the same issue, just contact me. > > Kind regards, > Sebastian Rheinnecker > > Am 26.11.2013 14:27, schrieb Sebastian Rheinnecker: >> Hi, >> >> I used your instructions with some tweaks to build a JavaFX >> application for android on Windows. However, it turns out that >> Android's dex format is putting a spoke into our wheel with the 65k >> method reference limit. The JavaFX runtime itself already contains >> 51k method references and because of that I was not yet able to bring >> our full application showcase to android. >> So if some android expert could contribute to the project by showing >> how to use multiple dex files, one containing the javafx runtime and >> one for the application, that would be great. Any help on the mailing >> list is appreciated as well. >> >> Kind regards, >> Sebastian Rheinnecker >> >> Am 16.11.2013 19:53, schrieb Johan Vos: >>> Hi, >>> >>> Since I (and others) think it is very important that we can have >>> JavaFX applications running on Android (and IOS, but in this mail I >>> limit myself to Android), I created a bitbucket project containing >>> code and build instructions to run JavaFX applications on Android. >>> >>> I didn't do much myself. Rather, this project is about providing easy >>> and consistent build instructions. I combined information from this >>> mailinglist with information I could find online, and with help from >>> the JavaFX team. >>> >>> The project is here: https://bitbucket.org/johanvos/jfx78 >>> >>> After I gathered the information, it didn't cost me much time to get >>> HelloWorld running on my Samsung S3 mini. I never wrote an Android >>> project before, and I never used the Android SDK or NDK before I >>> started with this thing almost a week ago. Hence, it is not that hard >>> to create a JavaFX application on Android. >>> >>> This project is far from finished. There are a number of things that >>> have to be done: >>> * Improve build instructions >>> * Simplify build >>> * Fix bugs (e.g. touch-events are not processed yet) >>> * Manage the synchronization with the main JavaFX repo >>> * create plugins for IDE's or maven to automatically build the >>> Android packages >>> >>> I want to open this project at this early stage, though, since I think >>> it is important to have more community input. Also, I want to give a >>> shout to the world that JavaFX on Android is not a dream. >>> >>> I hope many of you try out the instructions, improve them, correct >>> them, and test your applications on Android. >>> >>> Thanks a lot to all the people on this mailinglist for telling how >>> they were dealing with JavaFX on Android. Again, I didn't write much >>> code, but rather tried to combine the information and make it useful >>> for everybody. >>> >>> I know there is an intense debate about the role of Oracle on the >>> Android (and IOS) ports. Let me close with a similar situation. About >>> 17 years ago (sigh, time flies), I was involved with the port of Java >>> to Linux, as part of the Blackdown team. Initially, we didn't get much >>> help from Sun Microsystems (it was even not easy to get the latest >>> code). But once we showed that we could run the thing on Linux, and >>> that many developers were interested in it, Sun started to add >>> resources on this as well. Eventually, we became obsolete. I hope to >>> reach the obsolete stage on this project as well. >>> >>> Again, the project can be found >>> here:https://bitbucket.org/johanvos/jfx78 >>> >>> - Johan >> >> > > From sebastian.rheinnecker at yworks.com Mon Dec 2 01:55:43 2013 From: sebastian.rheinnecker at yworks.com (Sebastian Rheinnecker) Date: Mon, 02 Dec 2013 10:55:43 +0100 Subject: JavaFX on Android build (instructions) In-Reply-To: <529C529C.6020805@oracle.com> References: <5294A1D2.2080902@yworks.com> <529C4B0D.3020004@yworks.com> <529C529C.6020805@oracle.com> Message-ID: <529C591F.1010903@yworks.com> Hello Tomas, I attached the patch for the FXActivity and DalvikLauncher classes. To make this work, you need to patch the build process for the created projects as well. I couldn't find where this is done in the repo, so I did this manually every time :-), this is also the reason why it isn't included in the patch file. This is not optimized so there is still a hardcoded reference to the application jar in here, perhaps you can generalize this: custom_rules.xml: target init-env: add target install-application: change to build-extras.xml: add right after the first I hope I didn't forget anything. Kind regards, Sebastian Am 02.12.2013 10:27, schrieb tomas.brandalik: > Hi Sebastian, > please would you send the patch to me? > > thank you in advance > -Tomas > > On 12/02/2013 09:55 AM, Sebastian Rheinnecker wrote: >> Hi again, >> >> I just wanted to let you know that I solved the issue with the max >> method references in the dex files with using multiple dex files. To >> accomplish this I patched the classes FXActivity and DalvikLauncher >> to dynamically load the second dex file and its classes. I also >> patched the build process so that any application jar can be used for >> this. If anyone runs into the same issue, just contact me. >> >> Kind regards, >> Sebastian Rheinnecker >> >> Am 26.11.2013 14:27, schrieb Sebastian Rheinnecker: >>> Hi, >>> >>> I used your instructions with some tweaks to build a JavaFX >>> application for android on Windows. However, it turns out that >>> Android's dex format is putting a spoke into our wheel with the 65k >>> method reference limit. The JavaFX runtime itself already contains >>> 51k method references and because of that I was not yet able to >>> bring our full application showcase to android. >>> So if some android expert could contribute to the project by showing >>> how to use multiple dex files, one containing the javafx runtime and >>> one for the application, that would be great. Any help on the >>> mailing list is appreciated as well. >>> >>> Kind regards, >>> Sebastian Rheinnecker >>> >>> Am 16.11.2013 19:53, schrieb Johan Vos: >>>> Hi, >>>> >>>> Since I (and others) think it is very important that we can have >>>> JavaFX applications running on Android (and IOS, but in this mail I >>>> limit myself to Android), I created a bitbucket project containing >>>> code and build instructions to run JavaFX applications on Android. >>>> >>>> I didn't do much myself. Rather, this project is about providing easy >>>> and consistent build instructions. I combined information from this >>>> mailinglist with information I could find online, and with help from >>>> the JavaFX team. >>>> >>>> The project is here: https://bitbucket.org/johanvos/jfx78 >>>> >>>> After I gathered the information, it didn't cost me much time to get >>>> HelloWorld running on my Samsung S3 mini. I never wrote an Android >>>> project before, and I never used the Android SDK or NDK before I >>>> started with this thing almost a week ago. Hence, it is not that hard >>>> to create a JavaFX application on Android. >>>> >>>> This project is far from finished. There are a number of things that >>>> have to be done: >>>> * Improve build instructions >>>> * Simplify build >>>> * Fix bugs (e.g. touch-events are not processed yet) >>>> * Manage the synchronization with the main JavaFX repo >>>> * create plugins for IDE's or maven to automatically build the >>>> Android packages >>>> >>>> I want to open this project at this early stage, though, since I think >>>> it is important to have more community input. Also, I want to give a >>>> shout to the world that JavaFX on Android is not a dream. >>>> >>>> I hope many of you try out the instructions, improve them, correct >>>> them, and test your applications on Android. >>>> >>>> Thanks a lot to all the people on this mailinglist for telling how >>>> they were dealing with JavaFX on Android. Again, I didn't write much >>>> code, but rather tried to combine the information and make it useful >>>> for everybody. >>>> >>>> I know there is an intense debate about the role of Oracle on the >>>> Android (and IOS) ports. Let me close with a similar situation. About >>>> 17 years ago (sigh, time flies), I was involved with the port of Java >>>> to Linux, as part of the Blackdown team. Initially, we didn't get much >>>> help from Sun Microsystems (it was even not easy to get the latest >>>> code). But once we showed that we could run the thing on Linux, and >>>> that many developers were interested in it, Sun started to add >>>> resources on this as well. Eventually, we became obsolete. I hope to >>>> reach the obsolete stage on this project as well. >>>> >>>> Again, the project can be found >>>> here:https://bitbucket.org/johanvos/jfx78 >>>> >>>> - Johan >>> >>> >> >> > -- Sebastian Rheinnecker phone: +49 7071 9709050 fax: +49 7071 9709051 yWorks GmbH Vor dem Kreuzberg 28 72070 Tuebingen Germany http://www.yworks.com Managing Directors: Sebastian M?ller, Michael Pfahler Commercial Registry: Stuttgart, Germany, HRB 382340 -------------- next part -------------- # HG changeset patch # User Sebastian Rheinnecker # Date 1385977278 -3600 # Node ID f4fc935ac56fe0226cc169a6d8651f69ec346955 # Parent ace86ff6a0233960d6226e2ae4762783e579403f use separate dex files for library and application diff -r ace86ff6a023 -r f4fc935ac56f modules/graphics/src/android/java/com/oracle/dalvik/DalvikLauncher.java --- a/modules/graphics/src/android/java/com/oracle/dalvik/DalvikLauncher.java Wed Nov 20 19:23:14 2013 +0100 +++ b/modules/graphics/src/android/java/com/oracle/dalvik/DalvikLauncher.java Mon Dec 02 10:41:18 2013 +0100 @@ -26,13 +26,18 @@ package com.oracle.dalvik; import android.app.Activity; +import android.content.Context; import android.content.pm.PackageManager; import android.os.Bundle; import android.util.Log; +import dalvik.system.DexClassLoader; + import java.io.IOException; import java.lang.reflect.Method; import java.util.Map.Entry; import java.util.Properties; +import java.io.File; + public class DalvikLauncher implements Launcher { @@ -127,10 +132,22 @@ private Class resolveApplicationClass() throws PackageManager.NameNotFoundException, ClassNotFoundException { - Class clazz = null; + // Internal storage where the DexClassLoader writes the optimized dex file to. + final File optimizedDexOutputPath = activity.getDir("outdex", Context.MODE_PRIVATE); + + final File dexInternalStoragePath = new File(activity.getDir("dex", Context.MODE_PRIVATE), + FXActivity.APPLICATION_DEX_NAME); + + // Initialize the class loader with the secondary dex file. + DexClassLoader cl = new DexClassLoader(dexInternalStoragePath.getAbsolutePath(), + optimizedDexOutputPath.getAbsolutePath(), + null, + activity.getClassLoader()); + + Class clazz = null; String applicationClassName = metadata.getString(META_DATA_MAIN_CLASS); if (applicationClassName != null && applicationClassName.length() > 0) { - clazz = Class.forName(applicationClassName); + clazz = cl.loadClass(applicationClassName); } return clazz; } diff -r ace86ff6a023 -r f4fc935ac56f modules/graphics/src/android/java/com/oracle/dalvik/FXActivity.java --- a/modules/graphics/src/android/java/com/oracle/dalvik/FXActivity.java Wed Nov 20 19:23:14 2013 +0100 +++ b/modules/graphics/src/android/java/com/oracle/dalvik/FXActivity.java Mon Dec 02 10:41:18 2013 +0100 @@ -44,6 +44,14 @@ import android.view.inputmethod.InputMethodManager; import android.widget.FrameLayout; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; + public class FXActivity extends Activity implements SurfaceHolder.Callback, SurfaceHolder.Callback2 { @@ -52,6 +60,8 @@ private static final String GLASS_LENS_ANDROID_LIB = "glass_lens_android"; private static final String META_DATA_LAUNCHER_CLASS = "launcher.class"; private static final String DEFAULT_LAUNCHER_CLASS = "com.oracle.dalvik.JavaSELauncher"; + public static final String APPLICATION_DEX_NAME = "Application_dex.jar"; + static final int BUF_SIZE = 8 * 1024; private static FXActivity instance; private static Launcher launcher; @@ -80,7 +90,32 @@ setContentView(mViewGroup); instance = this; Log.v(TAG, "Loading glass native library."); - System.loadLibrary(GLASS_LENS_ANDROID_LIB); + System.loadLibrary(GLASS_LENS_ANDROID_LIB); + + // Before the secondary dex file can be processed by the DexClassLoader, + // it has to be first copied from asset resource to a storage location. + File dexInternalStoragePath = new File(getDir("dex", Context.MODE_PRIVATE), + APPLICATION_DEX_NAME); + BufferedInputStream bis; + OutputStream dexWriter; + + try { + bis = new BufferedInputStream(getAssets().open(APPLICATION_DEX_NAME)); + dexWriter = new BufferedOutputStream( + new FileOutputStream(dexInternalStoragePath)); + byte[] buf = new byte[BUF_SIZE]; + int len; + while((len = bis.read(buf, 0, BUF_SIZE)) > 0) { + dexWriter.write(buf, 0, len); + } + dexWriter.close(); + bis.close(); + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } } private Bundle getMetadata() { @@ -105,7 +140,7 @@ launcher.launchApp(this, metaData); } catch (Exception ex) { - throw new RuntimeException("Did not created correct launcher.", ex); + throw new RuntimeException("Did not create correct launcher.", ex); } } From hang.vo at oracle.com Mon Dec 2 04:33:06 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 02 Dec 2013 12:33:06 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34554: [Mac, Glass] Process does not finish closing main window Message-ID: <20131202123408.2FF8762976@hg.openjdk.java.net> Changeset: 2e9dea67bf59 Author: Anthony Petrov Date: 2013-12-02 16:25 +0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/2e9dea67bf59 RT-34554: [Mac,Glass] Process does not finish closing main window Summary: Post a dummy event to wake up the event loop and detect that it needs to stop Reviewed-by: pchelko, snorthov ! modules/graphics/src/main/native-glass/mac/GlassApplication.m From vadim.pakhnushev at oracle.com Mon Dec 2 04:41:27 2013 From: vadim.pakhnushev at oracle.com (Vadim Pakhnushev) Date: Mon, 02 Dec 2013 16:41:27 +0400 Subject: RFR: RT-32880: D3D: Near clip appears to clip further (away from viewer) than the specified near value Message-ID: <529C7FF7.1090202@oracle.com> Hi Chien, Kevin, Please review a fix for this bug: https://javafx-jira.kenai.com/browse/RT-32880 http://cr.openjdk.java.net/~vadim/RT-32880/webrev.00/ Thanks, Vadim From sybille.lein at zeiss.com Mon Dec 2 04:45:57 2013 From: sybille.lein at zeiss.com (Sybille Lein) Date: Mon, 2 Dec 2013 13:45:57 +0100 Subject: Does the rendering system in JavaFX process font hints? In-Reply-To: <5298A38D.9070203@oracle.com> References: <5298A38D.9070203@oracle.com> Message-ID: Hi Steve, Thank you for your quick reply. Could you please give me some more information on the font engine in JDK 7 as our software will be released with JDK 7 now. Is there any possiblity to configure the font engine in JDK 7 to process font hints on Mac OS X? Regards, Sybille From: Stephen F Northover To: Sybille Lein , Date: 29.11.2013 15:24 Subject: Re: Does the rendering system in JavaFX process font hints? Hi Sybille, Please try your code on jdk8. The font engine in FX has been changed to use the native rasterizer on Windows and Mac. Steve On 2013-11-29 8:14 AM, Sybille Lein wrote: > I have some questions about the font rendering system that is used in the > JavaFX system. > > We are developing a JavaFX application with a customer owned font. > This font is a TrueType font and includes font hints. > There are usually two options for the font engine in operating systems: > processing hints, or running an auto-hinter. > > It appears to me that the JavaFX font rendering system ignores the hints > in the fonts, and runs the auto-hinter instead.It doesn?t invoke the > byte-code interpreter. > > My question is about how the font engine works with font hints on Mac OS X > and Windows? > > And is it possible to configure the font engine in JavaFX to process > hints? > > I tested it under Mac OS X and java version 1.7.0_17. > > Thanks > Sybille > > > > > ---------------------------------------- > This message is intended for a particular addressee only and may contain business or company secrets. If you have received this email in error, please contact the sender and delete the message immediately. Any use of this email, including saving, publishing, copying, replication or forwarding of the message or the contents is not permitted. ---------------------------------------- This message is intended for a particular addressee only and may contain business or company secrets. If you have received this email in error, please contact the sender and delete the message immediately. Any use of this email, including saving, publishing, copying, replication or forwarding of the message or the contents is not permitted. From sebastian.rheinnecker at yworks.com Mon Dec 2 06:48:04 2013 From: sebastian.rheinnecker at yworks.com (Sebastian Rheinnecker) Date: Mon, 02 Dec 2013 15:48:04 +0100 Subject: JavaFX on IOS and iPack Message-ID: <529C9DA4.8090200@yworks.com> Hello again, the JavaFX prague team blogged about a packaging/signing tool for JavaFX applications and reported that they brought a JavaFX app to ios all done on Windows 7 ( https://blogs.oracle.com/jfxprg/entry/ipack_the_ios_application_packager ). However, they did not tell us how they compiled the JavaFX app in the first place. Can anyone provide a step-by-step tutorial on how to successfully port JavaFX app to ios on windows using the iPacker? Kind regards, Sebastian Rheinnecker -- Sebastian Rheinnecker phone: +49 7071 9709050 fax: +49 7071 9709051 yWorks GmbH Vor dem Kreuzberg 28 72070 Tuebingen Germany http://www.yworks.com Managing Directors: Sebastian M?ller, Michael Pfahler Commercial Registry: Stuttgart, Germany, HRB 382340 From hang.vo at oracle.com Mon Dec 2 07:33:01 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 02 Dec 2013 15:33:01 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34609 [FXML] b118 FXMLLoader rejects some FXML texts that was accepted before Message-ID: <20131202153338.1502562981@hg.openjdk.java.net> Changeset: 6554a4c7fa61 Author: Martin Sladecek Date: 2013-12-02 16:27 +0100 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/6554a4c7fa61 RT-34609 [FXML] b118 FXMLLoader rejects some FXML texts that was accepted before Reviewed by: ekrejcir, dgrieve ! modules/fxml/src/main/java/javafx/fxml/FXMLLoader.java From hang.vo at oracle.com Mon Dec 2 07:48:03 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 02 Dec 2013 15:48:03 +0000 Subject: hg: openjfx/8/graphics/rt: 2 new changesets Message-ID: <20131202154841.79BE262983@hg.openjdk.java.net> Changeset: 9de431c29e4d Author: Kirill Kirichenko Date: 2013-12-02 15:38 +0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/9de431c29e4d fix build failure for Media ! modules/media/src/main/native/gstreamer/projects/win/fxplugins/Makefile ! modules/media/src/main/native/gstreamer/projects/win/glib-lite/Makefile ! modules/media/src/main/native/gstreamer/projects/win/gstreamer-lite/Makefile ! modules/media/src/main/native/jfxmedia/projects/win/Makefile Changeset: 2e2244003c8d Author: lepopov Date: 2013-12-02 19:42 +0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/2e2244003c8d Fixed web part of RT-27943 Update JavaFX DLL Files to include appropriate meta data (fix by PeterZ) ! build.gradle ! buildSrc/win.gradle ! modules/web/src/main/native/Source/WebCore/TargetJava.pri From philip.race at oracle.com Mon Dec 2 09:13:49 2013 From: philip.race at oracle.com (Phil Race) Date: Mon, 02 Dec 2013 09:13:49 -0800 Subject: Does the rendering system in JavaFX process font hints? In-Reply-To: References: <5298A38D.9070203@oracle.com> Message-ID: <529CBFCD.2090604@oracle.com> Hi, There are no such configuration options available in either JDK 7 or 8. The rasteriser used in FX 2.x is the same as the one used in JDK, and it can process hints just fine. However it is not configured that way in FX Java FX was from Day 1 (meaning FX 1.0) intended to provide a graphics rendering system which was able to uniformly scale. Hints don't allow the shape or string length to scale uniformly. Switching to the native rasteriser doesn't change anything here. In fact on OS X it actually means you are LESS able to request hinting since with the original rasteriser we could have provided such a configuration option to be used "at your own risk", but in FX 8 the OS X platform rasteriser doesn't process hints at all and I don't know that you can do anything about it. DirectWrite on Windows may be more configurable, but I don't think we request hints there either. Windows likely does process ClearType hints, but generally it also is headed in the direction of unhinted rendering. -phil. On 12/2/2013 4:45 AM, Sybille Lein wrote: > Hi Steve, > > Thank you for your quick reply. > > Could you please give me some more information on the font engine in JDK 7 > as our software will be released with JDK 7 now. > > Is there any possiblity to configure the font engine in JDK 7 to process > font hints on Mac OS X? > > Regards, > Sybille > > > > > From: > Stephen F Northover > To: > Sybille Lein , > Date: > 29.11.2013 15:24 > Subject: > Re: Does the rendering system in JavaFX process font hints? > > > > Hi Sybille, > > Please try your code on jdk8. The font engine in FX has been changed to > use the native rasterizer on Windows and Mac. > > Steve > > On 2013-11-29 8:14 AM, Sybille Lein wrote: >> I have some questions about the font rendering system that is used in > the >> JavaFX system. >> >> We are developing a JavaFX application with a customer owned font. >> This font is a TrueType font and includes font hints. >> There are usually two options for the font engine in operating systems: >> processing hints, or running an auto-hinter. >> >> It appears to me that the JavaFX font rendering system ignores the hints >> in the fonts, and runs the auto-hinter instead.It doesn?t invoke the >> byte-code interpreter. >> >> My question is about how the font engine works with font hints on Mac OS > X >> and Windows? >> >> And is it possible to configure the font engine in JavaFX to process >> hints? >> >> I tested it under Mac OS X and java version 1.7.0_17. >> >> Thanks >> Sybille >> >> >> >> >> ---------------------------------------- >> This message is intended for a particular addressee only and may contain > business or company secrets. If you have received this email in error, > please contact the sender and delete the message immediately. Any use of > this email, including saving, publishing, copying, replication or > forwarding of the message or the contents is not permitted. > > > > > > ---------------------------------------- > This message is intended for a particular addressee only and may contain business or company secrets. If you have received this email in error, please contact the sender and delete the message immediately. Any use of this email, including saving, publishing, copying, replication or forwarding of the message or the contents is not permitted. From hang.vo at oracle.com Mon Dec 2 08:17:49 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 02 Dec 2013 16:17:49 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34618 [Lens] Remove eglx11 from build Message-ID: <20131202161804.557C762988@hg.openjdk.java.net> Changeset: 0c2128f43b08 Author: Daniel Blaukopf Date: 2013-12-02 18:02 +0200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/0c2128f43b08 RT-34618 [Lens] Remove eglx11 from build Summary: The eglx11 port doesn't work, so we'll stop building it until we fix it Reviewed-by: ddhill ! buildSrc/armv6hf.gradle ! buildSrc/armv6sf.gradle ! buildSrc/x86egl.gradle From hang.vo at oracle.com Mon Dec 2 09:47:55 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 02 Dec 2013 17:47:55 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34623: [JAVADOC] fixing Ensemble8 javadoc warnings Message-ID: <20131202174813.2B44962990@hg.openjdk.java.net> Changeset: 7624bc25c49e Author: ddhill Date: 2013-12-02 12:43 -0500 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/7624bc25c49e RT-34623: [JAVADOC] fixing Ensemble8 javadoc warnings ! apps/samples/Ensemble8/src/app/java/ensemble/control/BendingPages.java ! apps/samples/Ensemble8/src/app/java/ensemble/control/BookBend.java ! apps/samples/Ensemble8/src/app/java/ensemble/control/Popover.java ! apps/samples/Ensemble8/src/app/java/ensemble/search/IndexSearcher.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/interpolator/InterpolatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timeline/TimelineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timelineevents/TimelineEventsApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/fadetransition/FadeTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/filltransition/FillTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/paralleltransition/ParallelTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/pathtransition/PathTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/pausetransition/PauseTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/rotatetransition/RotateTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/scaletransition/ScaleTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/sequentialtransition/SequentialTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/stroketransition/StrokeTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/translatetransition/TranslateTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/FireworksApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/audio/AudioAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/chart/AreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChart.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/stacked/StackedAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/audio/AudioBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/chart/BarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/horizontal/HorizontalBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/image/ImageBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/stacked/StackedBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bubble/chart/BubbleChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/category/CategoryLineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/chart/LineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/stock/StockLineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/pie/chart/PieChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/pie/drilldown/DrilldownPieChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/animated/LiveScatterChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/chart/ScatterChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/TaskApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/accordion/AccordionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/button/colorbutton/ColorButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/button/graphicbutton/GraphicButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/button/pillbutton/PillButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/checkbox/CheckBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/choicebox/ChoiceBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/colorpicker/ColorPickerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/datepicker/DatePickerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/hyperlink/HyperLinkApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/horizontallistview/HorizontalListViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/listviewcellfactory/ListViewCellFactoryApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/simplelistview/SimpleListViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/menu/MenuApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/pagination/PaginationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/progressbar/ProgressBarApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/progressindicator/ProgressIndicatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/radiobutton/RadioButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/scrollbar/ScrollBarApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/splitpane/hiddensplitpane/HiddenSplitPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/tabpane/TabPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tableview/TableViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/advancedlabel/AdvancedLabelApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/insettext/InsetTextApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/searchbox/SearchBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/simplelabel/SimpleLabelApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textfield/TextFieldApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextValidatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/togglebutton/ToggleButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/toolbar/styledtoolbar/StyledToolBarApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/toolbar/toolbar/ToolBarApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/TreeTableViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treeview/TreeViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/CalculatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/colorfulcircles/ColorfulCirclesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/DigitalClockApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelfApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/dropshadow/DropShadowApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/gaussianblur/GaussianBlurApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/innershadow/InnerShadowApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/reflection/ReflectionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/sepiatone/SepiaToneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imagecreation/ImageCreationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageoperator/ImageOperationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageproperties/ImagePropertiesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/color/ColorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/radialgradient/RadialGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/PuzzlePiecesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/arc/ArcApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/circle/CircleApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/cubiccurve/CubicCurveApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/ellipse/EllipseApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/line/LineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/path/PathApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polygon/PolygonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polyline/PolylineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/quadcurve/QuadCurveApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/rectangle/RectangleApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cube/CubeApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cubesystem/CubeSystemApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/simple3dbox/Simple3DBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/xylophone/XylophoneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/stringbinding/StringBindingApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/anchorpane/AnchorPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/borderpane/BorderPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/flowpane/FlowPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/gridpane/GridPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/hbox/HBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/stackpane/StackPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/tilepane/TilePaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/vbox/VBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/advancedmedia/AdvancedMediaApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/AlphaMediaPlayerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/audioclip/AudioClipApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/overlaymediaplayer/OverlayMediaPlayerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/streamingmediaplayer/StreamingMediaPlayerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/cursor/CursorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keyevent/KeyEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keystrokemotion/KeyStrokeMotionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/mouseevent/MouseEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/CustomNodeApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/nodeproperties/NodePropertiesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/advancedstage/AdvancedStageApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/stage/StageApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/text/bidi/BidiApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/text/textflow/TextFlowApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/webview/WebViewApp.java From hang.vo at oracle.com Mon Dec 2 10:33:03 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 02 Dec 2013 18:33:03 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34083: fixing sample apps building when Swing not present (Ensemble8, Modena, 3DViewer) Message-ID: <20131202183323.B52CF62991@hg.openjdk.java.net> Changeset: 2c9f866b6e0f Author: ddhill Date: 2013-12-02 13:15 -0500 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/2c9f866b6e0f RT-34083: fixing sample apps building when Swing not present (Ensemble8, Modena, 3DViewer) Reviewed-by: kcr ! apps/experiments/3DViewer/build.xml ! apps/experiments/build.xml ! apps/samples/Ensemble8/build.xml ! build.gradle From philip.race at oracle.com Mon Dec 2 10:44:56 2013 From: philip.race at oracle.com (Phil Race) Date: Mon, 02 Dec 2013 10:44:56 -0800 Subject: RFR: rt-29185 Canvas won't Print. Message-ID: <529CD528.8080409@oracle.com> http://cr.openjdk.java.net/~prr/fxprinting/rt-29185/ https://javafx-jira.kenai.com/browse/RT-29185 An exception was occurring because the Texture resource backing the Canvas was not compatible with the 2D pipeline. The fix adds code to Canvas to detect this case and copy the canvas data to a compatible texture. I tested this on Mac & Windows. -phil. From hang.vo at oracle.com Mon Dec 2 11:47:56 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 02 Dec 2013 19:47:56 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34557: [Quantum] JavaFX does not paint correctly when a window opens while the screen is locked Message-ID: <20131202194818.744C962993@hg.openjdk.java.net> Changeset: 446894e7355b Author: Felipe Heidrich Date: 2013-12-02 11:31 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/446894e7355b RT-34557: [Quantum] JavaFX does not paint correctly when a window opens while the screen is locked Fix-by: Dmitry Markov Reviewed-by: Kevin Rushforth, Felipe Heidrich ! modules/graphics/src/main/java/com/sun/javafx/tk/quantum/PresentingPainter.java From philip.race at oracle.com Mon Dec 2 11:53:55 2013 From: philip.race at oracle.com (Phil Race) Date: Mon, 02 Dec 2013 11:53:55 -0800 Subject: RFR RT-33113: HtmlEditor not printing Message-ID: <529CE553.1000301@oracle.com> http://cr.openjdk.java.net/~prr/fxprinting/RT-33113/ https://javafx-jira.kenai.com/browse/RT-33113 The problem is that printing doesn't have a screen so we get a NPE. We likely should make printing report a dummy screen so that callers don't need to be aware of this, but at this stage in the game the safer thing is for is to check for null and interpret that as the printing case. -phil. From anthony.petrov at oracle.com Mon Dec 2 12:01:14 2013 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Tue, 03 Dec 2013 00:01:14 +0400 Subject: [8] Review request for RT-34610: SwingNode: Ending a drag gesture should not generate an AWT mouse clicked event Message-ID: <529CE70A.3020002@oracle.com> Anton, Steve, Please review a fix for https://javafx-jira.kenai.com/browse/RT-34610 -- best regards, Anthony From seeon.birger at oracle.com Mon Dec 2 12:47:09 2013 From: seeon.birger at oracle.com (Seeon Birger) Date: Mon, 2 Dec 2013 12:47:09 -0800 (PST) Subject: [8] Review request for RT-34632: Lens: VK preload Message-ID: Jonathan, Daniel, Please review in time for ZBB, a fix for https://javafx-jira.kenai.com/browse/RT-34632 - Lens: VK preload (sub-task of https://javafx-jira.kenai.com/browse/RT-24685 - Lens: Virtual keyboard initialization is slow) The patch moves VK initialization including pre-rendering to initialization of first TextInputControl. Preloading is disabled by default. To Enable use: -Dcom.sun.javafx.virtualKeyboard.preload=PRERENDERER Regards, Seeon From David.Hill at Oracle.com Mon Dec 2 14:00:47 2013 From: David.Hill at Oracle.com (David Hill) Date: Mon, 02 Dec 2013 17:00:47 -0500 Subject: Changing the default gradle build results. Message-ID: <529D030F.3030602@Oracle.com> Come join the discussion - we don't have much time to do this :-) https://javafx-jira.kenai.com/browse/RT-34633 The Jira starts with this: The OpenJFX default target for gradle (currently 'sdk') should also build the public apps Currently we have: sdk: builds only the SDK runtime binary - not apps apps: builds open and closed apps, and copies selected items to the artifacts tree all: used for all release engineering builds, includes sdk, apps There seems to be a desire to have some additional targets/behaviors Steve would like the default build (gradle with no arguments) to include the building of the SDK and the public samples. Dave and Kevin would like to make sure that anything added does not limit the ability to build only sdk runtime, and limits the extra time building other "stuff". Kevin report the closed side of the apps build takes an additional 3 minutes. There seems a number of ways to solve this issue - adding additional targets, while retaining the overall end result. The challenge seems to be defining what those intermediate targets should be, and what should be the definition of 'sdk' and what is the default gradle target. -- David Hill Java Embedded Development "Do not throw the arrow which will return against you." -- Kurdish Proverb From james.graham at oracle.com Mon Dec 2 14:18:44 2013 From: james.graham at oracle.com (Jim Graham) Date: Mon, 02 Dec 2013 14:18:44 -0800 Subject: review request RT-28691: Region corner radii scaling issues when radii > 2*width,height In-Reply-To: <52959C27.5060609@oracle.com> References: <52959C27.5060609@oracle.com> Message-ID: <529D0744.1010906@oracle.com> Updated webrev available in the latest Jira comment, responding to review feedback from Felipe and (in the Jira comments) answering a number of questions about the methodology with David... ...jim On 11/26/13 11:15 PM, Jim Graham wrote: > Hi David and Felipe, > > Please review my proposed fix for: > https://javafx-jira.kenai.com/browse/RT-28691 > > The webrev pointer, and a question, are in my recent comment there. > > This makes every instance of corner radii handling I could find in > Region and NGRegion internally consistent, enforced by pre-filtering the > data through a single method in Region. > > I am curious to hear from David about the interpretation I've made of > various anomalous cases of corner radii, and Felipe from general > graphics correctness of my calculations. I mention a specific question > I had while developing the fix in the Jira comment with the webrev. > > I tested it with Ensemble8 and the test cases in the report. I haven't > written a specific test case that combines inset+percentage overflow > until I hear back from David (or anyone) about what the correct > interpretation is for that case... > > ...jim From james.graham at oracle.com Mon Dec 2 14:28:02 2013 From: james.graham at oracle.com (Jim Graham) Date: Mon, 02 Dec 2013 14:28:02 -0800 Subject: Post commit notice: RT-34635: warnings printed out when using poolstats Message-ID: <529D0972.4030807@oracle.com> The warning message was printed out unconditionally even when the summary was requested for other reasons... http://cr.openjdk.java.net/~flar/RT-34635/webrev.00/ https://javafx-jira.kenai.com/browse/RT-34635 ...jim From hang.vo at oracle.com Mon Dec 2 14:32:53 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 02 Dec 2013 22:32:53 +0000 Subject: hg: openjfx/8/graphics/rt: Fix RT-34635: poolstats prints unnecessary warning messages Message-ID: <20131202223308.DAF7162999@hg.openjdk.java.net> Changeset: 7032137bf627 Author: flar Date: 2013-12-02 14:22 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/7032137bf627 Fix RT-34635: poolstats prints unnecessary warning messages ! modules/graphics/src/main/java/com/sun/prism/impl/ManagedResource.java From philip.race at oracle.com Mon Dec 2 14:53:53 2013 From: philip.race at oracle.com (Phil Race) Date: Mon, 02 Dec 2013 14:53:53 -0800 Subject: RFR: RT-34523: [Printing] When turning on button "style", the printed page is blank Message-ID: <529D0F81.5030209@oracle.com> Please review :- http://cr.openjdk.java.net/~prr/fxprinting/rt-34523/ https://javafx-jira.kenai.com/browse/RT-34523 From hang.vo at oracle.com Mon Dec 2 15:03:29 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 02 Dec 2013 23:03:29 +0000 Subject: hg: openjfx/8/graphics/rt: Fix RT-28691: Region corners wrong when corner radii overflow width or height Message-ID: <20131202230344.B744E6299D@hg.openjdk.java.net> Changeset: 5e17e3810011 Author: flar Date: 2013-12-02 14:54 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/5e17e3810011 Fix RT-28691: Region corners wrong when corner radii overflow width or height Reviewed by: Felipe, David Grieve ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGRegion.java ! modules/graphics/src/main/java/javafx/scene/layout/Region.java From hang.vo at oracle.com Mon Dec 2 14:48:02 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 02 Dec 2013 22:48:02 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34518 Ensemble8: adjust @embedded flags Message-ID: <20131202224818.569EA6299B@hg.openjdk.java.net> Changeset: d84e05a1e95b Author: dmasada Date: 2013-12-02 14:39 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/d84e05a1e95b RT-34518 Ensemble8: adjust @embedded flags ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/stacked/StackedAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/chart/BarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/horizontal/HorizontalBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/image/ImageBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/stacked/StackedBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bubble/chart/BubbleChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/category/CategoryLineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/gaussianblur/GaussianBlurApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/innershadow/InnerShadowApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/reflection/ReflectionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/sepiatone/SepiaToneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageproperties/ImagePropertiesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/color/ColorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/stringbinding/StringBindingApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keyevent/KeyEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/nodeproperties/NodePropertiesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/text/textflow/TextFlowApp.java From hang.vo at oracle.com Mon Dec 2 14:18:08 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 02 Dec 2013 22:18:08 +0000 Subject: hg: openjfx/8/graphics/rt: RT-33113: Printing: HtmlEditor does not print anything Message-ID: <20131202221823.DA88B62997@hg.openjdk.java.net> Changeset: cc2acc7f4a50 Author: prr Date: 2013-12-02 14:12 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/cc2acc7f4a50 RT-33113: Printing: HtmlEditor does not print anything Reviewed-by: kcr ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGNode.java From hang.vo at oracle.com Mon Dec 2 15:32:55 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 02 Dec 2013 23:32:55 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34523: Printing: When turning on button "style", the printed page is blank Message-ID: <20131202233310.7261B6299E@hg.openjdk.java.net> Changeset: 1957002886ae Author: prr Date: 2013-12-02 15:16 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/1957002886ae RT-34523: Printing: When turning on button "style", the printed page is blank Reviewed-by: fheidric ! modules/graphics/src/main/java/com/sun/prism/impl/ps/CachingShapeRep.java From hang.vo at oracle.com Mon Dec 2 16:03:56 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 00:03:56 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Fix for RT-34623 Ensemble8 has javadoc errors Message-ID: <20131203000431.74EA26299F@hg.openjdk.java.net> Changeset: 8cea1f4c5315 Author: Alexander Kouznetsov Date: 2013-12-02 15:51 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/8cea1f4c5315 Ensemble8: Fix for RT-34623 Ensemble8 has javadoc errors ! apps/samples/Ensemble8/nbproject/project.properties ! apps/samples/Ensemble8/src/app/java/ensemble/control/PopoverTreeList.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java From kevin.rushforth at oracle.com Mon Dec 2 19:40:52 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 02 Dec 2013 19:40:52 -0800 Subject: 8 review request: RT-33796: Need to remove compile and runtime dependency on BINARY_STUB Message-ID: <529D52C4.90206@oracle.com> Felipe & David, Please review: https://javafx-jira.kenai.com/browse/RT-33796 -- Kevin From hang.vo at oracle.com Mon Dec 2 19:17:50 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 03:17:50 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Fix for RT-34638 Ensemble8 XylophoneApp problems Message-ID: <20131203031812.EEB1B629A4@hg.openjdk.java.net> Changeset: 0e725e5d052d Author: Alexander Kouznetsov Date: 2013-12-02 19:11 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/0e725e5d052d Ensemble8: Fix for RT-34638 Ensemble8 XylophoneApp problems ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/xylophone/Cube.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/xylophone/XylophoneApp.java From hang.vo at oracle.com Mon Dec 2 20:32:44 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 04:32:44 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Additional fix for RT-34639 Fix 3D samples Message-ID: <20131203043300.7B0A3629A9@hg.openjdk.java.net> Changeset: 2ae4bdb4a966 Author: Alexander Kouznetsov Date: 2013-12-02 20:18 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/2ae4bdb4a966 Ensemble8: Additional fix for RT-34639 Fix 3D samples ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cube/CubeApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cubesystem/SphereSystemApp.java From hang.vo at oracle.com Mon Dec 2 20:17:46 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 04:17:46 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: RT-34639 Fix 3D samples Message-ID: <20131203041801.9310D629A7@hg.openjdk.java.net> Changeset: 79f9671ee7dc Author: Alexander Kouznetsov Date: 2013-12-02 20:08 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/79f9671ee7dc Ensemble8: RT-34639 Fix 3D samples ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cube/Cube.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cube/CubeApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cubesystem/CubeSystemApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cubesystem/SphereSystemApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cubesystem/Xsphere.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/simple3dbox/Simple3DBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/xylophone/XylophoneApp.java From kevin.rushforth at oracle.com Mon Dec 2 21:22:51 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 02 Dec 2013 21:22:51 -0800 Subject: 8 post-commit review: RT-30501: Gradle build script must read version and milestone info from build.properties Message-ID: <529D6AAB.9080803@oracle.com> Felipe & Mong, In case you want to review the change that went in, you can look at the changeset URLs in: https://javafx-jira.kenai.com/browse/RT-30501 It was a trivial change. -- Kevin From hang.vo at oracle.com Mon Dec 2 21:18:03 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 05:18:03 +0000 Subject: hg: openjfx/8/graphics/rt: RT-30501: Gradle build script must read version and milestone info from build.properties Message-ID: <20131203051819.0FE43629AA@hg.openjdk.java.net> Changeset: 24c413e47bd9 Author: kcr Date: 2013-12-02 21:03 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/24c413e47bd9 RT-30501: Gradle build script must read version and milestone info from build.properties ! build.gradle ! gradle.properties.template From hang.vo at oracle.com Mon Dec 2 21:32:55 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 05:32:55 +0000 Subject: hg: openjfx/8/graphics/rt: 3 new changesets Message-ID: <20131203053342.1FA14629AE@hg.openjdk.java.net> Changeset: 25d3cad95e8b Author: hudson Date: 2013-11-28 08:49 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/25d3cad95e8b Added tag 8.0-b118 for changeset f2c38647100e ! .hgtags Changeset: 32281599fbc7 Author: mv157916 Date: 2013-12-02 11:13 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/32281599fbc7 RT-34627: Update the JDK 8 build number to b118 in rt/build.properties file in the JavaFX 8 Master forest. ! build.properties Changeset: 76c09d14cfbd Author: kcr Date: 2013-12-02 21:25 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/76c09d14cfbd Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cubesystem/CubeSystemApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/xylophone/Cube.java From hang.vo at oracle.com Tue Dec 3 00:33:02 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 08:33:02 +0000 Subject: hg: openjfx/8/graphics/rt: RT-32880: D3D: Near clip appears to clip further (away from viewer) than the specified near value Message-ID: <20131203083319.B2988629B5@hg.openjdk.java.net> Changeset: 268fe91a74e0 Author: vadim Date: 2013-12-03 12:24 +0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/268fe91a74e0 RT-32880: D3D: Near clip appears to clip further (away from viewer) than the specified near value Summary: Adjust projection matrix for Direct3D Reviewed-by: ckyang, kcr ! apps/toys/FX8-3DFeatures/src/fx83dfeatures/NearAndFarClipTest.java ! modules/graphics/src/main/java/com/sun/prism/d3d/D3DContext.java ! tests/system/src/test/java/test3d/NearAndFarClipTest.java From hang.vo at oracle.com Tue Dec 3 02:48:17 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 10:48:17 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34624 [Lens] [Touch] Control not always respond to a tap Message-ID: <20131203104938.19AA0629B6@hg.openjdk.java.net> Changeset: 5da49a57a37f Author: Assaf Yavnai Date: 2013-12-03 12:38 +0200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/5da49a57a37f RT-34624 [Lens] [Touch] Control not always respond to a tap Summary:Sometime when taping over a control it doesn't get selected, but rather just get the internal focus (painted in blue, for example) and another tap needed to actually select/activate it.sending a MouseEvent.MOVE before MouseEvent.PRESS solve this issue. Tested-with: HelloSanity, LensInputTest, Ensemble8 Reviewed-by: dblaukop ! modules/graphics/src/main/native-glass/lens/input/udev/udevInput.c ! modules/graphics/src/main/native-glass/lens/wm/LensWindowManager.c From petr.pchelko at oracle.com Tue Dec 3 03:01:37 2013 From: petr.pchelko at oracle.com (Petr Pchelko) Date: Tue, 3 Dec 2013 15:01:37 +0400 Subject: Review Request: RT-34576 stage.getX()/getY() returns wrong result in applet mode Message-ID: Hello, OpenJFX. Please review the fix for the issue: https://javafx-jira.kenai.com/browse/RT-34576 The details are available in the bug comments. With best regards. Petr. From hang.vo at oracle.com Tue Dec 3 04:48:00 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 12:48:00 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34610: SwingNode: Ending a drag gesture should not generate an AWT mouse clicked event Message-ID: <20131203124819.B390B629C2@hg.openjdk.java.net> Changeset: 2698d86919d4 Author: Anthony Petrov Date: 2013-12-03 16:43 +0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/2698d86919d4 RT-34610: SwingNode: Ending a drag gesture should not generate an AWT mouse clicked event Summary: Skip unwanted MOUSE_CLICKED events Reviewed-by: ant, snorthov ! modules/swing/src/main/java/javafx/embed/swing/SwingNode.java From hang.vo at oracle.com Tue Dec 3 05:03:31 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 13:03:31 +0000 Subject: hg: openjfx/8/graphics/rt: Fix RT-34175 Open source SceneBuilder Message-ID: <20131203130354.A583C629C4@hg.openjdk.java.net> Changeset: 4e5dd280c928 Author: Yves Joan Date: 2013-12-03 14:00 +0100 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/4e5dd280c928 Fix RT-34175 Open source SceneBuilder Reviewed-by: Kevin Rushforth ! .hgignore + apps/scenebuilder/SceneBuilderApp/build.xml + apps/scenebuilder/SceneBuilderApp/manifest.mf + apps/scenebuilder/SceneBuilderApp/nbproject/build-impl.xml + apps/scenebuilder/SceneBuilderApp/nbproject/genfiles.properties + apps/scenebuilder/SceneBuilderApp/nbproject/project.properties + apps/scenebuilder/SceneBuilderApp/nbproject/project.xml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/AppPlatform.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/CssPanelMenuController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindow.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindow.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindowController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/ResourceController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderApp.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderTest.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneStyleSheetMenuController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/ScenicViewStarter.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SplitController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/About.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/AboutWindowController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/about-footer.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/about-header.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/I18N.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp_ja.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp_zh_CN.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/IndexEntry.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanel.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanelController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/LeftCell.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/RightCell.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/DebugMenuController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBar.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBarController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBar.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBar.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBarController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanel.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanel.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanelController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePopupController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/warning.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Preferences.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Preferences.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesDialogController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/SBPreferences.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/PreviewWindowController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBar.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBar.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBarController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/selection-chevron.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog_css.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog_en.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog_fr.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog_i18n.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication_css.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication_en.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication_fr.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication_i18n.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication_css.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication_en.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication_fr.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication_i18n.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/DefaultContent.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/FxmlTemplates.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/TemplateDialog.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/TemplateDialogController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/warning.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/util/FileMutex.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/util/MessageBox.java + apps/scenebuilder/SceneBuilderKit/build.xml + apps/scenebuilder/SceneBuilderKit/manifest.mf + apps/scenebuilder/SceneBuilderKit/nbproject/build-impl.xml + apps/scenebuilder/SceneBuilderKit/nbproject/genfiles.properties + apps/scenebuilder/SceneBuilderKit/nbproject/project.properties + apps/scenebuilder/SceneBuilderKit/nbproject/project.xml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorPlatform.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/JobManager.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/DragController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/LiveUpdater.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/AbstractDragSource.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/DocumentDragSource.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/DragSourceShadow.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/ExternalDragSource.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/LibraryDragSource.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/AbstractDropTarget.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/AccessoryDropTarget.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/CollectionDropTarget.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/ContainerXYDropTarget.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/ContainerZDropTarget.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/RootDropTarget.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/I18N.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/SceneBuilderKit.properties + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/SceneBuilderKit_ja.properties + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/SceneBuilderKit_zh_CN.properties + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/ImageUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/ImageUtilsBase.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Accordion.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/AnchorPane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Arc.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/AreaChart.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/BarChart.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/BarChart3D.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/BorderPane-bottom.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/BorderPane-center.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/BorderPane-left.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/BorderPane-right.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/BorderPane-top.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/BorderPane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/BubbleChart.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Button.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Canvas.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/CategoryAxis.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Chart.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/CheckBox.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/CheckMenuItem.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ChoiceBox.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Circle.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ClipView.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ClosePath.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ColorPicker.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ComboBox.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ContextMenu.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/CubicCurve.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/CustomMenuItem.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/CustomNode.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Ellipse.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/FXDNode.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/FlowPane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Graphic.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/GridPane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Group.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/HBox.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/HTMLEditor.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Hyperlink.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ImageView.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Included.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Label.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Line.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/LineChart.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ListView.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/MediaView.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Menu.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/MenuBar.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/MenuButton.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/MenuItem.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/MissingIcon.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Pane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/PasswordField.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Path.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/PieChart.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/PieChart3D.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Polygon.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Polyline.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ProgressBar.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ProgressIndicator.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/QuadCurve.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/RadioButton.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/RadioMenuItem.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Rectangle.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Region.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/SVGPath.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ScatterChart.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ScrollBar-h.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ScrollBar-v.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ScrollPane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Separator-h.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Separator-v.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/SeparatorMenuItem.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Slider-h.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Slider-v.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/SplitMenuButton.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/SplitPane-h.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/SplitPane-v.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/StackPane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/StackedAreaChart.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/StackedBarChart.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Tab.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/TabPane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/TableColumn.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/TableView.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Text.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/TextArea.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/TextField.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/TilePane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/TitledPane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ToggleButton.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ToolBar.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Tooltip.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/TreeView.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/VBox.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/WebView.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/ui/ProhibitedBadge.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/ui/WarningBadge.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/ui/WarningIcon.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/ArrangeZOrderJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/BatchJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/BatchModifyObjectJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/BringForwardJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/BringToFrontJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/CutSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DeleteGridSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DeleteObjectJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DeleteObjectSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DeleteSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DuplicateSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/FitToParentObjectJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/FitToParentSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/InsertAsAccessoryJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/InsertAsSubComponentAndRelocateJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/InsertAsSubComponentJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/Job.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/JobUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/ModifyFxControllerJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/ModifyFxIdJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/ModifyObjectJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/ModifySelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/PasteIntoJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/PasteJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/ReIndexObjectJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/RelocateNodeJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/SendBackwardJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/SendToBackJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/SetDocumentRootJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/TrimSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/UseComputedSizesObjectJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/UseComputedSizesSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/AddColumnConstraintsJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/AddColumnJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/AddRowConstraintsJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/AddRowJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/DeleteColumnJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/DeleteRowJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/GridPaneJobUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/MoveColumnJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/MoveRowJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/ReIndexColumnContentJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/ReIndexRowContentJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/RemoveColumnConstraintsJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/RemoveColumnContentJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/RemoveRowConstraintsJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/RemoveRowContentJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/AddPropertyJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/AddPropertyValueJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/ClearSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/CompositeJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/RemovePropertyJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/RemovePropertyValueJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/UpdateSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/AbstractWrapInContentJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/AbstractWrapInJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/AbstractWrapInSubComponentJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/FXOMObjectCourseComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/UnwrapJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInAnchorPaneJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInGridPaneJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInGroupJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInHBoxJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInPaneJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInScrollPaneJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInSplitPaneJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInStackPaneJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInTabPaneJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInTitledPaneJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInToolBarJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInVBoxJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapJobUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/messagelog/MessageLog.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/messagelog/MessageLogEntry.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/AbstractDecoration.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanel.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanel.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/HudWindow.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/HudWindow.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/HudWindowController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/WorkspaceController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/AbstractDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/AbstractNodeDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/GenericDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/GridPaneDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/HBoxDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/LineDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/SplitPaneDesignInfoX.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/SplitPaneDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TabDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TabOutline.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TabPaneDesignInfoX.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TabPaneDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TableColumnDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TableViewDesignInfoX.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TableViewDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TreeTableColumnDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TreeTableViewDesignInfoX.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TreeTableViewDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/VBoxDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneMosaic.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractCurveHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractGenericHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractNodeHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/LineHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/NodeHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/SplitPaneHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TabHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TableColumnHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TreeTableColumnHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/corner-handle-dim.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/corner-handle.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/side-handle-dim.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/side-handle.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/AbstractGenericPring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/AbstractPring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/NodePring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/TabPring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/TableColumnPring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/TreeTableColumnPring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/relocater/AbstractRelocater.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/relocater/AnchorPaneRelocater.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/relocater/PaneRelocater.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/AbstractResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/CanvasResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/ImageViewResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/LazyResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/RegionResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/SubSceneResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/WebViewResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/shape/ArcResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/shape/CircleResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/shape/EllipseResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/shape/RectangleResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/shape/TextResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/rudder/AbstractRudder.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/rudder/ResizeRudder.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/AbstractGenericTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/AbstractTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/HBoxTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/NodeTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/Quad.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/TabTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/TableColumnTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/TreeTableColumnTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/VBoxTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/AbstractGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/DragGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/SelectWithPringGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/ZoomGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/AbstractMouseDragGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/AbstractMouseGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/AdjustDividerGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/DebugMouseGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/DiscardGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/EditCurveGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeShadow.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/SelectAndMoveGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/SelectAndMoveInGridGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/SelectWithMarqueeGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/AbstractSegment.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/HorizontalLineComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/HorizontalLineIndex.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/HorizontalSegment.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/MovingGuideController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/MovingGuideRenderer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/ResizingGuideChrome.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/ResizingGuideController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/ResizingGuideRenderer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/SegmentIndex.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/VerticalLineComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/VerticalLineIndex.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/VerticalSegment.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/AbstractModeController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/EditModeController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/PickModeController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/BoundsUnion.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/BoundsUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/CardinalPoint.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/LineEquation.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/Picker.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/ScrollPaneBooster.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssContentMaker.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanel.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanel.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssValueConverter.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssValuePresenterFactory.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/SelectionPath.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/images/arrow-right.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/images/css-button-arrow.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/images/css-cursor.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/images/css-lookup-icon.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/images/follow.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/AbstractHierarchyPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyAnimationScheduler.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyDNDController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyItem.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyItemBorderPane.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyItemGraphic.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyTaskScheduler.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/ImageView.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableCell.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableRow.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableView.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableView.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableViewController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableViewUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeCell.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeView.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeView.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeViewController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeViewUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/Inspector.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/Inspector.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/InspectorPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/SubSection.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AnchorPaneConstraintsEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AnchorPaneConstraintsEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AutoSuggestEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BooleanEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BoundedDoubleEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BoundedDoubleEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ControllerClassEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/CursorEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/CursorEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DoubleAutoSuggestEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DoubleEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DoubleField.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/Editor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EditorItem.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EditorItemDelegate.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EditorUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EnumEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EventHandlerEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/FxIdEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/GenericEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/I18nStringEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/InlineListEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/InsetsEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/InsetsEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/IntegerAutoSuggestEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/IntegerEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/IntegerField.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/NumberField.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/PropertiesEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/PropertyEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/RotateEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/RotateEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StringAutoSuggestEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleClassEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleClassEditorItem.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleEditorItem.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StylesheetEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StylesheetEditorInitialBt.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StylesheetEditorItem.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/ap-constraint-h-off.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/ap-constraint-h-on.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/ap-constraint-v-off.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/ap-constraint-v-on.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/button-minus.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/button-plus.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/button-pulldown.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/cog.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/css-icon.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/rotate-handle.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/values-link-hover.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/values-link.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PaintPopupEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PopupEditor.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PopupEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PopupEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PopupEditorValidation.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/StringPopupEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/StringPopupEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportDialog.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportDialog.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportRow.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportRowComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportWindowController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryListCell.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryListItem.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanel.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanel.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractFxmlController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractFxmlPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractFxmlPopupController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractFxmlWindowController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractPopupController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractWindowController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/AbstractModalDialog.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/AbstractModalDialogM.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/AbstractModalDialogW.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/AlertDialog.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/AlertDialog.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/ErrorDialog.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/TextViewDialog.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/TextViewDialog.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/alert-question-mark.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/report/ErrorReport.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/report/ErrorReportEntry.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/search/Search.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/search/Search.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/search/SearchController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/search/images/search-clear.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/search/images/search-icon.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/AbstractSelectionGroup.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/GridSelectionGroup.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/ObjectSelectionGroup.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/Selection.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/util/ContextMenuController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/util/InlineEditController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMArchive.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMCollection.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMDocument.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMIndex.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMInstance.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMIntrinsic.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMLoader.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMNode.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMNodes.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMNormalizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMObject.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMProperty.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMPropertyC.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMPropertyT.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMRefresher.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMSaver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/GlueCursor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/ResourceKeyCollector.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/TransientIntrinsic.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/TransientNode.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/TransientObject.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/TransientProperty.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueAuxiliary.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueCharacters.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueDocument.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueElement.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueInstruction.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueLoader.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueNode.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueSerializer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueSnapshot.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/QualifiedName.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/XMLAttrComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/XMLBuffer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/glossary/BuiltinGlossary.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/glossary/ControllerClass.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/glossary/Glossary.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/glossary/JavaTokenizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/BuiltinLibrary.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/BuiltinSectionComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/Library.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/LibraryItem.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/LibraryItemNameComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Accordion.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/AmbientLight.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Arc.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/AreaChart.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/AreaChartNN.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/BarChart.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Box.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/BubbleChart.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Button.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Canvas.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/CheckBox.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/CheckMenuItem.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ChoiceBox.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Circle.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ComboBox.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ContextMenu.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/CubicCurve.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/CustomMenuItem.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Cylinder.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Ellipse.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/GridPane.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/HTMLEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Hyperlink.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ImageView.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Label.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Line.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/LineChart.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/LineChartNN.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/MediaView.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Menu.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/MenuBar.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/MenuButton.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/MenuItem.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/PointLight.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Polygon.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Polyline.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ProgressBar.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ProgressIndicator.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/QuadCurve.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/RadioButton.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/RadioMenuItem.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Rectangle.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SVGPath.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ScatterChart.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ScatterChartNN.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ScrollBarH.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ScrollBarV.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ScrollPane.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SeparatorH.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SeparatorMenuItem.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SeparatorV.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SliderH.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SliderV.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Sphere.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SplitMenuButton.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SplitPaneH.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SplitPaneV.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/StackedAreaChart.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/StackedBarChart.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SwingNode.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Tab.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/TabPane.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/TableColumn.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/TableView.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Text.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/TitledPane.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ToggleButton.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ToolBar.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Tooltip.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/TreeTableColumn.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/TreeTableView.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/WebView.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/user/LibraryFolderWatcher.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/user/UserLibrary.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/util/JarExplorer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/util/JarReport.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/util/JarReportEntry.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/Metadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/MetadataIntrospector.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/klass/ClassMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/klass/ComponentClassMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/klass/CustomComponentClassMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/klass/ValueClassMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/ComponentPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/PropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/ValuePropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ArrayPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/BooleanPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/BorderPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/BoundsPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/CallbackPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ColumnConstraintsPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ComplexPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/CursorPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/DoubleArrayPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/DoublePropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/EffectPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/EnumerationPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/EventHandlerPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/FontPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ImagePropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/InsetsPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/IntegerPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/KeyCombinationPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ListCellPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/MaterialPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/MeshPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ObjectPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/Point3DPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/Rectangle2DPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/RowConstraintsPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/SingleValuePropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/StringConverterPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/StringPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/TableViewResizePolicyPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/TextEncodablePropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/TransformPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/TreeTableViewResizePolicyPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/background/BackgroundFillPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/background/BackgroundImagePropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/background/BackgroundPositionPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/background/BackgroundPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/background/BackgroundSizePropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/background/CornerRadiiPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/BackgroundFillListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/BackgroundImageListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/ColorListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/ColumnConstraintsListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/DividerListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/DoubleListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/ListValuePropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/ObjectListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/RowConstraintsListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/StopListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/StringListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/TickMarkListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/TransformListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/ColorPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/ImagePatternPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/LinearGradientPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/PaintPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/RadialGradientPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/StopPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/BeanPropertyIntrospector.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ClipboardDecoder.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ClipboardEncoder.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ColorEncoder.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/DesignHierarchyMask.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/DesignHierarchyPath.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/GradientEncoder.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/InspectorPath.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/InspectorPathComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/PropertyName.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/StaticPropertyIntrospector.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ValuePropertyMetadataClassComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ValuePropertyMetadataNameComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/CssInternal.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/Deprecation.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/JavaLanguage.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/MathUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/PaintEditor.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/PaintEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/PaintEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/PaintEditorController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/coloreditor/ColorEditor.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/coloreditor/ColorEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/coloreditor/ColorEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/gradienteditor/GradientEditor.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/gradienteditor/GradientEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/gradienteditor/GradientEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/gradienteditor/GradientEditorStop.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/gradienteditor/GradientEditorStop.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/gradienteditor/GradientEditorStop.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/images/chequers.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/images/stop-indicator.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/rotateeditor/RotateEditor.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/rotateeditor/RotateEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/rotateeditor/RotateEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/rotateeditor/rotate-handle.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/slidereditor/SliderEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/slidereditor/SliderEditor.java From simon.vienot at oracle.com Tue Dec 3 07:04:25 2013 From: simon.vienot at oracle.com (Simon Vienot) Date: Tue, 03 Dec 2013 16:04:25 +0100 Subject: Scene Builder is now open source! Message-ID: <529DF2F9.30400@oracle.com> Hello OpenJFXers ! We're very happy to announce that Scene Builder is now open source, as a part of the OpenJFX project. The whole Scene Builder functionality is available, including the SB Kit API as well as the standalone SB application. The only part of the product which remains closed is the native packaging/installer code. SB code is available in rt/apps/scenebuilder/ under the terms of a BSD-style license, similar to JavaFX samples. You are all welcome to contribute. Thanks, -Simon. From seeon.birger at oracle.com Tue Dec 3 07:09:01 2013 From: seeon.birger at oracle.com (Seeon Birger) Date: Tue, 3 Dec 2013 07:09:01 -0800 (PST) Subject: Post commit notification: RT-34632: Lens: VK preload Message-ID: <58577c06-838f-4b5d-9dff-2318d1195d41@default> JIRA: HYPERLINK "https://javafx-jira.kenai.com/browse/RT-34632"RT-34632 - Lens: VK preload Fixed in commit: b9e39db1ecbe Regards, Seeon From tobi at ultramixer.com Tue Dec 3 07:09:36 2013 From: tobi at ultramixer.com (Tobias Bley) Date: Tue, 3 Dec 2013 16:09:36 +0100 Subject: Scene Builder is now open source! In-Reply-To: <529DF2F9.30400@oracle.com> References: <529DF2F9.30400@oracle.com> Message-ID: Great news! Thank you very much Simon for doing this great job! Could you please tell us more about the SB Kit API? Best, Tobi Am 03.12.2013 um 16:04 schrieb Simon Vienot : > Hello OpenJFXers ! > > We're very happy to announce that Scene Builder is now open source, as a part of the OpenJFX project. > The whole Scene Builder functionality is available, including the SB Kit API as well as the standalone SB application. > The only part of the product which remains closed is the native packaging/installer code. > SB code is available in rt/apps/scenebuilder/ under the terms of a BSD-style license, similar to JavaFX samples. > > You are all welcome to contribute. > > Thanks, > -Simon. > From tom.schindl at bestsolution.at Tue Dec 3 07:10:10 2013 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Tue, 3 Dec 2013 16:10:10 +0100 Subject: Scene Builder is now open source! In-Reply-To: <529DF2F9.30400@oracle.com> References: <529DF2F9.30400@oracle.com> Message-ID: Amazing News! Von meinem iPhone gesendet > Am 03.12.2013 um 16:04 schrieb Simon Vienot : > > Hello OpenJFXers ! > > We're very happy to announce that Scene Builder is now open source, as a part of the OpenJFX project. > The whole Scene Builder functionality is available, including the SB Kit API as well as the standalone SB application. > The only part of the product which remains closed is the native packaging/installer code. > SB code is available in rt/apps/scenebuilder/ under the terms of a BSD-style license, similar to JavaFX samples. > > You are all welcome to contribute. > > Thanks, > -Simon. > From simon.vienot at oracle.com Tue Dec 3 07:30:01 2013 From: simon.vienot at oracle.com (Simon Vienot) Date: Tue, 03 Dec 2013 16:30:01 +0100 Subject: Scene Builder is now open source! In-Reply-To: References: <529DF2F9.30400@oracle.com> Message-ID: <529DF8F9.6080105@oracle.com> SB Kit is an API allowing to integrate SB functionality into the GUI of a third party tool, such as an IDE. With the 2.0 release, SB code base has been deeply re-factored to make it modular such that each of the Panels (Content, Inspector, Hierarchy, etc...) can be instantiated and brought up independently of the others. In a nutshell, the SB Kit API allows to orchestrate the editing of an FXML document and to control the various panels. The API Javadoc of the SB Kit is available [1] for download with the SB 2.0 early access builds. Regards -Simon. [1] http://download.oracle.com/otn-pub/java/javafx_scenebuilder/2.0-ea-b07/javafx_scenebuilder_kit_javadoc-2_0-ea-b07-21_nov_2013.zip On 03/12/2013 16:09, Tobias Bley wrote: > Great news! Thank you very much Simon for doing this great job! > > Could you please tell us more about the SB Kit API? > > Best, > Tobi > > > Am 03.12.2013 um 16:04 schrieb Simon Vienot : > >> Hello OpenJFXers ! >> >> We're very happy to announce that Scene Builder is now open source, as a part of the OpenJFX project. >> The whole Scene Builder functionality is available, including the SB Kit API as well as the standalone SB application. >> The only part of the product which remains closed is the native packaging/installer code. >> SB code is available in rt/apps/scenebuilder/ under the terms of a BSD-style license, similar to JavaFX samples. >> >> You are all welcome to contribute. >> >> Thanks, >> -Simon. >> From hang.vo at oracle.com Tue Dec 3 07:18:05 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 15:18:05 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34632: Lens: VK preload. Message-ID: <20131203151827.961CD629D4@hg.openjdk.java.net> Changeset: b9e39db1ecbe Author: Seeon Birger Date: 2013-12-03 17:05 +0200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/b9e39db1ecbe RT-34632: Lens: VK preload. ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/FXVK.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/FXVKSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextInputControlSkin.java From hang.vo at oracle.com Tue Dec 3 07:33:24 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 15:33:24 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34576: stage.getX()/getY() returns wrong result in applet mode Message-ID: <20131203153340.ED3CA629D8@hg.openjdk.java.net> Changeset: 2367588a65e5 Author: Petr Pchelko Date: 2013-12-03 19:29 +0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/2367588a65e5 RT-34576: stage.getX()/getY() returns wrong result in applet mode Reviewed-by: anthony, snorthov ! modules/graphics/src/main/native-glass/mac/GlassWindow.m From hang.vo at oracle.com Tue Dec 3 08:03:42 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 16:03:42 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34580: [iOS, Android] Remove JDK8 method references Message-ID: <20131203160403.20F70629DA@hg.openjdk.java.net> Changeset: 04577ad9b088 Author: snorthov Date: 2013-12-03 10:54 -0500 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/04577ad9b088 RT-34580: [iOS,Android] Remove JDK8 method references Summary: Recoding two methods will allow us to compile and run on RoboVM (with appropriate 7/8 compatibility library) Reviewed-by: davidg, kirill k ! modules/graphics/src/main/java/com/sun/javafx/css/StyleCacheEntry.java ! modules/media/src/main/java/com/sun/media/jfxmedia/locator/Locator.java From neugens at redhat.com Tue Dec 3 08:07:55 2013 From: neugens at redhat.com (Mario Torre) Date: Tue, 03 Dec 2013 17:07:55 +0100 Subject: Scene Builder is now open source! In-Reply-To: <529DF2F9.30400@oracle.com> References: <529DF2F9.30400@oracle.com> Message-ID: <1386086875.22494.1.camel@galactica.localdomain> On Tue, 2013-12-03 at 16:04 +0100, Simon Vienot wrote: > Hello OpenJFXers ! > > We're very happy to announce that Scene Builder is now open source, as a > part of the OpenJFX project. > The whole Scene Builder functionality is available, including the SB Kit > API as well as the standalone SB application. > The only part of the product which remains closed is the native > packaging/installer code. > SB code is available in rt/apps/scenebuilder/ under the terms of a > BSD-style license, similar to JavaFX samples. > > You are all welcome to contribute. > > Thanks, > -Simon. Yuhu! This is the best news since... well, since last best news ;) You guys are really getting us used to that! Congratulations! Cheers, Mario From rdarrylr at yahoo.com Tue Dec 3 09:21:01 2013 From: rdarrylr at yahoo.com (rdarrylr at yahoo.com) Date: Tue, 3 Dec 2013 17:21:01 +0000 Subject: Scene Builder is now open source! In-Reply-To: <529DF2F9.30400@oracle.com> References: <529DF2F9.30400@oracle.com> Message-ID: <1858613854-1386091262-cardhu_decombobulator_blackberry.rim.net-176711574-@b28.c11.bise6.blackberry> Great news!!! Thank you very much. -----Original Message----- From: Simon Vienot Sender: openjfx-dev-bounces at openjdk.java.net Date: Tue, 03 Dec 2013 16:04:25 To: Subject: Scene Builder is now open source! Hello OpenJFXers ! We're very happy to announce that Scene Builder is now open source, as a part of the OpenJFX project. The whole Scene Builder functionality is available, including the SB Kit API as well as the standalone SB application. The only part of the product which remains closed is the native packaging/installer code. SB code is available in rt/apps/scenebuilder/ under the terms of a BSD-style license, similar to JavaFX samples. You are all welcome to contribute. Thanks, -Simon. From hang.vo at oracle.com Tue Dec 3 09:47:52 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 17:47:52 +0000 Subject: hg: openjfx/8/graphics/rt: RT-33796: Need to remove compile and runtime dependency on BINARY_STUB Message-ID: <20131203174811.63BB6629E0@hg.openjdk.java.net> Changeset: 9d4bcbe21a6f Author: kcr Date: 2013-12-03 09:37 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/9d4bcbe21a6f RT-33796: Need to remove compile and runtime dependency on BINARY_STUB Reviewed-by: ddhill, ckyang ! build.gradle ! gradle.properties.template From hang.vo at oracle.com Tue Dec 3 11:03:22 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 19:03:22 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34575: Ensemble8 does not work with a touch screen. Message-ID: <20131203190343.E8C66629EF@hg.openjdk.java.net> Changeset: c3867686aaa4 Author: jgiles Date: 2013-12-04 07:53 +1300 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/c3867686aaa4 RT-34575: Ensemble8 does not work with a touch screen. Pushing on behalf of Martin Sladecek Reviewed-by: Rafi Tayar, jgiles ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualFlow.java From richard.bair at oracle.com Tue Dec 3 12:16:14 2013 From: richard.bair at oracle.com (Richard Bair) Date: Tue, 3 Dec 2013 12:16:14 -0800 Subject: Scene Builder is now open source! In-Reply-To: <529DF2F9.30400@oracle.com> References: <529DF2F9.30400@oracle.com> Message-ID: <30BCDF1C-20D1-4E93-92A2-15C822FC7070@oracle.com> Really, really great news! Thanks Simon and Eric and the rest of the team for getting this done! Richard On Dec 3, 2013, at 7:04 AM, Simon Vienot wrote: > Hello OpenJFXers ! > > We're very happy to announce that Scene Builder is now open source, as a part of the OpenJFX project. > The whole Scene Builder functionality is available, including the SB Kit API as well as the standalone SB application. > The only part of the product which remains closed is the native packaging/installer code. > SB code is available in rt/apps/scenebuilder/ under the terms of a BSD-style license, similar to JavaFX samples. > > You are all welcome to contribute. > > Thanks, > -Simon. > From hang.vo at oracle.com Tue Dec 3 12:32:58 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 20:32:58 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34111: Scaling problem when printing using Canon Inkjet iP100 Message-ID: <20131203203316.90E8F629F8@hg.openjdk.java.net> Changeset: 5f608d7df7a5 Author: prr Date: 2013-12-03 12:22 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/5f608d7df7a5 RT-34111: Scaling problem when printing using Canon Inkjet iP100 Reviewed-by: jgodinez ! modules/graphics/src/main/java/com/sun/prism/j2d/print/J2DPrinterJob.java From phdoerfler at gmail.com Tue Dec 3 12:44:14 2013 From: phdoerfler at gmail.com (=?iso-8859-1?Q?Philipp_D=F6rfler?=) Date: Tue, 3 Dec 2013 21:44:14 +0100 Subject: Scene Builder is now open source! In-Reply-To: <529DF2F9.30400@oracle.com> References: <529DF2F9.30400@oracle.com> Message-ID: <9EB943FE-7E85-452E-B82D-9ADBF079F325@gmail.com> Yay! Seems Christmas is early this year :) Am 03.12.2013 um 16:04 schrieb Simon Vienot : > Hello OpenJFXers ! > > We're very happy to announce that Scene Builder is now open source, as a part of the OpenJFX project. > The whole Scene Builder functionality is available, including the SB Kit API as well as the standalone SB application. > The only part of the product which remains closed is the native packaging/installer code. > SB code is available in rt/apps/scenebuilder/ under the terms of a BSD-style license, similar to JavaFX samples. > > You are all welcome to contribute. > > Thanks, > -Simon. > From richard.bair at oracle.com Tue Dec 3 12:47:29 2013 From: richard.bair at oracle.com (Richard Bair) Date: Tue, 3 Dec 2013 12:47:29 -0800 Subject: Scene Builder is now open source! In-Reply-To: <30BCDF1C-20D1-4E93-92A2-15C822FC7070@oracle.com> References: <529DF2F9.30400@oracle.com> <30BCDF1C-20D1-4E93-92A2-15C822FC7070@oracle.com> Message-ID: And Yves! It looks like you made the magic happen :-) Thanks! Richard On Dec 3, 2013, at 12:16 PM, Richard Bair wrote: > Really, really great news! Thanks Simon and Eric and the rest of the team for getting this done! > > Richard > > On Dec 3, 2013, at 7:04 AM, Simon Vienot wrote: > >> Hello OpenJFXers ! >> >> We're very happy to announce that Scene Builder is now open source, as a part of the OpenJFX project. >> The whole Scene Builder functionality is available, including the SB Kit API as well as the standalone SB application. >> The only part of the product which remains closed is the native packaging/installer code. >> SB code is available in rt/apps/scenebuilder/ under the terms of a BSD-style license, similar to JavaFX samples. >> >> You are all welcome to contribute. >> >> Thanks, >> -Simon. >> > From felix.bembrick at gmail.com Tue Dec 3 12:49:28 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Wed, 4 Dec 2013 07:49:28 +1100 Subject: Scene Builder is now open source! In-Reply-To: <9EB943FE-7E85-452E-B82D-9ADBF079F325@gmail.com> References: <529DF2F9.30400@oracle.com> <9EB943FE-7E85-452E-B82D-9ADBF079F325@gmail.com> Message-ID: I for one will find the code and design of Scene Builder very useful as examples of advanced usage of JavaFX so thanks to the SB team :-) Felix On 4 December 2013 07:44, Philipp D?rfler wrote: > Yay! Seems Christmas is early this year :) > > Am 03.12.2013 um 16:04 schrieb Simon Vienot : > > > Hello OpenJFXers ! > > > > We're very happy to announce that Scene Builder is now open source, as a > part of the OpenJFX project. > > The whole Scene Builder functionality is available, including the SB Kit > API as well as the standalone SB application. > > The only part of the product which remains closed is the native > packaging/installer code. > > SB code is available in rt/apps/scenebuilder/ under the terms of a > BSD-style license, similar to JavaFX samples. > > > > You are all welcome to contribute. > > > > Thanks, > > -Simon. > > > > From hang.vo at oracle.com Tue Dec 3 13:32:53 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 21:32:53 +0000 Subject: hg: openjfx/8/graphics/rt: 2 new changesets Message-ID: <20131203213327.CADEA629FA@hg.openjdk.java.net> Changeset: 7dfe3ed4a7cb Author: Lisa.Selle at oracle.com Date: 2013-12-03 16:18 -0500 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/7dfe3ed4a7cb Backout the fix for RT-34575. Unfortunately this fix causes a regression in ScrollableListView - the scroll bars disappear after the first use and don't ever reappear. hg backout -r c3867686aaa4 Reviewed by kcr ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualFlow.java Changeset: fde6a94b9415 Author: Alexander Kouznetsov Date: 2013-12-03 13:30 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/fde6a94b9415 Ensemble8: Fix for RT-34659 Ensemble8: Empty search window when backspace last character in Search dialog ! apps/samples/Ensemble8/src/app/java/ensemble/SearchResultPopoverList.java ! apps/samples/Ensemble8/src/app/java/ensemble/control/Popover.java ! apps/samples/Ensemble8/src/app/resources/ensemble/EnsembleStylesCommon.css From james.graham at oracle.com Tue Dec 3 14:03:28 2013 From: james.graham at oracle.com (Jim Graham) Date: Tue, 03 Dec 2013 14:03:28 -0800 Subject: review 8.0 fix for RT-34663: pick more appropriate defaults for vram pool sizes Message-ID: <529E5530.9010709@oracle.com> Hi Lisa, Here are the changes we discussed. Note that I found the settings at different lines in the embedded configuration files than you indicated, but hopefully I modified all of the required platforms correctly... Jira: https://javafx-jira.kenai.com/browse/RT-34663 webrev: http://cr.openjdk.java.net/~flar/RT-34663/webrev.00/ ...jim From hang.vo at oracle.com Tue Dec 3 14:03:10 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 22:03:10 +0000 Subject: hg: openjfx/8/graphics/rt: ECLIPSE ONLY: fix .classpath files Message-ID: <20131203220327.02DA7629FC@hg.openjdk.java.net> Changeset: a775ec27c8a4 Author: snorthov Date: 2013-12-03 16:52 -0500 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/a775ec27c8a4 ECLIPSE ONLY: fix .classpath files ! .classpath ! modules/builders/.classpath ! modules/controls/.classpath ! modules/graphics/.classpath ! modules/web/.classpath From hang.vo at oracle.com Tue Dec 3 14:32:48 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 22:32:48 +0000 Subject: hg: openjfx/8/graphics/rt: [DOCS-ONLY] RT-23722: various updates to css docs Message-ID: <20131203223305.4FE3462A00@hg.openjdk.java.net> Changeset: b2c1717cfabe Author: David Grieve Date: 2013-12-03 17:29 -0500 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/b2c1717cfabe [DOCS-ONLY] RT-23722: various updates to css docs ! modules/graphics/src/main/docs/javafx/scene/doc-files/cssref.html ! modules/graphics/src/main/java/javafx/css/CssMetaData.java ! modules/graphics/src/main/java/javafx/css/PseudoClass.java ! modules/graphics/src/main/java/javafx/scene/layout/Region.java From hang.vo at oracle.com Tue Dec 3 15:32:46 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 23:32:46 +0000 Subject: hg: openjfx/8/graphics/rt: IDEA CHANGE ONLY: Update .idea for web and media Message-ID: <20131203233302.9CD7362A0B@hg.openjdk.java.net> Changeset: 7453c535525d Author: snorthov Date: 2013-12-03 18:18 -0500 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/7453c535525d IDEA CHANGE ONLY: Update .idea for web and media ! .idea/builders.iml ! .idea/media.iml ! .idea/rt-closed.iml ! .idea/rt.iml ! .idea/web.iml From hang.vo at oracle.com Tue Dec 3 15:17:48 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 23:17:48 +0000 Subject: hg: openjfx/8/graphics/rt: Fix RT-34663: Adjust prism texture pool limits for desktop and embedded Message-ID: <20131203231807.26A3E62A09@hg.openjdk.java.net> Changeset: 9dddbaefd1eb Author: flar Date: 2013-12-03 15:01 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/9dddbaefd1eb Fix RT-34663: Adjust prism texture pool limits for desktop and embedded Reviewed by: kcr ! buildSrc/armv6hf.gradle ! buildSrc/armv6sf.gradle ! modules/graphics/src/main/java/com/sun/prism/impl/PrismSettings.java From hang.vo at oracle.com Tue Dec 3 15:47:46 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Dec 2013 23:47:46 +0000 Subject: hg: openjfx/8/graphics/rt: RT-28195: Printing: printing of a canvas doesn't start Message-ID: <20131203234801.961AD62A10@hg.openjdk.java.net> Changeset: b6b8fc7d6c18 Author: prr Date: 2013-12-03 15:32 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/b6b8fc7d6c18 RT-28195: Printing: printing of a canvas doesn't start Reviewed-by: flar, kcr ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGCanvas.java ! modules/graphics/src/main/java/com/sun/prism/ResourceFactory.java ! modules/graphics/src/main/java/com/sun/prism/d3d/D3DResourceFactory.java ! modules/graphics/src/main/java/com/sun/prism/es2/ES2ResourceFactory.java ! modules/graphics/src/main/java/com/sun/prism/j2d/J2DRTTexture.java ! modules/graphics/src/main/java/com/sun/prism/j2d/J2DResourceFactory.java ! modules/graphics/src/main/java/com/sun/prism/null3d/DummyResourceFactory.java ! modules/graphics/src/main/java/com/sun/prism/sw/SWRTTexture.java ! modules/graphics/src/main/java/com/sun/prism/sw/SWResourceFactory.java ! modules/graphics/src/test/java/com/sun/javafx/sg/prism/TestGraphics.java From hang.vo at oracle.com Tue Dec 3 18:47:56 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 04 Dec 2013 02:47:56 +0000 Subject: hg: openjfx/8/graphics/rt: 2 new changesets Message-ID: <20131204024841.A33C562A28@hg.openjdk.java.net> Changeset: a4b45faa34a2 Author: Alexander Kouznetsov Date: 2013-12-03 18:41 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/a4b45faa34a2 Ensemble8: Fix for RT-32637 Samples should be updated to use Lambdas for Java 8 ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timeline/TimelineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timelineevents/TimelineEventsApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/audio/AudioAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChart.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/audio/AudioBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChart.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/stock/StockLineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/pie/drilldown/DrilldownPieChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/animated/LiveScatterChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/colorpicker/ColorPickerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/datepicker/DatePickerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/listviewcellfactory/ListViewCellFactoryApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/simplelistview/SimpleListViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/menu/MenuApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/pagination/PaginationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/progressindicator/ProgressIndicatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/scrollbar/ScrollBarApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/tabpane/TabPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/Person.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/searchbox/SearchBox.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextInputValidatorPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextValidatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidationEvent.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidatorPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/togglebutton/ToggleButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/TreeTableViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treeview/TreeViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/Authenticator.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/FXMLLoginDemoApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/User.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Ball.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Brick.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Config.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Level.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/LevelData.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Splash.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Calculator.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Key.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Clock.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelf.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageoperator/ImageOperationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/radialgradient/RadialGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Piece.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/PuzzlePiecesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polygon/PolygonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polyline/PolylineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchButton.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Watch.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/anchorpane/AnchorPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/borderpane/BorderPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/advancedmedia/MediaControl.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/AlphaMediaPlayerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/PlanetaryPlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/audioclip/AudioClipApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/overlaymediaplayer/PlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/streamingmediaplayer/PlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keyevent/KeyEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keystrokemotion/LettersPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/mouseevent/MouseEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchImageView.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/CustomNodeApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/advancedstage/AdvancedStageApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/stage/StageApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SampleTableModel.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInterop.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropTask.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/webview/WebViewApp.java Changeset: 0c426f650357 Author: Alexander Kouznetsov Date: 2013-12-03 18:43 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/0c426f650357 Ensemble8: Fix for RT-34669 ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/DocumentationIndexer.java From hang.vo at oracle.com Tue Dec 3 19:03:20 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 04 Dec 2013 03:03:20 +0000 Subject: hg: openjfx/8/graphics/rt: 2 new changesets Message-ID: <20131204030402.5E82B62A29@hg.openjdk.java.net> Changeset: 355fcde00b08 Author: Alexander Kouznetsov Date: 2013-12-03 18:48 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/355fcde00b08 Ensemble8: Fix for RT-34670 Intermittent failure in copying resources to Modena.jar file ! apps/experiments/Modena/nbproject/project.properties ! apps/experiments/Modena/nbproject/project.xml Changeset: 43d9f4f38db1 Author: Alexander Kouznetsov Date: 2013-12-03 18:54 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/43d9f4f38db1 Ensemble8: Fix for RT-34672 Ensemble8 fails to build samples and search index due to wrong JDK used ! apps/samples/Ensemble8/build.xml ! apps/samples/Ensemble8/nbproject/project.properties From hang.vo at oracle.com Tue Dec 3 19:47:44 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 04 Dec 2013 03:47:44 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Fix for RT-34447 DatePicker Control in Ensemble8 - don't open stage for DatePicker Message-ID: <20131204034801.42FE262A2A@hg.openjdk.java.net> Changeset: 5c5f089af5e3 Author: Alexander Kouznetsov Date: 2013-12-03 19:45 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/5c5f089af5e3 Ensemble8: Fix for RT-34447 DatePicker Control in Ensemble8 - don't open stage for DatePicker ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/datepicker/DatePickerApp.java From hang.vo at oracle.com Wed Dec 4 06:33:12 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 04 Dec 2013 14:33:12 +0000 Subject: hg: openjfx/8/graphics/rt: Backed out fix for RT-34670 since that fix broke the build Message-ID: <20131204143353.354A962A53@hg.openjdk.java.net> Changeset: a91fae01ca00 Author: kcr Date: 2013-12-04 06:23 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/a91fae01ca00 Backed out fix for RT-34670 since that fix broke the build Backed out chagneset 355fcde00b08 ! apps/experiments/Modena/nbproject/project.properties ! apps/experiments/Modena/nbproject/project.xml From hang.vo at oracle.com Wed Dec 4 11:17:53 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 04 Dec 2013 19:17:53 +0000 Subject: hg: openjfx/8/graphics/rt: Backout fix for RT-32637 (which is being deferred out of FX 8) Message-ID: <20131204191857.DCE9E62A72@hg.openjdk.java.net> Changeset: 355b380baf28 Author: kcr Date: 2013-12-04 11:11 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/355b380baf28 Backout fix for RT-32637 (which is being deferred out of FX 8) hg backout a4b45faa34a2 ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timeline/TimelineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timelineevents/TimelineEventsApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/audio/AudioAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChart.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/audio/AudioBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChart.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/stock/StockLineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/pie/drilldown/DrilldownPieChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/animated/LiveScatterChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/colorpicker/ColorPickerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/datepicker/DatePickerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/listviewcellfactory/ListViewCellFactoryApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/simplelistview/SimpleListViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/menu/MenuApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/pagination/PaginationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/progressindicator/ProgressIndicatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/scrollbar/ScrollBarApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/tabpane/TabPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/Person.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/searchbox/SearchBox.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextInputValidatorPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextValidatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidationEvent.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidatorPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/togglebutton/ToggleButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/TreeTableViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treeview/TreeViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/Authenticator.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/FXMLLoginDemoApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/User.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Ball.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Brick.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Config.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Level.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/LevelData.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Splash.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Calculator.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Key.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Clock.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelf.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageoperator/ImageOperationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/radialgradient/RadialGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Piece.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/PuzzlePiecesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polygon/PolygonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polyline/PolylineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchButton.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Watch.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/anchorpane/AnchorPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/borderpane/BorderPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/advancedmedia/MediaControl.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/AlphaMediaPlayerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/PlanetaryPlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/audioclip/AudioClipApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/overlaymediaplayer/PlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/streamingmediaplayer/PlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keyevent/KeyEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keystrokemotion/LettersPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/mouseevent/MouseEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchImageView.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/CustomNodeApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/advancedstage/AdvancedStageApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/stage/StageApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SampleTableModel.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInterop.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropTask.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/webview/WebViewApp.java From hang.vo at oracle.com Wed Dec 4 12:18:00 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 04 Dec 2013 20:18:00 +0000 Subject: hg: openjfx/8/graphics/rt: RT-27552 Update readme for Samples Message-ID: <20131204201817.06E2362A73@hg.openjdk.java.net> Changeset: 6686825cd99d Author: dmasada Date: 2013-12-04 12:10 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/6686825cd99d RT-27552 Update readme for Samples + apps/samples/samples_readme.txt From pedro.duquevieira at gmail.com Wed Dec 4 13:16:55 2013 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Wed, 4 Dec 2013 21:16:55 +0000 Subject: Creating a type of toggle with two labels.. Message-ID: Hi, I'm trying to create a new control to be used by other developers. It is know as "Toggle Switch". You can see this control in android: http://ankri.de/switch-button-for-android-2-3-gingerbread/ in iOS: http://iosguides.net/ios-menus-comparison/ (search for "Toggle Switch") and on Windows 8: http://www.c-sharpcorner.com/UploadFile/83f858/manage-the-windows-8-sync-feature/ (below "Step 2"). My approach was to subclass ButtonBase which is itself a subclass of Labeled. The problem here is that Labeled only accepts one label but the Toggle Switch needs two: one for the "on" state and another for the "off". Any ideas on how to best approach this problem? Thanks in advance, regards, -- Pedro Duque Vieira From jonathan.giles at oracle.com Wed Dec 4 13:39:39 2013 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Thu, 05 Dec 2013 10:39:39 +1300 Subject: Creating a type of toggle with two labels.. In-Reply-To: References: Message-ID: <529FA11B.7070608@oracle.com> It is likely significantly easier to simply roll your own control and not try to coerce ButtonBase to support two labels. For what it is worth, Paru and I talked about precisely this control at JavaOne 2012, which you can watch on YouTube here: http://www.youtube.com/watch?v=ryUTSrGGnvo&list=PLKCk3OyNwIzvw-zzCMJ3xq5SgxL961IFE&index=38 -- Jonathan On 5/12/2013 10:16 a.m., Pedro Duque Vieira wrote: > Hi, > > I'm trying to create a new control to be used by other developers. It is > know as "Toggle Switch". > You can see this control in android: > http://ankri.de/switch-button-for-android-2-3-gingerbread/ in iOS: > http://iosguides.net/ios-menus-comparison/ (search for "Toggle Switch") and > on Windows 8: > http://www.c-sharpcorner.com/UploadFile/83f858/manage-the-windows-8-sync-feature/ > (below > "Step 2"). > > My approach was to subclass ButtonBase which is itself a subclass of > Labeled. The problem here is that Labeled only accepts one label but the > Toggle Switch needs two: one for the "on" state and another for the "off". > > Any ideas on how to best approach this problem? > > Thanks in advance, regards, > From hang.vo at oracle.com Wed Dec 4 13:47:51 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 04 Dec 2013 21:47:51 +0000 Subject: hg: openjfx/8/graphics/rt: Modena: Fix for RT-34670 Modena.jar fails to launch due to intermittent failure in copying resources Message-ID: <20131204214807.051C162A7E@hg.openjdk.java.net> Changeset: 6f1de57755ac Author: Alexander Kouznetsov Date: 2013-12-04 13:35 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/6f1de57755ac Modena: Fix for RT-34670 Modena.jar fails to launch due to intermittent failure in copying resources ! apps/experiments/Modena/nbproject/build-impl.xml ! apps/experiments/Modena/nbproject/genfiles.properties ! apps/experiments/Modena/nbproject/project.properties ! apps/experiments/Modena/nbproject/project.xml From pedro.duquevieira at gmail.com Wed Dec 4 14:05:08 2013 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Wed, 4 Dec 2013 22:05:08 +0000 Subject: Creating a type of toggle with two labels.. In-Reply-To: <529FA11B.7070608@oracle.com> References: <529FA11B.7070608@oracle.com> Message-ID: OK, sounds reasonable. Too bad about the code duplication that will need to take place. Thanks Jonathan and thanks for the link. Regards, On Wed, Dec 4, 2013 at 9:39 PM, Jonathan Giles wrote: > It is likely significantly easier to simply roll your own control and > not try to coerce ButtonBase to support two labels. > > For what it is worth, Paru and I talked about precisely this control at > JavaOne 2012, which you can watch on YouTube here: > > http://www.youtube.com/watch?v=ryUTSrGGnvo&list=PLKCk3OyNwIzvw-zzCMJ3xq5SgxL961IFE&index=38 > > -- Jonathan > > On 5/12/2013 10:16 a.m., Pedro Duque Vieira wrote: > > Hi, > > > > I'm trying to create a new control to be used by other developers. It is > > know as "Toggle Switch". > > You can see this control in android: > > http://ankri.de/switch-button-for-android-2-3-gingerbread/ in iOS: > > http://iosguides.net/ios-menus-comparison/ (search for "Toggle Switch") > and > > on Windows 8: > > > http://www.c-sharpcorner.com/UploadFile/83f858/manage-the-windows-8-sync-feature/ > > (below > > "Step 2"). > > > > My approach was to subclass ButtonBase which is itself a subclass of > > Labeled. The problem here is that Labeled only accepts one label but the > > Toggle Switch needs two: one for the "on" state and another for the > "off". > > > > Any ideas on how to best approach this problem? > > > > Thanks in advance, regards, > > > > -- Pedro Duque Vieira From hang.vo at oracle.com Wed Dec 4 13:17:51 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 04 Dec 2013 21:17:51 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34518 Ensemble8 add @embedded flags to FXML-LoginDemo and StopWatch too Message-ID: <20131204211816.E774662A7A@hg.openjdk.java.net> Changeset: 682dd0ecd56b Author: dmasada Date: 2013-12-04 13:14 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/682dd0ecd56b RT-34518 Ensemble8 add @embedded flags to FXML-LoginDemo and StopWatch too ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/FXMLLoginDemoApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchApp.java From david.grieve at oracle.com Wed Dec 4 14:25:31 2013 From: david.grieve at oracle.com (David Grieve) Date: Wed, 4 Dec 2013 17:25:31 -0500 Subject: Creating a type of toggle with two labels.. In-Reply-To: References: <529FA11B.7070608@oracle.com> Message-ID: You might want to look at what Gerrit has done here: http://harmoniccode.blogspot.com/2013/10/friday-fun-xviii.html On Dec 4, 2013, at 5:05 PM, Pedro Duque Vieira wrote: > OK, sounds reasonable. Too bad about the code duplication that will need to > take place. > > Thanks Jonathan and thanks for the link. > > Regards, > > > On Wed, Dec 4, 2013 at 9:39 PM, Jonathan Giles wrote: > >> It is likely significantly easier to simply roll your own control and >> not try to coerce ButtonBase to support two labels. >> >> For what it is worth, Paru and I talked about precisely this control at >> JavaOne 2012, which you can watch on YouTube here: >> >> http://www.youtube.com/watch?v=ryUTSrGGnvo&list=PLKCk3OyNwIzvw-zzCMJ3xq5SgxL961IFE&index=38 >> >> -- Jonathan >> >> On 5/12/2013 10:16 a.m., Pedro Duque Vieira wrote: >>> Hi, >>> >>> I'm trying to create a new control to be used by other developers. It is >>> know as "Toggle Switch". >>> You can see this control in android: >>> http://ankri.de/switch-button-for-android-2-3-gingerbread/ in iOS: >>> http://iosguides.net/ios-menus-comparison/ (search for "Toggle Switch") >> and >>> on Windows 8: >>> >> http://www.c-sharpcorner.com/UploadFile/83f858/manage-the-windows-8-sync-feature/ >>> (below >>> "Step 2"). >>> >>> My approach was to subclass ButtonBase which is itself a subclass of >>> Labeled. The problem here is that Labeled only accepts one label but the >>> Toggle Switch needs two: one for the "on" state and another for the >> "off". >>> >>> Any ideas on how to best approach this problem? >>> >>> Thanks in advance, regards, >>> >> >> > > > -- > Pedro Duque Vieira From leif.samuelsson at oracle.com Wed Dec 4 14:54:42 2013 From: leif.samuelsson at oracle.com (Leif Samuelsson) Date: Wed, 04 Dec 2013 14:54:42 -0800 Subject: Creating a type of toggle with two labels.. In-Reply-To: References: <529FA11B.7070608@oracle.com> Message-ID: <529FB2B2.5010106@oracle.com> It seems to me that you could do this with a small class extending ToggleButton. Add a couple of String properties and use a selection listener to switch the main text value. You wouldn't need to write any skin or behavior classes, Just define the look in CSS and use -fx-label-padding to place the text on the background. Leif On 2013-12-04 14:05, Pedro Duque Vieira wrote: > OK, sounds reasonable. Too bad about the code duplication that will need to > take place. > > Thanks Jonathan and thanks for the link. > > Regards, > > > On Wed, Dec 4, 2013 at 9:39 PM, Jonathan Giles wrote: > >> It is likely significantly easier to simply roll your own control and >> not try to coerce ButtonBase to support two labels. >> >> For what it is worth, Paru and I talked about precisely this control at >> JavaOne 2012, which you can watch on YouTube here: >> >> http://www.youtube.com/watch?v=ryUTSrGGnvo&list=PLKCk3OyNwIzvw-zzCMJ3xq5SgxL961IFE&index=38 >> >> -- Jonathan >> >> On 5/12/2013 10:16 a.m., Pedro Duque Vieira wrote: >>> Hi, >>> >>> I'm trying to create a new control to be used by other developers. It is >>> know as "Toggle Switch". >>> You can see this control in android: >>> http://ankri.de/switch-button-for-android-2-3-gingerbread/ in iOS: >>> http://iosguides.net/ios-menus-comparison/ (search for "Toggle Switch") >> and >>> on Windows 8: >>> >> http://www.c-sharpcorner.com/UploadFile/83f858/manage-the-windows-8-sync-feature/ >>> (below >>> "Step 2"). >>> >>> My approach was to subclass ButtonBase which is itself a subclass of >>> Labeled. The problem here is that Labeled only accepts one label but the >>> Toggle Switch needs two: one for the "on" state and another for the >> "off". >>> >>> Any ideas on how to best approach this problem? >>> >>> Thanks in advance, regards, >>> >> >> > > From leif.samuelsson at oracle.com Wed Dec 4 14:57:39 2013 From: leif.samuelsson at oracle.com (Leif Samuelsson) Date: Wed, 04 Dec 2013 14:57:39 -0800 Subject: Creating a type of toggle with two labels.. In-Reply-To: <529FB2B2.5010106@oracle.com> References: <529FA11B.7070608@oracle.com> <529FB2B2.5010106@oracle.com> Message-ID: <529FB363.7010400@oracle.com> On 2013-12-04 14:54, Leif Samuelsson wrote: > It seems to me that you could do this with a small class extending ToggleButton. > Add a couple of String properties and use a selection listener to switch the > main text value. > > You wouldn't need to write any skin or behavior classes, Just define the look > in CSS and use -fx-label-padding to place the text on the background. Or maybe just -fx-alignment will be enough. Leif > On 2013-12-04 14:05, Pedro Duque Vieira wrote: >> OK, sounds reasonable. Too bad about the code duplication that will need to >> take place. >> >> Thanks Jonathan and thanks for the link. >> >> Regards, >> >> >> On Wed, Dec 4, 2013 at 9:39 PM, Jonathan Giles wrote: >> >>> It is likely significantly easier to simply roll your own control and >>> not try to coerce ButtonBase to support two labels. >>> >>> For what it is worth, Paru and I talked about precisely this control at >>> JavaOne 2012, which you can watch on YouTube here: >>> >>> http://www.youtube.com/watch?v=ryUTSrGGnvo&list=PLKCk3OyNwIzvw-zzCMJ3xq5SgxL961IFE&index=38 >>> >>> -- Jonathan >>> >>> On 5/12/2013 10:16 a.m., Pedro Duque Vieira wrote: >>>> Hi, >>>> >>>> I'm trying to create a new control to be used by other developers. It is >>>> know as "Toggle Switch". >>>> You can see this control in android: >>>> http://ankri.de/switch-button-for-android-2-3-gingerbread/ in iOS: >>>> http://iosguides.net/ios-menus-comparison/ (search for "Toggle Switch") >>> and >>>> on Windows 8: >>>> >>> http://www.c-sharpcorner.com/UploadFile/83f858/manage-the-windows-8-sync-feature/ >>>> (below >>>> "Step 2"). >>>> >>>> My approach was to subclass ButtonBase which is itself a subclass of >>>> Labeled. The problem here is that Labeled only accepts one label but the >>>> Toggle Switch needs two: one for the "on" state and another for the >>> "off". >>>> >>>> Any ideas on how to best approach this problem? >>>> >>>> Thanks in advance, regards, >>>> >>> >>> >> >> From david.grieve at oracle.com Wed Dec 4 15:52:17 2013 From: david.grieve at oracle.com (David Grieve) Date: Wed, 4 Dec 2013 18:52:17 -0500 Subject: Creating a type of toggle with two labels.. In-Reply-To: <529FB363.7010400@oracle.com> References: <529FA11B.7070608@oracle.com> <529FB2B2.5010106@oracle.com> <529FB363.7010400@oracle.com> Message-ID: <826EA77D-A39F-431E-958A-D776014A1068@oracle.com> It could be just about any type of button?with the right css styles! On Dec 4, 2013, at 5:57 PM, Leif Samuelsson wrote: > On 2013-12-04 14:54, Leif Samuelsson wrote: >> It seems to me that you could do this with a small class extending ToggleButton. >> Add a couple of String properties and use a selection listener to switch the >> main text value. >> >> You wouldn't need to write any skin or behavior classes, Just define the look >> in CSS and use -fx-label-padding to place the text on the background. > > Or maybe just -fx-alignment will be enough. > > Leif > >> On 2013-12-04 14:05, Pedro Duque Vieira wrote: >>> OK, sounds reasonable. Too bad about the code duplication that will need to >>> take place. >>> >>> Thanks Jonathan and thanks for the link. >>> >>> Regards, >>> >>> >>> On Wed, Dec 4, 2013 at 9:39 PM, Jonathan Giles wrote: >>> >>>> It is likely significantly easier to simply roll your own control and >>>> not try to coerce ButtonBase to support two labels. >>>> >>>> For what it is worth, Paru and I talked about precisely this control at >>>> JavaOne 2012, which you can watch on YouTube here: >>>> >>>> http://www.youtube.com/watch?v=ryUTSrGGnvo&list=PLKCk3OyNwIzvw-zzCMJ3xq5SgxL961IFE&index=38 >>>> >>>> -- Jonathan >>>> >>>> On 5/12/2013 10:16 a.m., Pedro Duque Vieira wrote: >>>>> Hi, >>>>> >>>>> I'm trying to create a new control to be used by other developers. It is >>>>> know as "Toggle Switch". >>>>> You can see this control in android: >>>>> http://ankri.de/switch-button-for-android-2-3-gingerbread/ in iOS: >>>>> http://iosguides.net/ios-menus-comparison/ (search for "Toggle Switch") >>>> and >>>>> on Windows 8: >>>>> >>>> http://www.c-sharpcorner.com/UploadFile/83f858/manage-the-windows-8-sync-feature/ >>>>> (below >>>>> "Step 2"). >>>>> >>>>> My approach was to subclass ButtonBase which is itself a subclass of >>>>> Labeled. The problem here is that Labeled only accepts one label but the >>>>> Toggle Switch needs two: one for the "on" state and another for the >>>> "off". >>>>> >>>>> Any ideas on how to best approach this problem? >>>>> >>>>> Thanks in advance, regards, >>>>> >>>> >>>> >>> >>> From hang.vo at oracle.com Wed Dec 4 16:03:23 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 05 Dec 2013 00:03:23 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Fix for RT-34701 Need to remove Lambda expressions from Ensemble8 Message-ID: <20131205000411.0B72B62A80@hg.openjdk.java.net> Changeset: 2627257f8d78 Author: Alexander Kouznetsov Date: 2013-12-04 14:40 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/2627257f8d78 Ensemble8: Fix for RT-34701 Need to remove Lambda expressions from Ensemble8 ! apps/samples/Ensemble8/nbproject/project.properties ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/Description.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SamplePage.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/xylophone/XylophoneApp.java From pedro.duquevieira at gmail.com Wed Dec 4 16:07:36 2013 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Thu, 5 Dec 2013 00:07:36 +0000 Subject: Creating a type of toggle with two labels.. In-Reply-To: <826EA77D-A39F-431E-958A-D776014A1068@oracle.com> References: <529FA11B.7070608@oracle.com> <529FB2B2.5010106@oracle.com> <529FB363.7010400@oracle.com> <826EA77D-A39F-431E-958A-D776014A1068@oracle.com> Message-ID: Thanks for the help guys! I'll follow Jonathan's advice since I want this to be a control that will be used by other developers so I don't want to have inherited public methods that don't make any sense on this control. Regards, On Wed, Dec 4, 2013 at 11:52 PM, David Grieve wrote: > It could be just about any type of button?with the right css styles! > > On Dec 4, 2013, at 5:57 PM, Leif Samuelsson > wrote: > > > On 2013-12-04 14:54, Leif Samuelsson wrote: > >> It seems to me that you could do this with a small class extending > ToggleButton. > >> Add a couple of String properties and use a selection listener to > switch the > >> main text value. > >> > >> You wouldn't need to write any skin or behavior classes, Just define > the look > >> in CSS and use -fx-label-padding to place the text on the background. > > > > Or maybe just -fx-alignment will be enough. > > > > Leif > > > >> On 2013-12-04 14:05, Pedro Duque Vieira wrote: > >>> OK, sounds reasonable. Too bad about the code duplication that will > need to > >>> take place. > >>> > >>> Thanks Jonathan and thanks for the link. > >>> > >>> Regards, > >>> > >>> > >>> On Wed, Dec 4, 2013 at 9:39 PM, Jonathan Giles < > jonathan.giles at oracle.com>wrote: > >>> > >>>> It is likely significantly easier to simply roll your own control and > >>>> not try to coerce ButtonBase to support two labels. > >>>> > >>>> For what it is worth, Paru and I talked about precisely this control > at > >>>> JavaOne 2012, which you can watch on YouTube here: > >>>> > >>>> > http://www.youtube.com/watch?v=ryUTSrGGnvo&list=PLKCk3OyNwIzvw-zzCMJ3xq5SgxL961IFE&index=38 > >>>> > >>>> -- Jonathan > >>>> > >>>> On 5/12/2013 10:16 a.m., Pedro Duque Vieira wrote: > >>>>> Hi, > >>>>> > >>>>> I'm trying to create a new control to be used by other developers. > It is > >>>>> know as "Toggle Switch". > >>>>> You can see this control in android: > >>>>> http://ankri.de/switch-button-for-android-2-3-gingerbread/ in iOS: > >>>>> http://iosguides.net/ios-menus-comparison/ (search for "Toggle > Switch") > >>>> and > >>>>> on Windows 8: > >>>>> > >>>> > http://www.c-sharpcorner.com/UploadFile/83f858/manage-the-windows-8-sync-feature/ > >>>>> (below > >>>>> "Step 2"). > >>>>> > >>>>> My approach was to subclass ButtonBase which is itself a subclass of > >>>>> Labeled. The problem here is that Labeled only accepts one label but > the > >>>>> Toggle Switch needs two: one for the "on" state and another for the > >>>> "off". > >>>>> > >>>>> Any ideas on how to best approach this problem? > >>>>> > >>>>> Thanks in advance, regards, > >>>>> > >>>> > >>>> > >>> > >>> > > -- Pedro Duque Vieira From pedro.duquevieira at gmail.com Wed Dec 4 16:51:41 2013 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Thu, 5 Dec 2013 00:51:41 +0000 Subject: Creating a type of toggle with two labels.. In-Reply-To: <49EA245F-8AA4-4EFD-A4A9-F23776EF537B@oracle.com> References: <49EA245F-8AA4-4EFD-A4A9-F23776EF537B@oracle.com> Message-ID: Thanks Jasper.. On Thu, Dec 5, 2013 at 12:33 AM, Jasper Potts wrote: > I did a couple examples using just CSS and Checkbox control for my JavaOne > session. See below. > > Hoep that helps, > > Jasper > > > > *Modena Style* > > /* Slider Button Styled Checkbox */ > .switch.check-box > .box > .mark { > -fx-background-color: -fx-mark-highlight-color, -fx-mark-color; > -fx-background-insets: 1 0 -1 0, 0; > -fx-shape: > "M0.288,2.742C0.48,2.195,0.756,1.716,1.115,1.308C1.476,0.9,1.918,0.58,2.442,0.348S3.555,0,4.212,0c0.664,0,1.256,0.116,1.776,0.348s0.96,0.552,1.32,0.96c0.36,0.408,0.636,0.886,0.828,1.434C8.328,3.29,8.424,3.885,8.424,4.524c0,0.624-0.096,1.206-0.288,1.746c-0.192,0.54-0.468,1.01-0.828,1.41c-0.36,0.4-0.8,0.714-1.32,0.942S4.876,8.964,4.212,8.964c-0.656,0-1.246-0.114-1.77-0.342S1.476,8.08,1.115,7.68c-0.36-0.4-0.636-0.87-0.828-1.41C0.095,5.73,0,5.148,0,4.524C0,3.885,0.095,3.29,0.288,2.742z > M2.01,5.574c0.084,0.34,0.218,0.646,0.402,0.918c0.184,0.272,0.424,0.49,0.72,0.654s0.656,0.246,1.08,0.246c0.424,0,0.784-0.082,1.08-0.246s0.536-0.382,0.72-0.654S6.33,5.914,6.414,5.574c0.084-0.34,0.126-0.69,0.126-1.05c0-0.376-0.042-0.74-0.126-1.092S6.196,2.766,6.011,2.49c-0.184-0.276-0.424-0.496-0.72-0.66s-0.656-0.246-1.08-0.246c-0.424,0-0.784,0.082-1.08,0.246s-0.536,0.384-0.72,0.66C2.228,2.766,2.094,3.08,2.01,3.432S1.884,4.148,1.884,4.524C1.884,4.884,1.926,5.234,2.01,5.574z > M11.58,0.204l3.576,5.748h0.024V0.204h1.764v8.568H15.06l-3.564-5.736h-0.024v5.736H9.708V0.204H11.58z > M28.524,2.742c0.191-0.548,0.468-1.026,0.828-1.434c0.359-0.408,0.802-0.728,1.326-0.96C31.202,0.116,31.792,0,32.448,0c0.664,0,1.256,0.116,1.776,0.348c0.52,0.232,0.96,0.552,1.319,0.96c0.36,0.408,0.637,0.886,0.828,1.434c0.192,0.548,0.288,1.142,0.288,1.782c0,0.624-0.096,1.206-0.288,1.746c-0.191,0.54-0.468,1.01-0.828,1.41c-0.359,0.4-0.8,0.714-1.319,0.942c-0.521,0.228-1.112,0.342-1.776,0.342c-0.656,0-1.246-0.114-1.77-0.342c-0.524-0.228-0.967-0.542-1.326-0.942c-0.36-0.4-0.637-0.87-0.828-1.41c-0.192-0.54-0.288-1.122-0.288-1.746C28.236,3.885,28.332,3.29,28.524,2.742z > M30.246,5.574c0.084,0.34,0.218,0.646,0.402,0.918c0.184,0.272,0.424,0.49,0.72,0.654s0.656,0.246,1.08,0.246s0.784-0.082,1.08-0.246s0.536-0.382,0.72-0.654c0.185-0.272,0.318-0.578,0.402-0.918c0.084-0.34,0.126-0.69,0.126-1.05c0-0.376-0.042-0.74-0.126-1.092s-0.218-0.666-0.402-0.942c-0.184-0.276-0.424-0.496-0.72-0.66s-0.656-0.246-1.08-0.246s-0.784,0.082-1.08,0.246s-0.536,0.384-0.72,0.66c-0.185,0.276-0.318,0.59-0.402,0.942S30.12,4.148,30.12,4.524C30.12,4.884,30.162,5.234,30.246,5.574zM43.968,0.204v1.584h-4.14v1.98h3.588v1.464h-3.588v3.54h-1.884V0.204H43.968z > M51.083,0.204v1.584h-4.14v1.98h3.588v1.464h-3.588v3.54h-1.884V0.204H51.083z"; > -fx-padding: 7 38 7 38; > } > .switch.check-box > .box { > -fx-padding: 10px 10px 10px 14px; > -fx-background-color: > -fx-shadow-highlight-color, > -fx-outer-border, > -fx-inner-border, > -fx-body-color, > linear-gradient(to bottom, derive(-fx-outer-border, -20%), > -fx-outer-border), > linear-gradient(to bottom, derive(-fx-color, -22%) 0%, > derive(-fx-color, -13%) 20%, derive(-fx-color, -11%) 50%); > -fx-background-insets: 0 0 -1 0, 0, 1, 2, 0 0 0 50, 1 1 1 51; > -fx-background-radius: 3px, 3px, 2px, 1px, 0 2px 2px 0, 0 1 1 0; > } > .switch.check-box:selected > .box { > -fx-background-color: > -fx-shadow-highlight-color, > -fx-outer-border, > -fx-inner-border, > -fx-body-color, > linear-gradient(to bottom, derive(-fx-outer-border, -20%), > -fx-outer-border), > linear-gradient(to bottom, derive(-fx-default-button, -12%) 0%, > derive(-fx-default-button, -3%) 20%, derive(-fx-default-button, -1%) 50%); > > -fx-background-insets: 0 0 -1 0, 0, 1, 2, 0 52 0 0, 1 53 1 1; > -fx-background-radius: 3px, 3px, 2px, 1px, 2px 0 0 2px, 1 0 0 1; > } > .switch.check-box:focused > .box { > -fx-background-color: > -fx-focus-color, > -fx-inner-border, > -fx-body-color, > linear-gradient(to bottom, derive(-fx-outer-border, -20%), > -fx-outer-border), > linear-gradient(to bottom, derive(-fx-color, -22%) 0%, > derive(-fx-color, -13%) 20%, derive(-fx-color, -11%) 50%); > -fx-background-insets: -0.2, 1, 2, 1 1 1 50, 1 1 1 51; > -fx-background-radius: 3px, 2px, 1px, 0 2px 2px 0, 0 1 1 0; > } > .switch.check-box:focused:selected > .box { > -fx-background-color: > -fx-focus-color, > -fx-inner-border, > -fx-body-color, > linear-gradient(to bottom, derive(-fx-outer-border, -20%), > -fx-outer-border), > linear-gradient(to bottom, derive(-fx-default-button, -12%) 0%, > derive(-fx-default-button, -3%) 20%, derive(-fx-default-button, -1%) 50%); > -fx-background-insets: -0.2, 1, 2, 1 52 1 1, 1 53 1 1; > -fx-background-radius: 3px, 2px, 1px, 2px 0 0 2px, 1 0 0 1; > } > > *iOS 7 Style* > > > /******************************************************************************* > * > * > * iOS Style Switch > * > * > * > > ******************************************************************************/ > > .check-box > .box, > .check-box:focused > .box { > -fx-background-color: #e4e4e4, white; > -fx-background-insets: 0,1; > -fx-background-radius: 15.5,14.5; > -fx-padding: 1 1 2 1; > } > .check-box:selected > .box { > -fx-background-color: ios-green; > -fx-background-insets: 0; > -fx-background-radius: 15.5; > } > .check-box > .box > .mark { > -fx-background-radius: 14; > -fx-padding: 28 49 0 0; > -fx-background-insets: 0 21 0 0; > -fx-background-color: white !important; > -fx-shape: null; > -fx-effect: dropshadow(gaussian , rgba(0, 0, 0, 0.2), 4, 0 , 0, 3); > } > .check-box:selected > .box > .mark { > -fx-background-insets: 0 0 0 21; > } > .check-box:focused > .box > .mark { > -fx-background-color: ios-blue, white !important; > -fx-background-insets: 0 21 0 0, 1 22 1 1; > } > .check-box:focused:selected > .box > .mark { > -fx-background-insets: 0 0 0 21, 1 1 1 22; > } > .check-box:indeterminate > .box { > -fx-padding: 0; > } > .check-box:indeterminate > .box > .mark { > -fx-shape: "M0,0H10V2H0Z"; > -fx-scale-shape: false; > -fx-padding: 0.666667em; /* 16x16 = 8+8 */ > } > > On Dec 4, 2013, at 1:16 PM, Pedro Duque Vieira < > pedro.duquevieira at gmail.com> wrote: > > Hi, > > I'm trying to create a new control to be used by other developers. It is > know as "Toggle Switch". > You can see this control in android: > http://ankri.de/switch-button-for-android-2-3-gingerbread/ in iOS: > http://iosguides.net/ios-menus-comparison/ (search for "Toggle Switch") > and > on Windows 8: > > http://www.c-sharpcorner.com/UploadFile/83f858/manage-the-windows-8-sync-feature/ > (below > "Step 2"). > > My approach was to subclass ButtonBase which is itself a subclass of > Labeled. The problem here is that Labeled only accepts one label but the > Toggle Switch needs two: one for the "on" state and another for the "off". > > Any ideas on how to best approach this problem? > > Thanks in advance, regards, > > -- > Pedro Duque Vieira > > > > -- Pedro Duque Vieira From hang.vo at oracle.com Wed Dec 4 17:03:09 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 05 Dec 2013 01:03:09 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Fix for RT-34637 Ensemble8 fails to reference subclass vs. class Message-ID: <20131205010329.762A462A81@hg.openjdk.java.net> Changeset: ff662670c9a4 Author: Alexander Kouznetsov Date: 2013-12-04 16:54 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/ff662670c9a4 Ensemble8: Fix for RT-34637 Ensemble8 fails to reference subclass vs. class ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/Description.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SamplePage.java ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java From jonathan.giles at oracle.com Wed Dec 4 17:11:38 2013 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Thu, 05 Dec 2013 14:11:38 +1300 Subject: Creating a type of toggle with two labels.. In-Reply-To: References: <529FA11B.7070608@oracle.com> Message-ID: <529FD2CA.10000@oracle.com> It's a toss-up between minimising duplicated code or having to bend API and implementation to your will (and end up with API you don't necessarily want in the process). Very rarely would I suggest extending a control - only when the API matches perfectly with what you're doing, and then that really means all you're doing is a custom skin anyway. More often than not it makes more sense to follow the famous advice of preferring composition over inheritance, and when that fails just bite the bullet and roll your own using the base Control API (if you want a reusable and skinnable / stylable control) or Region (if you don't need to be skinnable). -- Jonathan On 5/12/2013 11:05 a.m., Pedro Duque Vieira wrote: > OK, sounds reasonable. Too bad about the code duplication that will > need to take place. > > Thanks Jonathan and thanks for the link. > > Regards, > > > On Wed, Dec 4, 2013 at 9:39 PM, Jonathan Giles > > wrote: > > It is likely significantly easier to simply roll your own control and > not try to coerce ButtonBase to support two labels. > > For what it is worth, Paru and I talked about precisely this > control at > JavaOne 2012, which you can watch on YouTube here: > http://www.youtube.com/watch?v=ryUTSrGGnvo&list=PLKCk3OyNwIzvw-zzCMJ3xq5SgxL961IFE&index=38 > > -- Jonathan > > On 5/12/2013 10:16 a.m., Pedro Duque Vieira wrote: > > Hi, > > > > I'm trying to create a new control to be used by other > developers. It is > > know as "Toggle Switch". > > You can see this control in android: > > http://ankri.de/switch-button-for-android-2-3-gingerbread/ in iOS: > > http://iosguides.net/ios-menus-comparison/ (search for "Toggle > Switch") and > > on Windows 8: > > > http://www.c-sharpcorner.com/UploadFile/83f858/manage-the-windows-8-sync-feature/ > > (below > > "Step 2"). > > > > My approach was to subclass ButtonBase which is itself a subclass of > > Labeled. The problem here is that Labeled only accepts one label > but the > > Toggle Switch needs two: one for the "on" state and another for > the "off". > > > > Any ideas on how to best approach this problem? > > > > Thanks in advance, regards, > > > > > > > -- > Pedro Duque Vieira From hang.vo at oracle.com Wed Dec 4 17:17:37 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 05 Dec 2013 01:17:37 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34706: IOS: build failure due to incorrect classpath for javah Message-ID: <20131205011752.7B56462A82@hg.openjdk.java.net> Changeset: 08e838ff903e Author: Felipe Heidrich Date: 2013-12-04 17:16 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/08e838ff903e RT-34706: IOS: build failure due to incorrect classpath for javah Reviewed-by: Kevin ! buildSrc/ios.gradle From John_Smith at symantec.com Wed Dec 4 18:55:04 2013 From: John_Smith at symantec.com (John Smith) Date: Wed, 4 Dec 2013 18:55:04 -0800 Subject: Creating a type of toggle with two labels.. In-Reply-To: <529FD2CA.10000@oracle.com> References: <529FA11B.7070608@oracle.com> <529FD2CA.10000@oracle.com> Message-ID: <411E73D23DEC4C46BA48F2B6D8BF3D22168D72D3EA@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> In the past (JavaFX 2.2-), I've recommended very strongly against constructing custom controls because: a. For many applications it's more complicated than needed (e.g. custom controls are usually best for reusable libraries but not application code). b. The public API and documentation to define custom controls wasn't really there. For (b), On the documentation side, there is now stuff available at https://wiki.openjdk.java.net/display/OpenJFX/Controls. On the public API side there is now a more complete public API to support custom controls in Java 8. There are lots of great open source demos of how to create controls in the openjfx source base itself. Many times in application code, simple composition of existing controls via layout managers will continue to be the most appropriate way to build an application. But there are times when defining a custom control makes more sense (e.g. to take advantage of the design patterns and functionality offered by the control API or to neatly define a reusable component). I know the Behaviour API stuff is currently still private API, but if the Behaviour API is avoided, would you now advise writing custom controls in JavaFX 8? If so, would it only be when you are contributing controls to a reusable library like jfxtras or controlsfx, or would you also recommend creating custom controls for use in general application code? Thanks, John -----Original Message----- From: openjfx-dev-bounces at openjdk.java.net [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Jonathan Giles Sent: Wednesday, December 04, 2013 5:12 PM To: Pedro Duque Vieira Cc: OpenJFX Mailing List Subject: Re: Creating a type of toggle with two labels.. It's a toss-up between minimising duplicated code or having to bend API and implementation to your will (and end up with API you don't necessarily want in the process). Very rarely would I suggest extending a control - only when the API matches perfectly with what you're doing, and then that really means all you're doing is a custom skin anyway. More often than not it makes more sense to follow the famous advice of preferring composition over inheritance, and when that fails just bite the bullet and roll your own using the base Control API (if you want a reusable and skinnable / stylable control) or Region (if you don't need to be skinnable). -- Jonathan On 5/12/2013 11:05 a.m., Pedro Duque Vieira wrote: > OK, sounds reasonable. Too bad about the code duplication that will > need to take place. > > Thanks Jonathan and thanks for the link. > > Regards, > > > On Wed, Dec 4, 2013 at 9:39 PM, Jonathan Giles > > wrote: > > It is likely significantly easier to simply roll your own control and > not try to coerce ButtonBase to support two labels. > > For what it is worth, Paru and I talked about precisely this > control at > JavaOne 2012, which you can watch on YouTube here: > > http://www.youtube.com/watch?v=ryUTSrGGnvo&list=PLKCk3OyNwIzvw-zzCMJ3x > q5SgxL961IFE&index=38 > > -- Jonathan > > On 5/12/2013 10:16 a.m., Pedro Duque Vieira wrote: > > Hi, > > > > I'm trying to create a new control to be used by other > developers. It is > > know as "Toggle Switch". > > You can see this control in android: > > http://ankri.de/switch-button-for-android-2-3-gingerbread/ in iOS: > > http://iosguides.net/ios-menus-comparison/ (search for "Toggle > Switch") and > > on Windows 8: > > > http://www.c-sharpcorner.com/UploadFile/83f858/manage-the-windows-8-sync-feature/ > > (below > > "Step 2"). > > > > My approach was to subclass ButtonBase which is itself a subclass of > > Labeled. The problem here is that Labeled only accepts one label > but the > > Toggle Switch needs two: one for the "on" state and another for > the "off". > > > > Any ideas on how to best approach this problem? > > > > Thanks in advance, regards, > > > > > > > -- > Pedro Duque Vieira From jonathan.giles at oracle.com Wed Dec 4 19:03:17 2013 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Thu, 05 Dec 2013 16:03:17 +1300 Subject: Creating a type of toggle with two labels.. In-Reply-To: <411E73D23DEC4C46BA48F2B6D8BF3D22168D72D3EA@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> References: <529FA11B.7070608@oracle.com> <529FD2CA.10000@oracle.com> <411E73D23DEC4C46BA48F2B6D8BF3D22168D72D3EA@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> Message-ID: <529FECF5.3050508@oracle.com> My advice whenever I go to conferences or get asked this is that it only makes sense to use the full Controls API when you are planning to redistribute your control or you plan to otherwise reuse it in a number of applications internally where the style needs to be trivially customised via CSS. In other words, my advice has been much along the lines of what you said - extend Region or another layout container if you're just creating something custom in your own application. You gain nothing additional by extending Control in this case. And yes, Behavior is private API - that is a pain I know. The thing is, how behaviors are done now is just kind of smelly, and we haven't had the bandwidth to clean it up with all the other things we've had on our plate, which is why they remain private API. Also, there are differing opinions on how to progress this (personally I'm quite fond of replacing Behavior with an @Action style annotation in conjunction with input and action maps on the Control itself - which I protoyped into a patch attached to [1]). [1] https://javafx-jira.kenai.com/browse/RT-21598 -- Jonathan On 5/12/2013 3:55 p.m., John Smith wrote: > In the past (JavaFX 2.2-), I've recommended very strongly against constructing custom controls because: > > a. For many applications it's more complicated than needed (e.g. custom controls are usually best for reusable libraries but not application code). > b. The public API and documentation to define custom controls wasn't really there. > > For (b), > On the documentation side, there is now stuff available at https://wiki.openjdk.java.net/display/OpenJFX/Controls. > On the public API side there is now a more complete public API to support custom controls in Java 8. > There are lots of great open source demos of how to create controls in the openjfx source base itself. > > Many times in application code, simple composition of existing controls via layout managers will continue to be the most appropriate way to build an application. But there are times when defining a custom control makes more sense (e.g. to take advantage of the design patterns and functionality offered by the control API or to neatly define a reusable component). > > I know the Behaviour API stuff is currently still private API, but if the Behaviour API is avoided, would you now advise writing custom controls in JavaFX 8? > If so, would it only be when you are contributing controls to a reusable library like jfxtras or controlsfx, or would you also recommend creating custom controls for use in general application code? > > Thanks, > John > > -----Original Message----- > From: openjfx-dev-bounces at openjdk.java.net [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Jonathan Giles > Sent: Wednesday, December 04, 2013 5:12 PM > To: Pedro Duque Vieira > Cc: OpenJFX Mailing List > Subject: Re: Creating a type of toggle with two labels.. > > It's a toss-up between minimising duplicated code or having to bend API and implementation to your will (and end up with API you don't necessarily want in the process). > > Very rarely would I suggest extending a control - only when the API matches perfectly with what you're doing, and then that really means all you're doing is a custom skin anyway. More often than not it makes more sense to follow the famous advice of preferring composition over inheritance, and when that fails just bite the bullet and roll your own using the base Control API (if you want a reusable and skinnable / stylable control) or Region (if you don't need to be skinnable). > > -- Jonathan > > On 5/12/2013 11:05 a.m., Pedro Duque Vieira wrote: >> OK, sounds reasonable. Too bad about the code duplication that will >> need to take place. >> >> Thanks Jonathan and thanks for the link. >> >> Regards, >> >> >> On Wed, Dec 4, 2013 at 9:39 PM, Jonathan Giles >> > wrote: >> >> It is likely significantly easier to simply roll your own control and >> not try to coerce ButtonBase to support two labels. >> >> For what it is worth, Paru and I talked about precisely this >> control at >> JavaOne 2012, which you can watch on YouTube here: >> >> http://www.youtube.com/watch?v=ryUTSrGGnvo&list=PLKCk3OyNwIzvw-zzCMJ3x >> q5SgxL961IFE&index=38 >> >> -- Jonathan >> >> On 5/12/2013 10:16 a.m., Pedro Duque Vieira wrote: >> > Hi, >> > >> > I'm trying to create a new control to be used by other >> developers. It is >> > know as "Toggle Switch". >> > You can see this control in android: >> > http://ankri.de/switch-button-for-android-2-3-gingerbread/ in iOS: >> > http://iosguides.net/ios-menus-comparison/ (search for "Toggle >> Switch") and >> > on Windows 8: >> > >> http://www.c-sharpcorner.com/UploadFile/83f858/manage-the-windows-8-sync-feature/ >> > (below >> > "Step 2"). >> > >> > My approach was to subclass ButtonBase which is itself a subclass of >> > Labeled. The problem here is that Labeled only accepts one label >> but the >> > Toggle Switch needs two: one for the "on" state and another for >> the "off". >> > >> > Any ideas on how to best approach this problem? >> > >> > Thanks in advance, regards, >> > >> >> >> >> >> -- >> Pedro Duque Vieira From hang.vo at oracle.com Thu Dec 5 08:07:03 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 05 Dec 2013 16:07:03 +0000 Subject: hg: openjfx/8/master/rt: 76 new changesets Message-ID: <20131205162723.635FF62AC5@hg.openjdk.java.net> Changeset: 32281599fbc7 Author: mv157916 Date: 2013-12-02 11:13 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/32281599fbc7 RT-34627: Update the JDK 8 build number to b118 in rt/build.properties file in the JavaFX 8 Master forest. ! build.properties Changeset: e41a488d1673 Author: jgiles Date: 2013-11-27 13:40 +1300 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/e41a488d1673 RT-33989: TreeTable ctrl-pgUp doesn't follow the spec ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableViewBehaviorBase.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableViewSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableViewSkinBase.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeTableViewSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualFlow.java Changeset: 1c65b0107ff6 Author: jgiles Date: 2013-11-27 14:00 +1300 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/1c65b0107ff6 RT-34520: TreeTableView does not correctly render focus ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/modena/modena.css Changeset: 707c8ea0aea2 Author: jgiles Date: 2013-11-27 14:00 +1300 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/707c8ea0aea2 Small modena.css cleanup - remove caspian reference and cell spanning css that is unused. ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/modena/modena.css Changeset: 3c2b98a1509d Author: jgiles Date: 2013-11-27 14:40 +1300 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/3c2b98a1509d RT-26721: [TreeView] focus don't jump up in some cases of nodes collapsing. ! modules/controls/src/main/java/javafx/scene/control/MultipleSelectionModelBase.java ! modules/controls/src/main/java/javafx/scene/control/TreeTableView.java ! modules/controls/src/main/java/javafx/scene/control/TreeView.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeViewTest.java Changeset: 85ada295c274 Author: jgiles Date: 2013-11-27 15:05 +1300 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/85ada295c274 RT-34425: Space does not select tree item I expanded the scope of this bug to also fix the fact that no controls were setting the anchor point properly when space was pressed. ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/ListViewBehavior.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableViewBehaviorBase.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TreeViewBehavior.java ! modules/controls/src/test/java/javafx/scene/control/ListViewKeyInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TableViewKeyInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewKeyInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeViewKeyInputTest.java Changeset: f60f42c44074 Author: David Grieve Date: 2013-11-27 09:40 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/f60f42c44074 RT-34495: if font property is changing but not because a style is being applied, then reset the mirror property Reviewer: jgiles ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/LabeledText.java Changeset: 48c94a8519f0 Author: Assaf Yavnai Date: 2013-11-27 17:07 +0200 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/48c94a8519f0 [RT-34536] [Lens] [touch] when multitouch is enabled many exceptions are thrown Summary: The problem is related to RT-34481, when multi touch events are saved according to the temporary variable xs[],ys[], states[] and count we also save the release points resulting in the next event sequence bad calculation (there release points will be marked as MOVE or STILL points) resulting in the exceptions thrown Testeb-by: HelloSanity, HelloMultitouch, LinuxInputTest Reviewd-by: dblaukop ! modules/graphics/src/main/native-glass/lens/input/udev/udevInput.c Changeset: 7e4efbc8c84f Author: snorthov Date: 2013-11-27 12:53 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/7e4efbc8c84f IMPORT CHANGE ONLY: remove unused AWT imports ! modules/graphics/src/main/java/com/sun/javafx/tk/quantum/EmbeddedSceneDnD.java Changeset: df98a4ee3251 Author: snorthov Date: 2013-11-27 12:53 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/df98a4ee3251 IMPORT CHANGE ONLY: remove unused jdk8 imports ! modules/graphics/src/main/java/com/sun/javafx/css/StyleMap.java Changeset: 90b18f559c6c Author: Chien Yang Date: 2013-11-27 10:43 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/90b18f559c6c Fix to RT-29101: SubScene require unit test coverage Reviewed-by: kcr + apps/toys/FX8-3DFeatures/src/fx83dfeatures/SubSceneAndAntiAliasingTest.java ! modules/graphics/src/test/java/javafx/scene/SubSceneTest.java Changeset: bfc42a0f642d Author: ddhill Date: 2013-11-27 10:41 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/bfc42a0f642d RT-34083: rework building apps and installed samples Summary: reworking the apps build, supporting a more diverse apps tree (toys, performance...) Reviewed-by: kcr + apps/build.xml + apps/experiments/build.xml + apps/performance/build.xml + apps/samples/build.xml + apps/toys/Hello/build.xml + apps/toys/Hello/manifest.mf + apps/toys/Hello/nbproject/build-impl.xml + apps/toys/Hello/nbproject/genfiles.properties + apps/toys/Hello/nbproject/project.properties + apps/toys/Hello/nbproject/project.xml + apps/toys/build.xml ! build.gradle ! settings.gradle Changeset: 49fb719ca3ec Author: snorthov Date: 2013-11-27 15:53 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/49fb719ca3ec IMPORT CHANGE ONLY: remove unused w3c imports ! modules/web/src/ios/java/com/sun/javafx/scene/web/skin/HTMLEditorSkin.java Changeset: eff799920a90 Author: Alexander Kouznetsov Date: 2013-11-27 16:27 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/eff799920a90 Ensemble8: Fix for RT-31668 Ensemble8: public NB project.properties file should not include sdk jfxrt.jar file.reference ! apps/samples/Ensemble8/nbproject/genfiles.properties ! apps/samples/Ensemble8/nbproject/project.properties Changeset: 29f893fd656d Author: Alexander Kouznetsov Date: 2013-11-27 17:27 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/29f893fd656d Ensemble8: Fix for RT-34395 Ensemble8:Samples/Charts/,Data tabs will be added to new loaded demos ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/PlaygroundTabs.java Changeset: 481c4b8afc28 Author: Alexander Kouznetsov Date: 2013-11-27 17:33 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/481c4b8afc28 Ensemble8: Partial fix for RT-33959 Ensemble8 startup time is far from acceptable on embedded ! apps/samples/Ensemble8/src/app/java/ensemble/EnsembleApp.java Changeset: a131314cd734 Author: Alexander Kouznetsov Date: 2013-11-27 17:38 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/a131314cd734 Ensemble8: IndexSearcher.java code refactoring ! apps/samples/Ensemble8/src/app/java/ensemble/search/IndexSearcher.java Changeset: 52bc74cf2039 Author: Alexander Kouznetsov Date: 2013-11-27 17:47 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/52bc74cf2039 Ensemble8: PageBrowser code improvements ! apps/samples/Ensemble8/src/app/java/ensemble/PageBrowser.java ! apps/samples/Ensemble8/src/app/java/ensemble/PlatformFeatures.java Changeset: 47021dd0546e Author: Alexander Kouznetsov Date: 2013-11-27 17:51 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/47021dd0546e Ensemble8: Fixed Description.java to use the same source of configuration information. ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/Description.java Changeset: 07fb247caeb1 Author: Alexander Kouznetsov Date: 2013-11-27 18:15 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/07fb247caeb1 Ensemble8: Fix for RT-33822 Ensemble8: Category should not show up if there are no samples for that category ! apps/samples/Ensemble8/src/app/java/ensemble/SampleCategory.java ! apps/samples/Ensemble8/src/app/java/ensemble/util/FeatureChecker.java Changeset: 7bf5df173491 Author: Alexander Kouznetsov Date: 2013-11-27 18:46 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/7bf5df173491 Backout of changeset eff799920a90 Ensemble8: Fix for RT-31668 Ensemble8: public NB project.properties file should not include sdk jfxrt.jar file.reference ! apps/samples/Ensemble8/nbproject/genfiles.properties ! apps/samples/Ensemble8/nbproject/project.properties Changeset: f2b2903b65fa Author: vadim Date: 2013-11-28 14:47 +0400 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/f2b2903b65fa RT-33792: Implement specular lighting as specified for the PhongMaterial Reviewed-by: ckyang, kcr + apps/toys/FX8-3DFeatures/src/fx83dfeatures/Camera3D.java + apps/toys/FX8-3DFeatures/src/fx83dfeatures/CameraController.java ! apps/toys/FX8-3DFeatures/src/fx83dfeatures/SpecularColorTestApp.java + apps/toys/FX8-3DFeatures/src/resources/spec.png + apps/toys/FX8-3DFeatures/src/resources/spec_color.png ! build.gradle ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGPhongMaterial.java ! modules/graphics/src/main/java/com/sun/prism/PhongMaterial.java ! modules/graphics/src/main/java/com/sun/prism/d3d/D3DContext.java ! modules/graphics/src/main/java/com/sun/prism/d3d/D3DPhongMaterial.java ! modules/graphics/src/main/java/com/sun/prism/es2/ES2Context.java ! modules/graphics/src/main/java/com/sun/prism/es2/ES2PhongMaterial.java ! modules/graphics/src/main/java/com/sun/prism/es2/ES2PhongShader.java ! modules/graphics/src/main/java/com/sun/prism/es2/GLContext.java ! modules/graphics/src/main/java/javafx/scene/paint/PhongMaterial.java ! modules/graphics/src/main/native-prism-d3d/D3DContext.cc ! modules/graphics/src/main/native-prism-d3d/D3DMeshView.cc ! modules/graphics/src/main/native-prism-d3d/D3DPhongMaterial.cc ! modules/graphics/src/main/native-prism-d3d/D3DPhongMaterial.h ! modules/graphics/src/main/native-prism-d3d/D3DPhongShader.cc ! modules/graphics/src/main/native-prism-d3d/D3DPhongShader.h ! modules/graphics/src/main/native-prism-d3d/D3DPhongShaderGen.cc ! modules/graphics/src/main/native-prism-d3d/hlsl/Mtl1PS.hlsl ! modules/graphics/src/main/native-prism-d3d/hlsl/psConstants.h ! modules/graphics/src/main/native-prism-d3d/hlsl/psMath.h ! modules/graphics/src/main/native-prism-es2/GLContext.c ! modules/graphics/src/main/native-prism-es2/PrismES2Defs.h ! modules/graphics/src/main/resources/com/sun/prism/es2/glsl/main1Light.frag ! modules/graphics/src/main/resources/com/sun/prism/es2/glsl/main2Lights.frag ! modules/graphics/src/main/resources/com/sun/prism/es2/glsl/main3Lights.frag ! modules/graphics/src/main/resources/com/sun/prism/es2/glsl/specular_color.frag + modules/graphics/src/main/resources/com/sun/prism/es2/glsl/specular_mix.frag ! modules/graphics/src/main/resources/com/sun/prism/es2/glsl/specular_texture.frag Changeset: ee94f7e65ab3 Author: Daniel Blaukopf Date: 2013-11-28 12:52 +0200 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/ee94f7e65ab3 RT-33388 Not processing events from Touchscreen eGalax RT-34338 Lens: Chalkboard Electronics touch screen declared as ID_INPUT_TABLET is not recognised Reviewed-by: ddhill ! modules/graphics/src/main/java/com/sun/glass/ui/lens/LensTouchInputSupport.java ! modules/graphics/src/main/native-glass/lens/input/udev/udevInput.c Changeset: 22039a8a6341 Author: Daniel Blaukopf Date: 2013-11-28 13:08 +0200 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/22039a8a6341 RT-33706 DFB: clear screen when application exits Reviewed-by: ddhill Contributed-by: kselle ! modules/graphics/src/main/java/com/sun/glass/ui/lens/LensApplication.java ! modules/graphics/src/main/native-glass/lens/wm/screen/fbdevScreen.c Changeset: 8fd1e1131277 Author: azvegint Date: 2013-11-28 16:18 +0400 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/8fd1e1131277 RT-34196 [Controls, Menus] Gtk: JAVAFX default menu items are difficult to click Reviewed-by: anthony, msladecek ! modules/graphics/src/main/native-glass/gtk/glass_window.cpp ! modules/graphics/src/main/native-glass/gtk/glass_window.h Changeset: 4455a18dd959 Author: snorthov Date: 2013-11-28 10:41 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/4455a18dd959 ECLIPSE ONLY: fix .classpath ! apps/experiments/3DViewer/.classpath Changeset: b6fb603c0399 Author: Daniel Blaukopf Date: 2013-11-28 18:17 +0200 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/b6fb603c0399 RT-34519 Rendering errors in NGRegion on SW pipeline after fix for RT-34055 Summary: Revert the fix to RT-34055 Reviewed-by: snorthov ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGRegion.java Changeset: 1db4c60bfd5b Author: Anthony Petrov Date: 2013-11-28 22:52 +0400 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/1db4c60bfd5b RT-33881: Mac: System menu bar doesn't work at all with MacOS 10.9 Reviewed-by: snorthov, pchelko ! modules/graphics/src/main/native-glass/mac/GlassApplication.m Changeset: 7d1dfcec57c0 Author: snorthov Date: 2013-11-28 14:00 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/7d1dfcec57c0 IOS CHANGE ONLY: avoid exception when UUID algorithm not present ! modules/web/src/ios/java/javafx/scene/web/JS2JavaBridge.java Changeset: 022ac7cdcad1 Author: jgiles Date: 2013-11-28 15:12 +1300 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/022ac7cdcad1 RT-33613: TableView, TreeTableView moves focus to the wrong item in selection ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableViewBehaviorBase.java ! modules/controls/src/test/java/javafx/scene/control/TableViewKeyInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewKeyInputTest.java Changeset: 24dda4be6617 Author: jgiles Date: 2013-11-28 15:22 +1300 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/24dda4be6617 RT-34239: TableViewKeyInputTest tests fails in Linux ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableViewBehaviorBase.java Changeset: 24f2584b90eb Author: jgiles Date: 2013-11-29 08:16 +1300 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/24f2584b90eb RT-34573: Resetting ComboBox items makes the buttonCell display the invalid last selected item ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxListViewSkin.java ! modules/controls/src/test/java/javafx/scene/control/ComboBoxTest.java Changeset: 20724ec5e62e Author: jgiles Date: 2013-11-29 08:25 +1300 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/20724ec5e62e [TEST ONLY] Test for RT-34566, which happened to be fixed by RT-34573. ! modules/controls/src/test/java/javafx/scene/control/ComboBoxTest.java Changeset: cc089c819470 Author: Anthony Petrov Date: 2013-11-29 00:40 +0400 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/cc089c819470 RT-34579: Mac: OS X System MenuBar causes null pointer exception with a graphic that has a null Image. Summary: Added a null check ! modules/graphics/src/main/java/com/sun/javafx/tk/quantum/GlassSystemMenu.java Changeset: ff6e3fb3b1e8 Author: Martin Sladecek Date: 2013-11-29 08:17 +0100 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/ff6e3fb3b1e8 RT-34513 Regression: Popup in a popup behaves unexpectedly Reviewed by: jgiles ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ContextMenuContent.java Changeset: e5cbd989d3ea Author: Assaf Yavnai Date: 2013-12-01 12:14 +0200 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/e5cbd989d3ea RT-34477: [Lens] Command-line option to track input device raw events Summary: Adding lens.input.trace property to display device discovery and raw events Reviewed-by: dblaukop ! modules/graphics/src/main/java/com/sun/glass/ui/lens/LensTouchInputSupport.java ! modules/graphics/src/main/native-glass/lens/input/udev/udevInput.c Changeset: 2c0a00f8de4a Author: Felipe Heidrich Date: 2013-12-01 10:25 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/2c0a00f8de4a RT-31360: Gradle build system doesn't do partial build if native code is changed ! build.gradle ! buildSrc/src/main/groovy/com/sun/javafx/gradle/NativeCompileTask.groovy Changeset: 207d6d1ca9a3 Author: ddhill Date: 2013-12-01 17:01 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/207d6d1ca9a3 RT-34083: fixing rework building apps and installed samples for ARM. Disabling non-hosted APPS ! apps/build.xml ! build.gradle Changeset: 75fc25092d2e Author: Kirill Kirichenko Date: 2013-12-02 11:33 +0400 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/75fc25092d2e RT-27943: Update JavaFX DLL Files to include appropriate meta data (Media part) ! build.gradle ! buildSrc/win.gradle ! modules/media/src/main/native/gstreamer/projects/win/fxplugins/Makefile ! modules/media/src/main/native/gstreamer/projects/win/glib-lite/Makefile ! modules/media/src/main/native/gstreamer/projects/win/gstreamer-lite/Makefile ! modules/media/src/main/native/jfxmedia/projects/win/Makefile Changeset: 2e9dea67bf59 Author: Anthony Petrov Date: 2013-12-02 16:25 +0400 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/2e9dea67bf59 RT-34554: [Mac,Glass] Process does not finish closing main window Summary: Post a dummy event to wake up the event loop and detect that it needs to stop Reviewed-by: pchelko, snorthov ! modules/graphics/src/main/native-glass/mac/GlassApplication.m Changeset: 6554a4c7fa61 Author: Martin Sladecek Date: 2013-12-02 16:27 +0100 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/6554a4c7fa61 RT-34609 [FXML] b118 FXMLLoader rejects some FXML texts that was accepted before Reviewed by: ekrejcir, dgrieve ! modules/fxml/src/main/java/javafx/fxml/FXMLLoader.java Changeset: 9de431c29e4d Author: Kirill Kirichenko Date: 2013-12-02 15:38 +0400 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/9de431c29e4d fix build failure for Media ! modules/media/src/main/native/gstreamer/projects/win/fxplugins/Makefile ! modules/media/src/main/native/gstreamer/projects/win/glib-lite/Makefile ! modules/media/src/main/native/gstreamer/projects/win/gstreamer-lite/Makefile ! modules/media/src/main/native/jfxmedia/projects/win/Makefile Changeset: 2e2244003c8d Author: lepopov Date: 2013-12-02 19:42 +0400 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/2e2244003c8d Fixed web part of RT-27943 Update JavaFX DLL Files to include appropriate meta data (fix by PeterZ) ! build.gradle ! buildSrc/win.gradle ! modules/web/src/main/native/Source/WebCore/TargetJava.pri Changeset: 0c2128f43b08 Author: Daniel Blaukopf Date: 2013-12-02 18:02 +0200 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/0c2128f43b08 RT-34618 [Lens] Remove eglx11 from build Summary: The eglx11 port doesn't work, so we'll stop building it until we fix it Reviewed-by: ddhill ! buildSrc/armv6hf.gradle ! buildSrc/armv6sf.gradle ! buildSrc/x86egl.gradle Changeset: 7624bc25c49e Author: ddhill Date: 2013-12-02 12:43 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/7624bc25c49e RT-34623: [JAVADOC] fixing Ensemble8 javadoc warnings ! apps/samples/Ensemble8/src/app/java/ensemble/control/BendingPages.java ! apps/samples/Ensemble8/src/app/java/ensemble/control/BookBend.java ! apps/samples/Ensemble8/src/app/java/ensemble/control/Popover.java ! apps/samples/Ensemble8/src/app/java/ensemble/search/IndexSearcher.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/interpolator/InterpolatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timeline/TimelineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timelineevents/TimelineEventsApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/fadetransition/FadeTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/filltransition/FillTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/paralleltransition/ParallelTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/pathtransition/PathTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/pausetransition/PauseTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/rotatetransition/RotateTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/scaletransition/ScaleTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/sequentialtransition/SequentialTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/stroketransition/StrokeTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/translatetransition/TranslateTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/FireworksApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/audio/AudioAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/chart/AreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChart.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/stacked/StackedAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/audio/AudioBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/chart/BarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/horizontal/HorizontalBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/image/ImageBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/stacked/StackedBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bubble/chart/BubbleChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/category/CategoryLineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/chart/LineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/stock/StockLineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/pie/chart/PieChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/pie/drilldown/DrilldownPieChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/animated/LiveScatterChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/chart/ScatterChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/TaskApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/accordion/AccordionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/button/colorbutton/ColorButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/button/graphicbutton/GraphicButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/button/pillbutton/PillButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/checkbox/CheckBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/choicebox/ChoiceBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/colorpicker/ColorPickerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/datepicker/DatePickerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/hyperlink/HyperLinkApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/horizontallistview/HorizontalListViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/listviewcellfactory/ListViewCellFactoryApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/simplelistview/SimpleListViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/menu/MenuApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/pagination/PaginationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/progressbar/ProgressBarApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/progressindicator/ProgressIndicatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/radiobutton/RadioButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/scrollbar/ScrollBarApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/splitpane/hiddensplitpane/HiddenSplitPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/tabpane/TabPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tableview/TableViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/advancedlabel/AdvancedLabelApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/insettext/InsetTextApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/searchbox/SearchBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/simplelabel/SimpleLabelApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textfield/TextFieldApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextValidatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/togglebutton/ToggleButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/toolbar/styledtoolbar/StyledToolBarApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/toolbar/toolbar/ToolBarApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/TreeTableViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treeview/TreeViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/CalculatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/colorfulcircles/ColorfulCirclesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/DigitalClockApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelfApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/dropshadow/DropShadowApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/gaussianblur/GaussianBlurApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/innershadow/InnerShadowApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/reflection/ReflectionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/sepiatone/SepiaToneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imagecreation/ImageCreationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageoperator/ImageOperationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageproperties/ImagePropertiesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/color/ColorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/radialgradient/RadialGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/PuzzlePiecesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/arc/ArcApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/circle/CircleApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/cubiccurve/CubicCurveApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/ellipse/EllipseApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/line/LineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/path/PathApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polygon/PolygonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polyline/PolylineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/quadcurve/QuadCurveApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/rectangle/RectangleApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cube/CubeApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cubesystem/CubeSystemApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/simple3dbox/Simple3DBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/xylophone/XylophoneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/stringbinding/StringBindingApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/anchorpane/AnchorPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/borderpane/BorderPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/flowpane/FlowPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/gridpane/GridPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/hbox/HBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/stackpane/StackPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/tilepane/TilePaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/vbox/VBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/advancedmedia/AdvancedMediaApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/AlphaMediaPlayerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/audioclip/AudioClipApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/overlaymediaplayer/OverlayMediaPlayerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/streamingmediaplayer/StreamingMediaPlayerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/cursor/CursorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keyevent/KeyEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keystrokemotion/KeyStrokeMotionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/mouseevent/MouseEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/CustomNodeApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/nodeproperties/NodePropertiesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/advancedstage/AdvancedStageApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/stage/StageApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/text/bidi/BidiApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/text/textflow/TextFlowApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/webview/WebViewApp.java Changeset: 2c9f866b6e0f Author: ddhill Date: 2013-12-02 13:15 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/2c9f866b6e0f RT-34083: fixing sample apps building when Swing not present (Ensemble8, Modena, 3DViewer) Reviewed-by: kcr ! apps/experiments/3DViewer/build.xml ! apps/experiments/build.xml ! apps/samples/Ensemble8/build.xml ! build.gradle Changeset: 446894e7355b Author: Felipe Heidrich Date: 2013-12-02 11:31 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/446894e7355b RT-34557: [Quantum] JavaFX does not paint correctly when a window opens while the screen is locked Fix-by: Dmitry Markov Reviewed-by: Kevin Rushforth, Felipe Heidrich ! modules/graphics/src/main/java/com/sun/javafx/tk/quantum/PresentingPainter.java Changeset: cc2acc7f4a50 Author: prr Date: 2013-12-02 14:12 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/cc2acc7f4a50 RT-33113: Printing: HtmlEditor does not print anything Reviewed-by: kcr ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGNode.java Changeset: 7032137bf627 Author: flar Date: 2013-12-02 14:22 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/7032137bf627 Fix RT-34635: poolstats prints unnecessary warning messages ! modules/graphics/src/main/java/com/sun/prism/impl/ManagedResource.java Changeset: d84e05a1e95b Author: dmasada Date: 2013-12-02 14:39 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/d84e05a1e95b RT-34518 Ensemble8: adjust @embedded flags ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/stacked/StackedAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/chart/BarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/horizontal/HorizontalBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/image/ImageBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/stacked/StackedBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bubble/chart/BubbleChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/category/CategoryLineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/gaussianblur/GaussianBlurApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/innershadow/InnerShadowApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/reflection/ReflectionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/sepiatone/SepiaToneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageproperties/ImagePropertiesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/color/ColorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/stringbinding/StringBindingApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keyevent/KeyEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/nodeproperties/NodePropertiesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/text/textflow/TextFlowApp.java Changeset: 5e17e3810011 Author: flar Date: 2013-12-02 14:54 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/5e17e3810011 Fix RT-28691: Region corners wrong when corner radii overflow width or height Reviewed by: Felipe, David Grieve ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGRegion.java ! modules/graphics/src/main/java/javafx/scene/layout/Region.java Changeset: 1957002886ae Author: prr Date: 2013-12-02 15:16 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/1957002886ae RT-34523: Printing: When turning on button "style", the printed page is blank Reviewed-by: fheidric ! modules/graphics/src/main/java/com/sun/prism/impl/ps/CachingShapeRep.java Changeset: 8cea1f4c5315 Author: Alexander Kouznetsov Date: 2013-12-02 15:51 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/8cea1f4c5315 Ensemble8: Fix for RT-34623 Ensemble8 has javadoc errors ! apps/samples/Ensemble8/nbproject/project.properties ! apps/samples/Ensemble8/src/app/java/ensemble/control/PopoverTreeList.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java Changeset: 0e725e5d052d Author: Alexander Kouznetsov Date: 2013-12-02 19:11 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/0e725e5d052d Ensemble8: Fix for RT-34638 Ensemble8 XylophoneApp problems ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/xylophone/Cube.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/xylophone/XylophoneApp.java Changeset: 79f9671ee7dc Author: Alexander Kouznetsov Date: 2013-12-02 20:08 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/79f9671ee7dc Ensemble8: RT-34639 Fix 3D samples ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cube/Cube.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cube/CubeApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cubesystem/CubeSystemApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cubesystem/SphereSystemApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cubesystem/Xsphere.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/simple3dbox/Simple3DBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/xylophone/XylophoneApp.java Changeset: 2ae4bdb4a966 Author: Alexander Kouznetsov Date: 2013-12-02 20:18 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/2ae4bdb4a966 Ensemble8: Additional fix for RT-34639 Fix 3D samples ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cube/CubeApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cubesystem/SphereSystemApp.java Changeset: 24c413e47bd9 Author: kcr Date: 2013-12-02 21:03 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/24c413e47bd9 RT-30501: Gradle build script must read version and milestone info from build.properties ! build.gradle ! gradle.properties.template Changeset: 76c09d14cfbd Author: kcr Date: 2013-12-02 21:25 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/76c09d14cfbd Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cubesystem/CubeSystemApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/xylophone/Cube.java Changeset: 268fe91a74e0 Author: vadim Date: 2013-12-03 12:24 +0400 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/268fe91a74e0 RT-32880: D3D: Near clip appears to clip further (away from viewer) than the specified near value Summary: Adjust projection matrix for Direct3D Reviewed-by: ckyang, kcr ! apps/toys/FX8-3DFeatures/src/fx83dfeatures/NearAndFarClipTest.java ! modules/graphics/src/main/java/com/sun/prism/d3d/D3DContext.java ! tests/system/src/test/java/test3d/NearAndFarClipTest.java Changeset: 5da49a57a37f Author: Assaf Yavnai Date: 2013-12-03 12:38 +0200 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/5da49a57a37f RT-34624 [Lens] [Touch] Control not always respond to a tap Summary:Sometime when taping over a control it doesn't get selected, but rather just get the internal focus (painted in blue, for example) and another tap needed to actually select/activate it.sending a MouseEvent.MOVE before MouseEvent.PRESS solve this issue. Tested-with: HelloSanity, LensInputTest, Ensemble8 Reviewed-by: dblaukop ! modules/graphics/src/main/native-glass/lens/input/udev/udevInput.c ! modules/graphics/src/main/native-glass/lens/wm/LensWindowManager.c Changeset: 2698d86919d4 Author: Anthony Petrov Date: 2013-12-03 16:43 +0400 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/2698d86919d4 RT-34610: SwingNode: Ending a drag gesture should not generate an AWT mouse clicked event Summary: Skip unwanted MOUSE_CLICKED events Reviewed-by: ant, snorthov ! modules/swing/src/main/java/javafx/embed/swing/SwingNode.java Changeset: 4e5dd280c928 Author: Yves Joan Date: 2013-12-03 14:00 +0100 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/4e5dd280c928 Fix RT-34175 Open source SceneBuilder Reviewed-by: Kevin Rushforth ! .hgignore + apps/scenebuilder/SceneBuilderApp/build.xml + apps/scenebuilder/SceneBuilderApp/manifest.mf + apps/scenebuilder/SceneBuilderApp/nbproject/build-impl.xml + apps/scenebuilder/SceneBuilderApp/nbproject/genfiles.properties + apps/scenebuilder/SceneBuilderApp/nbproject/project.properties + apps/scenebuilder/SceneBuilderApp/nbproject/project.xml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/AppPlatform.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/CssPanelMenuController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindow.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindow.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindowController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/ResourceController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderApp.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderTest.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneStyleSheetMenuController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/ScenicViewStarter.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SplitController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/About.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/AboutWindowController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/about-footer.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/about-header.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/I18N.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp_ja.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp_zh_CN.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/IndexEntry.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanel.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanelController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/LeftCell.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/RightCell.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/DebugMenuController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBar.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBarController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBar.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBar.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBarController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanel.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanel.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanelController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePopupController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/warning.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Preferences.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Preferences.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesDialogController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/SBPreferences.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/PreviewWindowController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBar.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBar.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBarController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/selection-chevron.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog_css.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog_en.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog_fr.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog_i18n.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication_css.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication_en.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication_fr.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication_i18n.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication_css.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication_en.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication_fr.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication_i18n.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/DefaultContent.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/FxmlTemplates.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/TemplateDialog.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/TemplateDialogController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/warning.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/util/FileMutex.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/util/MessageBox.java + apps/scenebuilder/SceneBuilderKit/build.xml + apps/scenebuilder/SceneBuilderKit/manifest.mf + apps/scenebuilder/SceneBuilderKit/nbproject/build-impl.xml + apps/scenebuilder/SceneBuilderKit/nbproject/genfiles.properties + apps/scenebuilder/SceneBuilderKit/nbproject/project.properties + apps/scenebuilder/SceneBuilderKit/nbproject/project.xml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorPlatform.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/JobManager.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/DragController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/LiveUpdater.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/AbstractDragSource.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/DocumentDragSource.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/DragSourceShadow.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/ExternalDragSource.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/LibraryDragSource.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/AbstractDropTarget.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/AccessoryDropTarget.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/CollectionDropTarget.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/ContainerXYDropTarget.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/ContainerZDropTarget.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/RootDropTarget.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/I18N.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/SceneBuilderKit.properties + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/SceneBuilderKit_ja.properties + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/SceneBuilderKit_zh_CN.properties + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/ImageUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/ImageUtilsBase.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Accordion.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/AnchorPane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Arc.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/AreaChart.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/BarChart.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/BarChart3D.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/BorderPane-bottom.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/BorderPane-center.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/BorderPane-left.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/BorderPane-right.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/BorderPane-top.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/BorderPane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/BubbleChart.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Button.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Canvas.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/CategoryAxis.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Chart.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/CheckBox.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/CheckMenuItem.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ChoiceBox.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Circle.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ClipView.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ClosePath.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ColorPicker.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ComboBox.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ContextMenu.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/CubicCurve.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/CustomMenuItem.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/CustomNode.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Ellipse.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/FXDNode.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/FlowPane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Graphic.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/GridPane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Group.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/HBox.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/HTMLEditor.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Hyperlink.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ImageView.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Included.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Label.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Line.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/LineChart.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ListView.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/MediaView.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Menu.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/MenuBar.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/MenuButton.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/MenuItem.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/MissingIcon.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Pane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/PasswordField.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Path.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/PieChart.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/PieChart3D.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Polygon.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Polyline.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ProgressBar.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ProgressIndicator.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/QuadCurve.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/RadioButton.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/RadioMenuItem.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Rectangle.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Region.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/SVGPath.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ScatterChart.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ScrollBar-h.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ScrollBar-v.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ScrollPane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Separator-h.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Separator-v.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/SeparatorMenuItem.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Slider-h.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Slider-v.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/SplitMenuButton.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/SplitPane-h.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/SplitPane-v.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/StackPane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/StackedAreaChart.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/StackedBarChart.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Tab.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/TabPane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/TableColumn.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/TableView.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Text.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/TextArea.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/TextField.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/TilePane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/TitledPane.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ToggleButton.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/ToolBar.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/Tooltip.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/TreeView.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/VBox.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/nodeicons/WebView.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/ui/ProhibitedBadge.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/ui/WarningBadge.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/ui/WarningIcon.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/ArrangeZOrderJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/BatchJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/BatchModifyObjectJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/BringForwardJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/BringToFrontJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/CutSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DeleteGridSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DeleteObjectJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DeleteObjectSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DeleteSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DuplicateSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/FitToParentObjectJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/FitToParentSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/InsertAsAccessoryJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/InsertAsSubComponentAndRelocateJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/InsertAsSubComponentJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/Job.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/JobUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/ModifyFxControllerJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/ModifyFxIdJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/ModifyObjectJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/ModifySelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/PasteIntoJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/PasteJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/ReIndexObjectJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/RelocateNodeJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/SendBackwardJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/SendToBackJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/SetDocumentRootJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/TrimSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/UseComputedSizesObjectJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/UseComputedSizesSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/AddColumnConstraintsJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/AddColumnJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/AddRowConstraintsJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/AddRowJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/DeleteColumnJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/DeleteRowJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/GridPaneJobUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/MoveColumnJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/MoveRowJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/ReIndexColumnContentJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/ReIndexRowContentJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/RemoveColumnConstraintsJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/RemoveColumnContentJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/RemoveRowConstraintsJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/RemoveRowContentJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/AddPropertyJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/AddPropertyValueJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/ClearSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/CompositeJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/RemovePropertyJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/RemovePropertyValueJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/UpdateSelectionJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/AbstractWrapInContentJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/AbstractWrapInJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/AbstractWrapInSubComponentJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/FXOMObjectCourseComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/UnwrapJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInAnchorPaneJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInGridPaneJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInGroupJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInHBoxJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInPaneJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInScrollPaneJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInSplitPaneJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInStackPaneJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInTabPaneJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInTitledPaneJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInToolBarJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInVBoxJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapJobUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/messagelog/MessageLog.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/messagelog/MessageLogEntry.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/AbstractDecoration.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanel.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanel.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/HudWindow.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/HudWindow.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/HudWindowController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/WorkspaceController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/AbstractDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/AbstractNodeDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/GenericDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/GridPaneDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/HBoxDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/LineDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/SplitPaneDesignInfoX.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/SplitPaneDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TabDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TabOutline.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TabPaneDesignInfoX.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TabPaneDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TableColumnDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TableViewDesignInfoX.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TableViewDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TreeTableColumnDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TreeTableViewDesignInfoX.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TreeTableViewDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/VBoxDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneMosaic.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractCurveHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractGenericHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractNodeHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/LineHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/NodeHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/SplitPaneHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TabHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TableColumnHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TreeTableColumnHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/corner-handle-dim.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/corner-handle.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/side-handle-dim.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/side-handle.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/AbstractGenericPring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/AbstractPring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/NodePring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/TabPring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/TableColumnPring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/TreeTableColumnPring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/relocater/AbstractRelocater.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/relocater/AnchorPaneRelocater.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/relocater/PaneRelocater.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/AbstractResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/CanvasResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/ImageViewResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/LazyResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/RegionResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/SubSceneResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/WebViewResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/shape/ArcResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/shape/CircleResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/shape/EllipseResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/shape/RectangleResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/shape/TextResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/rudder/AbstractRudder.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/rudder/ResizeRudder.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/AbstractGenericTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/AbstractTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/HBoxTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/NodeTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/Quad.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/TabTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/TableColumnTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/TreeTableColumnTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/VBoxTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/AbstractGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/DragGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/SelectWithPringGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/ZoomGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/AbstractMouseDragGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/AbstractMouseGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/AdjustDividerGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/DebugMouseGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/DiscardGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/EditCurveGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeShadow.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/SelectAndMoveGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/SelectAndMoveInGridGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/SelectWithMarqueeGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/AbstractSegment.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/HorizontalLineComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/HorizontalLineIndex.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/HorizontalSegment.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/MovingGuideController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/MovingGuideRenderer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/ResizingGuideChrome.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/ResizingGuideController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/ResizingGuideRenderer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/SegmentIndex.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/VerticalLineComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/VerticalLineIndex.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/VerticalSegment.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/AbstractModeController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/EditModeController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/PickModeController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/BoundsUnion.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/BoundsUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/CardinalPoint.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/LineEquation.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/Picker.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/ScrollPaneBooster.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssContentMaker.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanel.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanel.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssValueConverter.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssValuePresenterFactory.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/SelectionPath.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/images/arrow-right.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/images/css-button-arrow.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/images/css-cursor.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/images/css-lookup-icon.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/images/follow.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/AbstractHierarchyPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyAnimationScheduler.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyDNDController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyItem.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyItemBorderPane.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyItemGraphic.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyTaskScheduler.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/ImageView.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableCell.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableRow.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableView.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableView.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableViewController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableViewUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeCell.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeView.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeView.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeViewController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeViewUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/Inspector.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/Inspector.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/InspectorPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/SubSection.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AnchorPaneConstraintsEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AnchorPaneConstraintsEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AutoSuggestEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BooleanEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BoundedDoubleEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BoundedDoubleEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ControllerClassEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/CursorEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/CursorEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DoubleAutoSuggestEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DoubleEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DoubleField.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/Editor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EditorItem.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EditorItemDelegate.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EditorUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EnumEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EventHandlerEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/FxIdEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/GenericEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/I18nStringEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/InlineListEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/InsetsEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/InsetsEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/IntegerAutoSuggestEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/IntegerEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/IntegerField.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/NumberField.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/PropertiesEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/PropertyEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/RotateEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/RotateEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StringAutoSuggestEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleClassEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleClassEditorItem.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleEditorItem.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StylesheetEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StylesheetEditorInitialBt.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StylesheetEditorItem.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/ap-constraint-h-off.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/ap-constraint-h-on.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/ap-constraint-v-off.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/ap-constraint-v-on.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/button-minus.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/button-plus.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/button-pulldown.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/cog.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/css-icon.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/rotate-handle.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/values-link-hover.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/values-link.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PaintPopupEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PopupEditor.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PopupEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PopupEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PopupEditorValidation.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/StringPopupEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/StringPopupEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportDialog.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportDialog.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportRow.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportRowComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportWindowController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryListCell.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryListItem.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanel.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanel.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractFxmlController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractFxmlPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractFxmlPopupController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractFxmlWindowController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractPopupController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractWindowController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/AbstractModalDialog.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/AbstractModalDialogM.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/AbstractModalDialogW.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/AlertDialog.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/AlertDialog.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/ErrorDialog.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/TextViewDialog.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/TextViewDialog.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/alert-question-mark.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/report/ErrorReport.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/report/ErrorReportEntry.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/search/Search.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/search/Search.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/search/SearchController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/search/images/search-clear.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/search/images/search-icon.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/AbstractSelectionGroup.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/GridSelectionGroup.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/ObjectSelectionGroup.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/Selection.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/util/ContextMenuController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/util/InlineEditController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMArchive.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMCollection.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMDocument.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMIndex.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMInstance.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMIntrinsic.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMLoader.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMNode.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMNodes.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMNormalizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMObject.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMProperty.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMPropertyC.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMPropertyT.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMRefresher.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMSaver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/GlueCursor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/ResourceKeyCollector.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/TransientIntrinsic.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/TransientNode.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/TransientObject.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/TransientProperty.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueAuxiliary.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueCharacters.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueDocument.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueElement.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueInstruction.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueLoader.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueNode.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueSerializer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueSnapshot.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/QualifiedName.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/XMLAttrComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/XMLBuffer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/glossary/BuiltinGlossary.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/glossary/ControllerClass.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/glossary/Glossary.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/glossary/JavaTokenizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/BuiltinLibrary.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/BuiltinSectionComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/Library.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/LibraryItem.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/LibraryItemNameComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Accordion.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/AmbientLight.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Arc.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/AreaChart.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/AreaChartNN.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/BarChart.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Box.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/BubbleChart.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Button.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Canvas.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/CheckBox.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/CheckMenuItem.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ChoiceBox.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Circle.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ComboBox.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ContextMenu.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/CubicCurve.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/CustomMenuItem.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Cylinder.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Ellipse.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/GridPane.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/HTMLEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Hyperlink.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ImageView.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Label.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Line.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/LineChart.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/LineChartNN.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/MediaView.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Menu.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/MenuBar.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/MenuButton.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/MenuItem.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/PointLight.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Polygon.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Polyline.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ProgressBar.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ProgressIndicator.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/QuadCurve.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/RadioButton.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/RadioMenuItem.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Rectangle.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SVGPath.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ScatterChart.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ScatterChartNN.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ScrollBarH.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ScrollBarV.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ScrollPane.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SeparatorH.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SeparatorMenuItem.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SeparatorV.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SliderH.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SliderV.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Sphere.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SplitMenuButton.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SplitPaneH.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SplitPaneV.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/StackedAreaChart.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/StackedBarChart.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SwingNode.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Tab.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/TabPane.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/TableColumn.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/TableView.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Text.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/TitledPane.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ToggleButton.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ToolBar.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Tooltip.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/TreeTableColumn.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/TreeTableView.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/WebView.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/user/LibraryFolderWatcher.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/user/UserLibrary.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/util/JarExplorer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/util/JarReport.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/util/JarReportEntry.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/Metadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/MetadataIntrospector.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/klass/ClassMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/klass/ComponentClassMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/klass/CustomComponentClassMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/klass/ValueClassMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/ComponentPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/PropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/ValuePropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ArrayPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/BooleanPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/BorderPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/BoundsPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/CallbackPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ColumnConstraintsPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ComplexPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/CursorPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/DoubleArrayPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/DoublePropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/EffectPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/EnumerationPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/EventHandlerPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/FontPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ImagePropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/InsetsPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/IntegerPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/KeyCombinationPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ListCellPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/MaterialPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/MeshPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ObjectPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/Point3DPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/Rectangle2DPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/RowConstraintsPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/SingleValuePropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/StringConverterPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/StringPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/TableViewResizePolicyPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/TextEncodablePropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/TransformPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/TreeTableViewResizePolicyPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/background/BackgroundFillPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/background/BackgroundImagePropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/background/BackgroundPositionPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/background/BackgroundPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/background/BackgroundSizePropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/background/CornerRadiiPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/BackgroundFillListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/BackgroundImageListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/ColorListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/ColumnConstraintsListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/DividerListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/DoubleListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/ListValuePropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/ObjectListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/RowConstraintsListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/StopListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/StringListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/TickMarkListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/TransformListPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/ColorPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/ImagePatternPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/LinearGradientPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/PaintPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/RadialGradientPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/StopPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/BeanPropertyIntrospector.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ClipboardDecoder.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ClipboardEncoder.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ColorEncoder.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/DesignHierarchyMask.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/DesignHierarchyPath.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/GradientEncoder.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/InspectorPath.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/InspectorPathComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/PropertyName.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/StaticPropertyIntrospector.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ValuePropertyMetadataClassComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ValuePropertyMetadataNameComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/CssInternal.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/Deprecation.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/JavaLanguage.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/MathUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/PaintEditor.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/PaintEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/PaintEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/PaintEditorController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/coloreditor/ColorEditor.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/coloreditor/ColorEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/coloreditor/ColorEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/gradienteditor/GradientEditor.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/gradienteditor/GradientEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/gradienteditor/GradientEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/gradienteditor/GradientEditorStop.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/gradienteditor/GradientEditorStop.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/gradienteditor/GradientEditorStop.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/images/chequers.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/images/stop-indicator.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/rotateeditor/RotateEditor.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/rotateeditor/RotateEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/rotateeditor/RotateEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/rotateeditor/rotate-handle.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/slidereditor/SliderEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/painteditor/slidereditor/SliderEditor.java Changeset: b9e39db1ecbe Author: Seeon Birger Date: 2013-12-03 17:05 +0200 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/b9e39db1ecbe RT-34632: Lens: VK preload. ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/FXVK.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/FXVKSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextInputControlSkin.java Changeset: 2367588a65e5 Author: Petr Pchelko Date: 2013-12-03 19:29 +0400 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/2367588a65e5 RT-34576: stage.getX()/getY() returns wrong result in applet mode Reviewed-by: anthony, snorthov ! modules/graphics/src/main/native-glass/mac/GlassWindow.m Changeset: 04577ad9b088 Author: snorthov Date: 2013-12-03 10:54 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/04577ad9b088 RT-34580: [iOS,Android] Remove JDK8 method references Summary: Recoding two methods will allow us to compile and run on RoboVM (with appropriate 7/8 compatibility library) Reviewed-by: davidg, kirill k ! modules/graphics/src/main/java/com/sun/javafx/css/StyleCacheEntry.java ! modules/media/src/main/java/com/sun/media/jfxmedia/locator/Locator.java Changeset: 9d4bcbe21a6f Author: kcr Date: 2013-12-03 09:37 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/9d4bcbe21a6f RT-33796: Need to remove compile and runtime dependency on BINARY_STUB Reviewed-by: ddhill, ckyang ! build.gradle ! gradle.properties.template Changeset: c3867686aaa4 Author: jgiles Date: 2013-12-04 07:53 +1300 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/c3867686aaa4 RT-34575: Ensemble8 does not work with a touch screen. Pushing on behalf of Martin Sladecek Reviewed-by: Rafi Tayar, jgiles ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualFlow.java Changeset: 5f608d7df7a5 Author: prr Date: 2013-12-03 12:22 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/5f608d7df7a5 RT-34111: Scaling problem when printing using Canon Inkjet iP100 Reviewed-by: jgodinez ! modules/graphics/src/main/java/com/sun/prism/j2d/print/J2DPrinterJob.java Changeset: 7dfe3ed4a7cb Author: Lisa.Selle at oracle.com Date: 2013-12-03 16:18 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/7dfe3ed4a7cb Backout the fix for RT-34575. Unfortunately this fix causes a regression in ScrollableListView - the scroll bars disappear after the first use and don't ever reappear. hg backout -r c3867686aaa4 Reviewed by kcr ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualFlow.java Changeset: fde6a94b9415 Author: Alexander Kouznetsov Date: 2013-12-03 13:30 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/fde6a94b9415 Ensemble8: Fix for RT-34659 Ensemble8: Empty search window when backspace last character in Search dialog ! apps/samples/Ensemble8/src/app/java/ensemble/SearchResultPopoverList.java ! apps/samples/Ensemble8/src/app/java/ensemble/control/Popover.java ! apps/samples/Ensemble8/src/app/resources/ensemble/EnsembleStylesCommon.css Changeset: a775ec27c8a4 Author: snorthov Date: 2013-12-03 16:52 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/a775ec27c8a4 ECLIPSE ONLY: fix .classpath files ! .classpath ! modules/builders/.classpath ! modules/controls/.classpath ! modules/graphics/.classpath ! modules/web/.classpath Changeset: b2c1717cfabe Author: David Grieve Date: 2013-12-03 17:29 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/b2c1717cfabe [DOCS-ONLY] RT-23722: various updates to css docs ! modules/graphics/src/main/docs/javafx/scene/doc-files/cssref.html ! modules/graphics/src/main/java/javafx/css/CssMetaData.java ! modules/graphics/src/main/java/javafx/css/PseudoClass.java ! modules/graphics/src/main/java/javafx/scene/layout/Region.java Changeset: 9dddbaefd1eb Author: flar Date: 2013-12-03 15:01 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/9dddbaefd1eb Fix RT-34663: Adjust prism texture pool limits for desktop and embedded Reviewed by: kcr ! buildSrc/armv6hf.gradle ! buildSrc/armv6sf.gradle ! modules/graphics/src/main/java/com/sun/prism/impl/PrismSettings.java Changeset: 7453c535525d Author: snorthov Date: 2013-12-03 18:18 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/7453c535525d IDEA CHANGE ONLY: Update .idea for web and media ! .idea/builders.iml ! .idea/media.iml ! .idea/rt-closed.iml ! .idea/rt.iml ! .idea/web.iml Changeset: b6b8fc7d6c18 Author: prr Date: 2013-12-03 15:32 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/b6b8fc7d6c18 RT-28195: Printing: printing of a canvas doesn't start Reviewed-by: flar, kcr ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGCanvas.java ! modules/graphics/src/main/java/com/sun/prism/ResourceFactory.java ! modules/graphics/src/main/java/com/sun/prism/d3d/D3DResourceFactory.java ! modules/graphics/src/main/java/com/sun/prism/es2/ES2ResourceFactory.java ! modules/graphics/src/main/java/com/sun/prism/j2d/J2DRTTexture.java ! modules/graphics/src/main/java/com/sun/prism/j2d/J2DResourceFactory.java ! modules/graphics/src/main/java/com/sun/prism/null3d/DummyResourceFactory.java ! modules/graphics/src/main/java/com/sun/prism/sw/SWRTTexture.java ! modules/graphics/src/main/java/com/sun/prism/sw/SWResourceFactory.java ! modules/graphics/src/test/java/com/sun/javafx/sg/prism/TestGraphics.java Changeset: 89ee519f5c1a Author: hudson Date: 2013-12-05 07:56 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/89ee519f5c1a Added tag 8.0-b119 for changeset b6b8fc7d6c18 ! .hgtags From hang.vo at oracle.com Thu Dec 5 09:03:21 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 05 Dec 2013 17:03:21 +0000 Subject: hg: openjfx/8/graphics/rt: 2 new changesets Message-ID: <20131205170403.2933962AC7@hg.openjdk.java.net> Changeset: 89ee519f5c1a Author: hudson Date: 2013-12-05 07:56 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/89ee519f5c1a Added tag 8.0-b119 for changeset b6b8fc7d6c18 ! .hgtags Changeset: e3662305750a Author: kcr Date: 2013-12-05 08:49 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/e3662305750a Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt From David.Hill at Oracle.com Thu Dec 5 14:16:53 2013 From: David.Hill at Oracle.com (David Hill) Date: Thu, 05 Dec 2013 17:16:53 -0500 Subject: please review RT-31668 Message-ID: <52A0FB55.2070201@Oracle.com> https://javafx-jira.kenai.com/browse/RT-31668 Kevin, Alexander, please review: http://cr.openjdk.java.net/~ddhill/RT-31668/ -- David Hill Java Embedded Development Education: that which reveals to the wise, and conceals from the stupid, the vast limits of their knowledge. -- Mark Twain From hang.vo at oracle.com Thu Dec 5 14:32:46 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 05 Dec 2013 22:32:46 +0000 Subject: hg: openjfx/8/graphics/rt: 2 new changesets Message-ID: <20131205223332.A645262B01@hg.openjdk.java.net> Changeset: 25b4801c0ad6 Author: snorthov Date: 2013-12-05 17:16 -0500 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/25b4801c0ad6 FINALS ONLY: Add final's back to code compiles under jdk7 ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/MenuBarSkin.java ! modules/graphics/src/main/java/com/sun/glass/ui/gtk/GtkApplication.java ! modules/graphics/src/main/java/com/sun/javafx/tk/quantum/EmbeddedScene.java ! modules/graphics/src/main/java/com/sun/javafx/tk/quantum/GlassAppletWindow.java ! modules/graphics/src/main/java/javafx/scene/layout/FlowPane.java ! modules/graphics/src/main/java/javafx/scene/layout/GridPane.java ! modules/graphics/src/main/java/javafx/scene/layout/HBox.java ! modules/graphics/src/main/java/javafx/scene/layout/StackPane.java Changeset: 5c12192a7720 Author: snorthov Date: 2013-12-05 17:19 -0500 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/5c12192a7720 Enable graphicsn in forward/back buttons on iOS ! apps/samples/Ensemble8/src/app/java/ensemble/EnsembleApp.java From alexander.kouznetsov at oracle.com Thu Dec 5 15:18:29 2013 From: alexander.kouznetsov at oracle.com (Alexander Kouznetsov) Date: Thu, 05 Dec 2013 15:18:29 -0800 Subject: please review RT-31668 In-Reply-To: <52A0FB55.2070201@Oracle.com> References: <52A0FB55.2070201@Oracle.com> Message-ID: <52A109C5.7010408@oracle.com> Looks good to me if NetBeans 7.3.1 is happy as well. Thank you! Best regards, Alexander Kouznetsov (408) 276-0387 On 5 ??? 2013 14:16, David Hill wrote: > > https://javafx-jira.kenai.com/browse/RT-31668 > > Kevin, Alexander, > please review: http://cr.openjdk.java.net/~ddhill/RT-31668/ > > From chien.yang at oracle.com Thu Dec 5 17:02:55 2013 From: chien.yang at oracle.com (Chien Yang) Date: Thu, 05 Dec 2013 17:02:55 -0800 Subject: [Doc only] Code Review Request RT-30404: [FX3D] Need better documentation for the default PointLight Message-ID: <52A1223F.9000705@oracle.com> Hi Kevin, Please review this simple javadoc change: JIRA: https://javafx-jira.kenai.com/browse/RT-30404 Webrev: http://cr.openjdk.java.net/~ckyang/RT-30404/webrev.00/ Thanks, - Chien From hang.vo at oracle.com Thu Dec 5 23:05:47 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 06 Dec 2013 07:05:47 +0000 Subject: hg: openjfx/8/graphics/rt: [Doc only] Fix to RT-30404: [FX3D] Need better documentation for the default PointLight Message-ID: <20131206070616.7927062B1B@hg.openjdk.java.net> Changeset: f87309876fe2 Author: Chien Yang Date: 2013-12-05 22:47 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/f87309876fe2 [Doc only] Fix to RT-30404: [FX3D] Need better documentation for the default PointLight Reviewed-by: kcr ! modules/graphics/src/main/java/javafx/scene/PointLight.java ! modules/graphics/src/main/java/javafx/scene/Scene.java ! modules/graphics/src/main/java/javafx/scene/SubScene.java From martin.sladecek at oracle.com Fri Dec 6 03:33:15 2013 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Fri, 06 Dec 2013 12:33:15 +0100 Subject: Review Request: RT-34142 : GridPane.addRow/addColumn methods should account for colSpan/rowSpan values Message-ID: <52A1B5FB.1060805@oracle.com> Jonathan, please review: JIRA: https://javafx-jira.kenai.com/browse/RT-34142 webrev: http://cr.openjdk.java.net/~msladecek/rt-34142/webrev.00/ Thanks, -Martin From hang.vo at oracle.com Fri Dec 6 08:03:06 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 06 Dec 2013 16:03:06 +0000 Subject: hg: openjfx/8/graphics/rt: RT-31668: [SAMPLES] correcting reference to jfxrt.jar in shipping samples for NB Message-ID: <20131206160338.A881D62B3E@hg.openjdk.java.net> Changeset: cc52e2bbd227 Author: ddhill Date: 2013-12-06 10:50 -0500 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/cc52e2bbd227 RT-31668: [SAMPLES] correcting reference to jfxrt.jar in shipping samples for NB Reviewed-by: kcr ! apps/build.xml ! apps/experiments/3DViewer/nbproject/project.properties ! apps/experiments/Modena/nbproject/project.properties ! apps/samples/Ensemble8/nbproject/project.properties ! apps/toys/Hello/nbproject/project.properties ! build.gradle From hang.vo at oracle.com Fri Dec 6 08:17:42 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 06 Dec 2013 16:17:42 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34575 : Ensemble8 does not work with a touch screen Message-ID: <20131206161758.4849062B3F@hg.openjdk.java.net> Changeset: cf97e24de0c3 Author: Martin Sladecek Date: 2013-12-06 17:12 +0100 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/cf97e24de0c3 RT-34575 : Ensemble8 does not work with a touch screen Reviewed by: kselle ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualFlow.java From David.Hill at Oracle.com Fri Dec 6 09:14:16 2013 From: David.Hill at Oracle.com (David Hill) Date: Fri, 06 Dec 2013 12:14:16 -0500 Subject: webrev for moving a few toys to public toys Message-ID: <52A205E8.8060706@Oracle.com> These are some of the closed toys I use constantly, so am migrating them to public toys: http://cr.openjdk.java.net/~ddhill/RT-34081 jira: RT-34081 Included: HelloSanity, HelloWindowManager, HelloWindowAbuse Also included is a fix to the nb source path, and a few javadoc fixes. -- David Hill Java Embedded Development "Any fool can make a rule, and any fool will mind it." -- Henry David Thoreau (1817 - 1862) From hang.vo at oracle.com Fri Dec 6 12:17:41 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 06 Dec 2013 20:17:41 +0000 Subject: hg: openjfx/8/graphics/rt: [Doc only] Fix to RT-34292: Document importance of TriangleMesh order of elements Message-ID: <20131206201809.ACEDF62B4C@hg.openjdk.java.net> Changeset: a85547d0a3e8 Author: Chien Yang Date: 2013-12-06 12:14 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/a85547d0a3e8 [Doc only] Fix to RT-34292: Document importance of TriangleMesh order of elements Reviewed-by: kcr ! modules/graphics/src/main/java/javafx/scene/shape/TriangleMesh.java From chien.yang at oracle.com Fri Dec 6 12:29:25 2013 From: chien.yang at oracle.com (Chien Yang) Date: Fri, 06 Dec 2013 12:29:25 -0800 Subject: 8 post-commit review: [Doc only] RT-34292: Document importance of TriangleMesh order of elements Message-ID: <52A233A5.1020908@oracle.com> In case anyone is interested in this post commit javadoc change: (initial draft was reviewed by kcr) http://cr.openjdk.java.net/~ckyang/RT-34292/webrev.00/ Thanks, - Chien From hang.vo at oracle.com Fri Dec 6 14:32:48 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 06 Dec 2013 22:32:48 +0000 Subject: hg: openjfx/8/graphics/rt: [TOYS-ONLY] fix src-path for toys/Hello Message-ID: <20131206223308.2852A62B54@hg.openjdk.java.net> Changeset: 4ce648d40059 Author: ddhill Date: 2013-12-06 17:24 -0500 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/4ce648d40059 [TOYS-ONLY] fix src-path for toys/Hello ! apps/toys/Hello/nbproject/project.properties From hang.vo at oracle.com Fri Dec 6 15:32:47 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 06 Dec 2013 23:32:47 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Fix for RT-28783 login.css in FXML-LoginDemo contains wrong rgb() color definitions Message-ID: <20131206233303.AF11262B55@hg.openjdk.java.net> Changeset: 80fa1e0a12ed Author: Alexander Kouznetsov Date: 2013-12-06 15:17 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/80fa1e0a12ed Ensemble8: Fix for RT-28783 login.css in FXML-LoginDemo contains wrong rgb() color definitions ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Login.css From kevin.rushforth at oracle.com Fri Dec 6 15:52:23 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 06 Dec 2013 15:52:23 -0800 Subject: ANNOUNCE: New openjfx 8u-dev repositories for 8 update releases Message-ID: <52A26337.2070207@oracle.com> We have created new repositories for the 8 update releases as following. As with 8, the only repo you need to build OpenJFX is the "rt" repo. http://hg.openjdk.java.net/openjfx/8u-dev http://hg.openjdk.java.net/openjfx/8u-dev/rt http://hg.openjdk.java.net/openjfx/8u-dev/tests The first limited updated release will be 8u20. -- Kevin From hang.vo at oracle.com Fri Dec 6 16:03:19 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sat, 07 Dec 2013 00:03:19 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Fix for RT-34708 Ensemble8: Some samples are not shown in search Message-ID: <20131207000337.2CFC062B56@hg.openjdk.java.net> Changeset: 32ba0287f199 Author: Alexander Kouznetsov Date: 2013-12-06 15:48 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/32ba0287f199 Ensemble8: Fix for RT-34708 Ensemble8: Some samples are not shown in search + apps/samples/Ensemble8/nbproject/configs/Build_index.properties ! apps/samples/Ensemble8/src/app/java/ensemble/search/IndexSearcher.java ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/EnsembleCompiletimeMain.java - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdt - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdx - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fnm - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.frq - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.nrm - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.prx - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tii - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tis + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fdt + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fdx + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fnm + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.frq + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.nrm + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.prx + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.tii + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.tis ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/listAll.txt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments.gen - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_1 + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_3 From hang.vo at oracle.com Fri Dec 6 16:47:42 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sat, 07 Dec 2013 00:47:42 +0000 Subject: hg: openjfx/8/graphics/rt: Part of a multi-part fix to RT-26385: Finish javadoc for FX 8 3D API Message-ID: <20131207004802.9241962B57@hg.openjdk.java.net> Changeset: 7d702464f5be Author: Chien Yang Date: 2013-12-06 16:37 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/7d702464f5be Part of a multi-part fix to RT-26385: Finish javadoc for FX 8 3D API Post commit reviewer: kcr ! modules/graphics/src/main/java/javafx/scene/SubScene.java From hang.vo at oracle.com Fri Dec 6 21:32:47 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sat, 07 Dec 2013 05:32:47 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Fix for RT-34709 Ensemble8: FAILED TO PARSE DOCS PAGE SO IGNORED Message-ID: <20131207053308.27FAC62B5E@hg.openjdk.java.net> Changeset: f681d1deaab6 Author: Alexander Kouznetsov Date: 2013-12-06 21:27 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/f681d1deaab6 Ensemble8: Fix for RT-34709 Ensemble8: FAILED TO PARSE DOCS PAGE SO IGNORED ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/BuildEnsembleSearchIndex.java ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/DocumentationIndexer.java From hang.vo at oracle.com Fri Dec 6 21:48:26 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sat, 07 Dec 2013 05:48:26 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Fix for RT-34669 Message-ID: <20131207054841.93A5C62B5F@hg.openjdk.java.net> Changeset: dce15a0f5a92 Author: Alexander Kouznetsov Date: 2013-12-06 21:35 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/dce15a0f5a92 Ensemble8: Fix for RT-34669 ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/EnsembleCompiletimeMain.java From hang.vo at oracle.com Fri Dec 6 22:18:28 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sat, 07 Dec 2013 06:18:28 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Fix for RT-34707 Ensemble8: Related Samples are not shown for docs found through search Message-ID: <20131207061845.C9E9B62B60@hg.openjdk.java.net> Changeset: c1372e71e4c8 Author: Alexander Kouznetsov Date: 2013-12-06 22:02 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/c1372e71e4c8 Ensemble8: Fix for RT-34707 Ensemble8: Related Samples are not shown for docs found through search ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fdt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fdx ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.frq ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.nrm ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.prx ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.tii ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.tis ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/listAll.txt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_3 From alexander.zvegintsev at oracle.com Sat Dec 7 03:23:37 2013 From: alexander.zvegintsev at oracle.com (Alexander Zvegintsev) Date: Sat, 07 Dec 2013 15:23:37 +0400 Subject: [8] Review request for RT-34750 [TextField, PasswordField, TextArea, Linux] selected text is removed on focus leaving Message-ID: <52A30539.5070006@oracle.com> Hello Anthony, Please review fix for https://javafx-jira.kenai.com/browse/RT-34750 -- Thanks, Alexander. From kevin.rushforth at oracle.com Sat Dec 7 09:41:55 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Sat, 07 Dec 2013 09:41:55 -0800 Subject: 8 review request: RT-34389: [doc] cssref.html copyright is incorrect Message-ID: <52A35DE3.9020503@oracle.com> David, Please review the following: https://javafx-jira.kenai.com/browse/RT-34389 Tom: can you make sure that the output is what you expect? Thanks. -- Kevin From tom.schindl at bestsolution.at Sat Dec 7 10:33:41 2013 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Sat, 07 Dec 2013 19:33:41 +0100 Subject: 8 review request: RT-34389: [doc] cssref.html copyright is incorrect In-Reply-To: <52A35DE3.9020503@oracle.com> References: <52A35DE3.9020503@oracle.com> Message-ID: <52A36A05.7080405@bestsolution.at> Hi Kevin, I checked the file at http://cr.openjdk.java.net/~kcr/RT-34389/javafx-samples-8.0.0-ea/src/Ensemble8/cssref/cssref.html and this is what I would expect to get! Tom On 07.12.13 18:41, Kevin Rushforth wrote: > David, > > Please review the following: > https://javafx-jira.kenai.com/browse/RT-34389 > > Tom: can you make sure that the output is what you expect? > > Thanks. > > -- Kevin > From kevin.rushforth at oracle.com Sat Dec 7 11:34:01 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Sat, 07 Dec 2013 11:34:01 -0800 Subject: 8 review request: RT-34389: [doc] cssref.html copyright is incorrect In-Reply-To: <52A36A05.7080405@bestsolution.at> References: <52A35DE3.9020503@oracle.com> <52A36A05.7080405@bestsolution.at> Message-ID: <52A37829.4050807@oracle.com> Thanks, Tom. Could you add this comment to the JIRA? -- Kevin Tom Schindl wrote: > Hi Kevin, > > I checked the file at > http://cr.openjdk.java.net/~kcr/RT-34389/javafx-samples-8.0.0-ea/src/Ensemble8/cssref/cssref.html > and this is what I would expect to get! > > Tom > > On 07.12.13 18:41, Kevin Rushforth wrote: > >> David, >> >> Please review the following: >> https://javafx-jira.kenai.com/browse/RT-34389 >> >> Tom: can you make sure that the output is what you expect? >> >> Thanks. >> >> -- Kevin >> >> > > From pedro.duquevieira at gmail.com Sun Dec 8 14:54:59 2013 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Sun, 8 Dec 2013 22:54:59 +0000 Subject: Look and feel mechanism? Message-ID: Hi, Is there any Look and Feel mechanism in place, like the one in Swing? That doesn't appear to exist.. Are there any plans to add one? You can only do so much with CSS... Thanks in advance, best regards, -- Pedro Duque Vieira From jonathan.giles at oracle.com Sun Dec 8 15:00:48 2013 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Mon, 09 Dec 2013 12:00:48 +1300 Subject: Look and feel mechanism? In-Reply-To: References: Message-ID: <52A4FA20.3040605@oracle.com> At present there are no plans to introduce any further API or functionality in this area, but if there is something you are wanting then you should file feature requests in Jira. -- Jonathan On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: > Hi, > > Is there any Look and Feel mechanism in place, like the one in Swing? That > doesn't appear to exist.. > > Are there any plans to add one? You can only do so much with CSS... > > Thanks in advance, best regards, > From jasper.potts at oracle.com Sun Dec 8 15:20:50 2013 From: jasper.potts at oracle.com (Jasper Potts) Date: Sun, 8 Dec 2013 15:20:50 -0800 Subject: Look and feel mechanism? In-Reply-To: <52A4FA20.3040605@oracle.com> References: <52A4FA20.3040605@oracle.com> Message-ID: <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> You can set skin classes from CSS so should be able to do everything you could with Swing and more. With just a CSS file and skins as and when needed. Jasper > On Dec 8, 2013, at 3:00 PM, Jonathan Giles wrote: > > At present there are no plans to introduce any further API or > functionality in this area, but if there is something you are wanting > then you should file feature requests in Jira. > > -- Jonathan > >> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >> Hi, >> >> Is there any Look and Feel mechanism in place, like the one in Swing? That >> doesn't appear to exist.. >> >> Are there any plans to add one? You can only do so much with CSS... >> >> Thanks in advance, best regards, > From steve at winnall.ch Sun Dec 8 16:15:13 2013 From: steve at winnall.ch (Stephen Winnall) Date: Mon, 9 Dec 2013 01:15:13 +0100 Subject: Look and feel mechanism? In-Reply-To: <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> Message-ID: <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> It may be possible to change the LOOK with CSS, but not the FEEL, which is where Java apps have traditionally failed big time. Some things that I don?t think can be changed with CSS: 1) texts 2) order of buttons 3) escape characters for shortcuts 4) menus 5) system-level stuff (double-clicking on files, dropping files on applications, ?) 6) filesystem conventions 7) ... I think FXML can fix some of these, but not all. So it seems to me that a LaF in JFX will consist of at least: - one or more CSS files - one or more FXML files - some plumbing at the system level It would be nice to have a set of proper LaFs for each major platform with an appropriate common API. Steve On 9 Dec 2013, at 00:20, Jasper Potts wrote: > You can set skin classes from CSS so should be able to do everything you could with Swing and more. With just a CSS file and skins as and when needed. > > Jasper > >> On Dec 8, 2013, at 3:00 PM, Jonathan Giles wrote: >> >> At present there are no plans to introduce any further API or >> functionality in this area, but if there is something you are wanting >> then you should file feature requests in Jira. >> >> -- Jonathan >> >>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >>> Hi, >>> >>> Is there any Look and Feel mechanism in place, like the one in Swing? That >>> doesn't appear to exist.. >>> >>> Are there any plans to add one? You can only do so much with CSS... >>> >>> Thanks in advance, best regards, >> From pedro.duquevieira at gmail.com Sun Dec 8 17:35:01 2013 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Mon, 9 Dec 2013 01:35:01 +0000 Subject: Look and feel mechanism? In-Reply-To: <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> Message-ID: Thanks! @Jasper: Yes, that's very interesting! Forgot that was possible to do in CSS. On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall wrote: > It may be possible to change the LOOK with CSS, but not the FEEL, which is > where Java apps have traditionally failed big time. > > Some things that I don?t think can be changed with CSS: > > 1) texts > 2) order of buttons > 3) escape characters for shortcuts > 4) menus > 5) system-level stuff (double-clicking on files, dropping files on > applications, ?) > 6) filesystem conventions > 7) ... > > I think FXML can fix some of these, but not all. So it seems to me that a > LaF in JFX will consist of at least: > > - one or more CSS files > - one or more FXML files > - some plumbing at the system level > > It would be nice to have a set of proper LaFs for each major platform with > an appropriate common API. > > Steve > > On 9 Dec 2013, at 00:20, Jasper Potts wrote: > > > You can set skin classes from CSS so should be able to do everything you > could with Swing and more. With just a CSS file and skins as and when > needed. > > > > Jasper > > > >> On Dec 8, 2013, at 3:00 PM, Jonathan Giles > wrote: > >> > >> At present there are no plans to introduce any further API or > >> functionality in this area, but if there is something you are wanting > >> then you should file feature requests in Jira. > >> > >> -- Jonathan > >> > >>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: > >>> Hi, > >>> > >>> Is there any Look and Feel mechanism in place, like the one in Swing? > That > >>> doesn't appear to exist.. > >>> > >>> Are there any plans to add one? You can only do so much with CSS... > >>> > >>> Thanks in advance, best regards, > >> > > -- Pedro Duque Vieira From felix.bembrick at gmail.com Sun Dec 8 18:18:52 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Mon, 9 Dec 2013 13:18:52 +1100 Subject: Look and feel mechanism? In-Reply-To: References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> Message-ID: @Stephen, you are absolutely right about this. But such an approach (and pretty much *any* approach) to "emulated" native look and feels is fraught with difficulties and complexities. Firstly, it will *never* be possible to completely emulate the native look and feel. And, even if the differences are subtle, there is the very real risk that the end user will have a very uneasy feeling using such a look and feel. At times it will even seem like an imposter. Secondly, you will be forever playing catchup as each new major release (and also even each minor update) changes one or more of the behaviours that you have so carefully emulated. The result is that for a while at least, your emulated look and feel is an even more obvious imposter with an even more uneasy experience for the user. Thirdly, building such emulated look and feels is a *lot* of work (much more than you would think). My reasoning is: why bother? Why not build a "JavaFX look and feel" (akin to something like Nimubs in Swing) that simply doesn't even try to look native? Then you know for sure your app looks and behaves identically on all devices and there is no hint of "imposter-ness". These days, many apps do not look 100% native and may have their own controls or look and feel in general. Why not channel all that massive effort in constructing an emulated native look and feel into simply making JavaFX better overall? Felix On 9 December 2013 12:35, Pedro Duque Vieira wrote: > Thanks! > > @Jasper: Yes, that's very interesting! Forgot that was possible to do in > CSS. > > > On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall wrote: > > > It may be possible to change the LOOK with CSS, but not the FEEL, which > is > > where Java apps have traditionally failed big time. > > > > Some things that I don?t think can be changed with CSS: > > > > 1) texts > > 2) order of buttons > > 3) escape characters for shortcuts > > 4) menus > > 5) system-level stuff (double-clicking on files, dropping files on > > applications, ?) > > 6) filesystem conventions > > 7) ... > > > > I think FXML can fix some of these, but not all. So it seems to me that a > > LaF in JFX will consist of at least: > > > > - one or more CSS files > > - one or more FXML files > > - some plumbing at the system level > > > > It would be nice to have a set of proper LaFs for each major platform > with > > an appropriate common API. > > > > Steve > > > > On 9 Dec 2013, at 00:20, Jasper Potts wrote: > > > > > You can set skin classes from CSS so should be able to do everything > you > > could with Swing and more. With just a CSS file and skins as and when > > needed. > > > > > > Jasper > > > > > >> On Dec 8, 2013, at 3:00 PM, Jonathan Giles > > > wrote: > > >> > > >> At present there are no plans to introduce any further API or > > >> functionality in this area, but if there is something you are wanting > > >> then you should file feature requests in Jira. > > >> > > >> -- Jonathan > > >> > > >>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: > > >>> Hi, > > >>> > > >>> Is there any Look and Feel mechanism in place, like the one in Swing? > > That > > >>> doesn't appear to exist.. > > >>> > > >>> Are there any plans to add one? You can only do so much with CSS... > > >>> > > >>> Thanks in advance, best regards, > > >> > > > > > > > -- > Pedro Duque Vieira > From swpalmer at gmail.com Sun Dec 8 21:10:34 2013 From: swpalmer at gmail.com (Scott Palmer) Date: Mon, 9 Dec 2013 00:10:34 -0500 Subject: Look and feel mechanism? In-Reply-To: References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> Message-ID: <7D3A6161-BFC3-40F5-9EEA-33074C6EDB47@gmail.com> > On Dec 8, 2013, at 9:18 PM, Felix Bembrick wrote: > > Firstly, it will *never* be possible to completely emulate the native look > and feel. Sure it is. Though it may never be practical, for many of the reasons you have given. > My reasoning is: why bother? Because it matters. As computer literate developers, we often don't realize what trips other people up. I get so frustrated with apps these days because they have become hard to use simply because the developers tried to define their own look and feel. For example, Chrome and Firefox... Or Microsoft Office... Where did the title bar go in chrome? Where have all the menus gone in Chrome, Firefox andOffice? I can find them, but when I have to play tech support over the phone to my parents these changes are massive problems. I ask my dad to move he window by dragging the title bar (please don't ask why he doesn't know to do this himself after decades of computer use) and he says "there is no title bar"... I the remember that yes, chrome did that... They got rid of a standard concept in the OS' windowing system and screed the end users. These apps became harder to use because of this "innovation" in the UI. Contrast this with applications on OS X where getting the UI right has always been an important priority for developers. Because adhering to the system look and feel has always been strongly encouraged the system is much easier to use. > These days, many apps do not look 100% native and may have their own > controls or look and feel in general. Yes, but to what end? They are now more difficult to use. > Why not channel all that massive > effort in constructing an emulated native look and feel into simply making > JavaFX better overall? But I agree here. The general look isn't the main issue.. E.g. little variations in color and minor tweaks to a few pixels here and there don't really matter. What does matter is when you change the order of buttons, like Okay & Cancel which have standard places that are different between Mac and Windows, or you move the About menu item from the Application menu on an OS X app to the help menu! because that is where you find it on Windows. Those things matter. Scott > > Felix > > > > On 9 December 2013 12:35, Pedro Duque Vieira wrote: > >> Thanks! >> >> @Jasper: Yes, that's very interesting! Forgot that was possible to do in >> CSS. >> >> >>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall wrote: >>> >>> It may be possible to change the LOOK with CSS, but not the FEEL, which >> is >>> where Java apps have traditionally failed big time. >>> >>> Some things that I don?t think can be changed with CSS: >>> >>> 1) texts >>> 2) order of buttons >>> 3) escape characters for shortcuts >>> 4) menus >>> 5) system-level stuff (double-clicking on files, dropping files on >>> applications, ?) >>> 6) filesystem conventions >>> 7) ... >>> >>> I think FXML can fix some of these, but not all. So it seems to me that a >>> LaF in JFX will consist of at least: >>> >>> - one or more CSS files >>> - one or more FXML files >>> - some plumbing at the system level >>> >>> It would be nice to have a set of proper LaFs for each major platform >> with >>> an appropriate common API. >>> >>> Steve >>> >>>> On 9 Dec 2013, at 00:20, Jasper Potts wrote: >>>> >>>> You can set skin classes from CSS so should be able to do everything >> you >>> could with Swing and more. With just a CSS file and skins as and when >>> needed. >>>> >>>> Jasper >>>> >>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles >> >>> wrote: >>>>> >>>>> At present there are no plans to introduce any further API or >>>>> functionality in this area, but if there is something you are wanting >>>>> then you should file feature requests in Jira. >>>>> >>>>> -- Jonathan >>>>> >>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >>>>>> Hi, >>>>>> >>>>>> Is there any Look and Feel mechanism in place, like the one in Swing? >>> That >>>>>> doesn't appear to exist.. >>>>>> >>>>>> Are there any plans to add one? You can only do so much with CSS... >>>>>> >>>>>> Thanks in advance, best regards, >> >> >> -- >> Pedro Duque Vieira >> From felix.bembrick at gmail.com Mon Dec 9 00:10:59 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Mon, 9 Dec 2013 19:10:59 +1100 Subject: Look and feel mechanism? In-Reply-To: <7D3A6161-BFC3-40F5-9EEA-33074C6EDB47@gmail.com> References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> <7D3A6161-BFC3-40F5-9EEA-33074C6EDB47@gmail.com> Message-ID: On 9 December 2013 16:10, Scott Palmer wrote: > > > > On Dec 8, 2013, at 9:18 PM, Felix Bembrick > wrote: > > > > > Firstly, it will *never* be possible to completely emulate the native > look > > and feel. > > Sure it is. Though it may never be practical, for many of the reasons you > have given. > > > My reasoning is: why bother? > > Because it matters. As computer literate developers, we often don't > realize what trips other people up. I get so frustrated with apps these > days because they have become hard to use simply because the developers > tried to define their own look and feel. For example, Chrome and > Firefox... Or Microsoft Office... > Where did the title bar go in chrome? > Where have all the menus gone in Chrome, Firefox andOffice? I can find > them, but when I have to play tech support over the phone to my parents > these changes are massive problems. I ask my dad to move he window by > dragging the title bar (please don't ask why he doesn't know to do this > himself after decades of computer use) and he says "there is no title > bar"... I the remember that yes, chrome did that... They got rid of a > standard concept in the OS' windowing system and screed the end users. > > These apps became harder to use because of this "innovation" in the UI. > > Contrast this with applications on OS X where getting the UI right has > always been an important priority for developers. Because adhering to the > system look and feel has always been strongly encouraged the system is much > easier to use. > > > These days, many apps do not look 100% native and may have their own > > controls or look and feel in general. > > Yes, but to what end? They are now more difficult to use. > > > Why not channel all that massive > > effort in constructing an emulated native look and feel into simply > making > > JavaFX better overall? > > But I agree here. The general look isn't the main issue.. E.g. little > variations in color and minor tweaks to a few pixels here and there don't > really matter. What does matter is when you change the order of buttons, > like Okay & Cancel which have standard places that are different between > Mac and Windows, or you move the About menu item from the Application menu > on an OS X app to the help menu! because that is where you find it on > Windows. Those things matter. > > > Scott > > > > > Felix > > > > > > > > On 9 December 2013 12:35, Pedro Duque Vieira < > pedro.duquevieira at gmail.com>wrote: > > > >> Thanks! > >> > >> @Jasper: Yes, that's very interesting! Forgot that was possible to do in > >> CSS. > >> > >> > >>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall > wrote: > >>> > >>> It may be possible to change the LOOK with CSS, but not the FEEL, which > >> is > >>> where Java apps have traditionally failed big time. > >>> > >>> Some things that I don?t think can be changed with CSS: > >>> > >>> 1) texts > >>> 2) order of buttons > >>> 3) escape characters for shortcuts > >>> 4) menus > >>> 5) system-level stuff (double-clicking on files, dropping files on > >>> applications, ?) > >>> 6) filesystem conventions > >>> 7) ... > >>> > >>> I think FXML can fix some of these, but not all. So it seems to me > that a > >>> LaF in JFX will consist of at least: > >>> > >>> - one or more CSS files > >>> - one or more FXML files > >>> - some plumbing at the system level > >>> > >>> It would be nice to have a set of proper LaFs for each major platform > >> with > >>> an appropriate common API. > >>> > >>> Steve > >>> > >>>> On 9 Dec 2013, at 00:20, Jasper Potts > wrote: > >>>> > >>>> You can set skin classes from CSS so should be able to do everything > >> you > >>> could with Swing and more. With just a CSS file and skins as and when > >>> needed. > >>>> > >>>> Jasper > >>>> > >>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles < > jonathan.giles at oracle.com > >>> > >>> wrote: > >>>>> > >>>>> At present there are no plans to introduce any further API or > >>>>> functionality in this area, but if there is something you are wanting > >>>>> then you should file feature requests in Jira. > >>>>> > >>>>> -- Jonathan > >>>>> > >>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: > >>>>>> Hi, > >>>>>> > >>>>>> Is there any Look and Feel mechanism in place, like the one in > Swing? > >>> That > >>>>>> doesn't appear to exist.. > >>>>>> > >>>>>> Are there any plans to add one? You can only do so much with CSS... > >>>>>> > >>>>>> Thanks in advance, best regards, > >> > >> > >> -- > >> Pedro Duque Vieira > >> > From felix.bembrick at gmail.com Mon Dec 9 01:24:24 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Mon, 9 Dec 2013 20:24:24 +1100 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? Message-ID: Spoiler: This is something I have become intensely passionate about so this is likely to be a long post... OK, so this (hijacked) thread started out as a discussion of options in JavaFX for implementing "Look and Feel". I think everyone agrees that even with CSS and skins, JavaFX lacks the built-in ability to define a true Look *and* Feel. Further to this, there has been discussion on Twitter and elsewhere regarding *native* Look and Feel and the merits of attempting such an animal with JavaFX. It is on this topic that I would like to add my 2 bits (as I am known to do)! I was going to use my blog http://justmy2bits.com but decided I would be much more likely to be able to engage fellow JavaFX developers in a positive, polite and respectful conversation here. First, anyone who may follow me on Twitter, in this forum or when I post in other forums (anyone?) will probably be a little bit confused as to where I actually stand on this issue. Well, this stems from the fact that I have been giving confusing (if not conflicting) input into various threads on this topic for quite a while. Why? Well, because until very recently, I myself was completely torn on the subject of native Look and Feel. In fact, I seemed to oscillate on an almost daily basis from thinking it's a great, achievable idea to dismissing such an idea on various grounds. I am swaying so much because I have so much riding on successful ports of JavaFX to iOS and Android and because those ports depend heavily on resolving this issue once and for all. Now I have had something of an epiphany and reached a conclusion. I now do not believe that pouring large (massive?) amounts of resources into the painstaking task of building a fully compliant, fully performant native Look and Feel is justifiable or worth the effort. And let's be clear about this: it is a *lot* of effort! But before I proceed I just want to say categorically how much I admire the thoroughly awesome work/efforts of the likes of Pedro DV, Claudine Zillmann, Hendrik Ebbers et. al. in (trying ever so hard) to bring native Look and Feel to various OS/platforms with JavaFX. I cannot put in words how much I am in awe of the commitment, the attention to detail, the technical prowess, the artistry and the drive of these fantastic people. Their work will undoubtedly be extremely useful to many developers worldwide. I want to make all that *perfectly clear* because now I am going to explain why I (probably) will not be one of those people and (hopefully) do it with the utmost respect for the aforementioned rock stars :-) Right, so back to the issue of whether to or not to implement or use a native Look and Feel. Some of the following comments have already been made by me on other networks and in other forums so apologies if it seems a bit repetitive to some. At first glance, the idea of a native Look and Feel seems almost like the proverbial Holy Grail. I mean, if such a thing were truly possible and viable, who wouldn't want one? You still have your single codebase across all platforms and you just just plug-in the particular native Look and Feel for your target platform and voila! World domination will surely soon follow! Well, not quite. It's a great idea but I am going out on a limb to claim that it has *never* worked. Ever! And by "work" I mean so that your "not-so-native" app looks and feels (which includes all aspects of behaviour, not just appearance) *exactly* like a true native app and *no one* could tell you that it *wasn't* a native app. Yes, I know there are masses now screaming at their monitors who will undoubtedly cite the numerous success stories of Swing apps or maybe even Qt or some other cross-platform UI toolkit and maybe my standards/criteria are harsher than others but I stand by my claim that this has *never ever* really, really, really worked. OK, so why not? Here's my first point: I postulate that such a noble goal is *not actually achievable*. It is not actually achievable for a number of reasons. It is not actually achievable because, in most cases, we do not have access to the code that implements the native controls on each OS so, at best, we are "guessing" when we try to emulate all aspects of their appearance and behaviour. Try as we may, we will never get *every* control exactly right and I firmly believe that anything that purports to be something else needs to be *identical*. It is not actually achievable because just as you feel you have reached an acceptable level of "compliance" (which I again wager is never 100%), the goal posts will move. That is, the OS vendor will release an update and even the minor ones can change either the appearance or behaviour of controls, sometimes in subtle ways, sometimes in not so subtle ways. Either way, there is then going to be a period of time where you are playing a futile game of catch-up and during that time your "native" controls will be surely exposed for the impostors they are. It is not actually achievable because the same control on one OS can look and feel/behave quite differently on another OS which leads to very poor levels of reuse. It is not actually achievable because many controls simply *can't be emulated in using Java/JavaFX *most likely because they have exclusive access to native system or OS calls that are not accessible to Java or because the expected levels of performance or "snappiness" cannot be achieved using Java by any means. Even with JNA or JNI you would be left scratching your head in many cases. And, it is not actually achievable because it's *simply too much work* to get anywhere near to perfection! We are talking *massive* amounts of effort and very few people have either the talent, the eye, the attention to detail or the patience to see such a project right through to the end where *all* controls are covered. The rock stars I mentioned earlier are the exceptions of course. There's clearly zero point in emulating *some* of the controls only; you need the *full set* or it's just not viable. Finally, and to look at it another way, what do we get even if some super-human delivers us a native Look and Feel for every possible platform? Well, a massive maintenance nightmare for a start! This super-human would basically be spending all their super time and using up all their super powers just keeping such libraries current. So, if you are still with me, *why bother*? Just consider if all those rock stars (and super heroes) concentrated all their super efforts into either improving the features, stability, performance or appearance of JavaFX itself? Just think what we could achieve! And on the *why bother* theme, why bother to devote all that time and effort, spend all those millions, tear out all that hair and hit all those roadblocks when the *very thing we are trying to achieve is already available*? Yes, that's right, if you really, really, really want to build a native app then why don't you just build a native app? There are numerous tools, languages, IDEs, toolchains and libraries that enable you to build awesome *true* native apps! I just don't think JavaFX is one of them :-) And it doesn't have to be one of those toolkits because JavaFX can be used to build an entirely different class of application and I now strongly believe that this is the kind of app we should be concentrating on. That class (or classes) of app is one that is not so heavily dependent on the native Look and Feel and doesn't need to be. There are probably hundreds of thousands of apps that are like this. They are everywhere and JavaFX is *perfect* for them! Scott Palmer has argued that this approach is not valid (and sorry Scott if am inaccurately paraphrasing you). He cites examples such as Chrome, Firefox and even MS Office as proof that this approach does not work. However, my response to that would be to say that just because these are examples of where the developers got it seriously wrong, they do not prove that this approach can't work and isn't working all over the marketplace. There is no need to develop crappy, mistake ridden software by using a toolkit such as JavaFX in a way that does not attempt to emulate the native Look and Feel and the fact that even big companies like Google *still* clearly get it horribly wrong doesn't imply that we *all* have to be so ineffective. Part of my newly-found aversion to emulated native Look and Feel comes from my many years of both developing and using Swing applications. Sure, I know there are *some* (handful?) successful Swing apps, most notably those developed with the NetBeans RCP, but in general Swing has failed to have any penetration into serious commercial software. Why? Well, there are several reasons (and a lot are due to Java itself) but, for me, I was never satisfied with the so-called native Look and Feel options that come with Swing. I have been (and still am) very critical of the Windows Look and Feel in Swing in particular because, even today, there is a vast gulf between an actual native Windows application and a Swing application with this Look and Feel. So much so that I still want to almost knock my monitor off the desk when I am using an application developed in this way. For me, this is not acceptable and such an application could never be released as a *serious commercial product*. And that's pretty much what this all boils down to: developing *serious commercial software*. If you are interested in developing something else then these lengthy comments (am I *still* going?) probably do not apply to you :-) So to summarise, I argue that it is not possible to develop serious commercial software using emulated Look and Feel in JavaFX or in *any* UItoolkit. I *strongly* recommend that we all work together to make JavaFX as good as it can be (which is absolutely awesome) by focusing on the core product, the API, the performance, the feature set, the stability *and* the supported platforms rather than throw good money after bad on a *wonderful* goal that ultimately can never be reached... Just my 2 bits, Felix P.S. I surely hope I have not offended any/all those who either disagree with the main points or who still believe that native Look and Feel is viable. I remind you all that I am on my knees bowing with respect to the rock stars I referred to and anyone else working on similar projects. Absolutely no offence is intended, I am merely expressing my (passionate) feelings on this subject. On 9 December 2013 19:10, Felix Bembrick wrote: > > > > On 9 December 2013 16:10, Scott Palmer wrote: > >> >> >> > On Dec 8, 2013, at 9:18 PM, Felix Bembrick >> wrote: >> >> > >> > Firstly, it will *never* be possible to completely emulate the native >> look >> > and feel. >> >> Sure it is. Though it may never be practical, for many of the reasons you >> have given. >> >> > My reasoning is: why bother? >> >> Because it matters. As computer literate developers, we often don't >> realize what trips other people up. I get so frustrated with apps these >> days because they have become hard to use simply because the developers >> tried to define their own look and feel. For example, Chrome and >> Firefox... Or Microsoft Office... >> Where did the title bar go in chrome? >> Where have all the menus gone in Chrome, Firefox andOffice? I can find >> them, but when I have to play tech support over the phone to my parents >> these changes are massive problems. I ask my dad to move he window by >> dragging the title bar (please don't ask why he doesn't know to do this >> himself after decades of computer use) and he says "there is no title >> bar"... I the remember that yes, chrome did that... They got rid of a >> standard concept in the OS' windowing system and screed the end users. >> >> These apps became harder to use because of this "innovation" in the UI. >> >> Contrast this with applications on OS X where getting the UI right has >> always been an important priority for developers. Because adhering to the >> system look and feel has always been strongly encouraged the system is much >> easier to use. >> >> > These days, many apps do not look 100% native and may have their own >> > controls or look and feel in general. >> >> Yes, but to what end? They are now more difficult to use. >> >> > Why not channel all that massive >> > effort in constructing an emulated native look and feel into simply >> making >> > JavaFX better overall? >> >> But I agree here. The general look isn't the main issue.. E.g. little >> variations in color and minor tweaks to a few pixels here and there don't >> really matter. What does matter is when you change the order of buttons, >> like Okay & Cancel which have standard places that are different between >> Mac and Windows, or you move the About menu item from the Application menu >> on an OS X app to the help menu! because that is where you find it on >> Windows. Those things matter. >> >> >> Scott >> >> > >> > Felix >> > >> > >> > >> > On 9 December 2013 12:35, Pedro Duque Vieira < >> pedro.duquevieira at gmail.com>wrote: >> > >> >> Thanks! >> >> >> >> @Jasper: Yes, that's very interesting! Forgot that was possible to do >> in >> >> CSS. >> >> >> >> >> >>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall >> wrote: >> >>> >> >>> It may be possible to change the LOOK with CSS, but not the FEEL, >> which >> >> is >> >>> where Java apps have traditionally failed big time. >> >>> >> >>> Some things that I don?t think can be changed with CSS: >> >>> >> >>> 1) texts >> >>> 2) order of buttons >> >>> 3) escape characters for shortcuts >> >>> 4) menus >> >>> 5) system-level stuff (double-clicking on files, dropping files on >> >>> applications, ?) >> >>> 6) filesystem conventions >> >>> 7) ... >> >>> >> >>> I think FXML can fix some of these, but not all. So it seems to me >> that a >> >>> LaF in JFX will consist of at least: >> >>> >> >>> - one or more CSS files >> >>> - one or more FXML files >> >>> - some plumbing at the system level >> >>> >> >>> It would be nice to have a set of proper LaFs for each major platform >> >> with >> >>> an appropriate common API. >> >>> >> >>> Steve >> >>> >> >>>> On 9 Dec 2013, at 00:20, Jasper Potts >> wrote: >> >>>> >> >>>> You can set skin classes from CSS so should be able to do everything >> >> you >> >>> could with Swing and more. With just a CSS file and skins as and when >> >>> needed. >> >>>> >> >>>> Jasper >> >>>> >> >>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles < >> jonathan.giles at oracle.com >> >>> >> >>> wrote: >> >>>>> >> >>>>> At present there are no plans to introduce any further API or >> >>>>> functionality in this area, but if there is something you are >> wanting >> >>>>> then you should file feature requests in Jira. >> >>>>> >> >>>>> -- Jonathan >> >>>>> >> >>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >> >>>>>> Hi, >> >>>>>> >> >>>>>> Is there any Look and Feel mechanism in place, like the one in >> Swing? >> >>> That >> >>>>>> doesn't appear to exist.. >> >>>>>> >> >>>>>> Are there any plans to add one? You can only do so much with CSS... >> >>>>>> >> >>>>>> Thanks in advance, best regards, >> >> >> >> >> >> -- >> >> Pedro Duque Vieira >> >> >> > > From hang.vo at oracle.com Mon Dec 9 01:32:54 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 09 Dec 2013 09:32:54 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Fix for RT-34712 Ensemble8: Bouncing Balls "View source" link doesn't work Message-ID: <20131209093315.7D15D62B83@hg.openjdk.java.net> Changeset: d0bca0f6ab5a Author: Alexander Kouznetsov Date: 2013-12-09 01:29 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/d0bca0f6ab5a Ensemble8: Fix for RT-34712 Ensemble8: Bouncing Balls "View source" link doesn't work ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SamplePageContent.java From felix.bembrick at gmail.com Mon Dec 9 01:36:21 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Mon, 9 Dec 2013 20:36:21 +1100 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: References: Message-ID: BTW, I was wanting to refer to a comment on this topic made my Pedro DV on Twitter today. Pedro has been doing stunningly good work on a Metro Look and Feel for JavaFX and, when questioned by me, stated that while he may attempt such a Look and Feel for Android, he wouldn't try to do one for iOS for reasons which he did not completely explain. Pedro, do you mind expanding on those thoughts here? When you referred to the numerous issue with iOS were you referring to iOS itself or to trying to emulate iOS with JavaFX? Thanks, Felix On 9 December 2013 20:24, Felix Bembrick wrote: > Spoiler: This is something I have become intensely passionate about so > this is likely to be a long post... > > OK, so this (hijacked) thread started out as a discussion of options in > JavaFX for implementing "Look and Feel". I think everyone agrees that > even with CSS and skins, JavaFX lacks the built-in ability to define a > true Look *and* Feel. Further to this, there has been discussion on > Twitter and elsewhere regarding *native* Look and Feel and the merits of > attempting such an animal with JavaFX. > > It is on this topic that I would like to add my 2 bits (as I am known to > do)! I was going to use my blog http://justmy2bits.com but decided I > would be much more likely to be able to engage fellow JavaFX developers > in a positive, polite and respectful conversation here. > > First, anyone who may follow me on Twitter, in this forum or when I post > in other forums (anyone?) will probably be a little bit confused as to > where I actually stand on this issue. Well, this stems from the fact that > I have been giving confusing (if not conflicting) input into various > threads on this topic for quite a while. > > Why? > > Well, because until very recently, I myself was completely torn on the > subject of native Look and Feel. In fact, I seemed to oscillate on an > almost daily basis from thinking it's a great, achievable idea to > dismissing such an idea on various grounds. I am swaying so much because I > have so much riding on successful ports of JavaFX to iOS and Android and > because those ports depend heavily on resolving this issue once and for all. > > Now I have had something of an epiphany and reached a conclusion. I now > do not believe that pouring large (massive?) amounts of resources into the > painstaking task of building a fully compliant, fully performant native > Look and Feel is justifiable or worth the effort. And let's be clear about > this: it is a *lot* of effort! > > But before I proceed I just want to say categorically how much I admire > the thoroughly awesome work/efforts of the likes of Pedro DV, Claudine > Zillmann, Hendrik Ebbers et. al. in (trying ever so hard) to bring native > Look and Feel to various OS/platforms with JavaFX. I cannot put in words > how much I am in awe of the commitment, the attention to detail, the > technical prowess, the artistry and the drive of these fantastic people. > Their work will undoubtedly be extremely useful to many developers > worldwide. > > I want to make all that *perfectly clear* because now I am going to > explain why I (probably) will not be one of those people and (hopefully) do > it with the utmost respect for the aforementioned rock stars :-) > > Right, so back to the issue of whether to or not to implement or use a > native Look and Feel. Some of the following comments have already been > made by me on other networks and in other forums so apologies if it seems a > bit repetitive to some. > > At first glance, the idea of a native Look and Feel seems almost like the > proverbial Holy Grail. I mean, if such a thing were truly possible and > viable, who wouldn't want one? You still have your single codebaseacross all platforms and you just just plug-in the particular native Look > and Feel for your target platform and voila! World domination will surely > soon follow! > > Well, not quite. It's a great idea but I am going out on a limb to claim > that it has *never* worked. Ever! And by "work" I mean so that your > "not-so-native" app looks and feels (which includes all aspects of > behaviour, not just appearance) *exactly* like a true native app and *no > one* could tell you that it *wasn't* a native app. > > Yes, I know there are masses now screaming at their monitors who will > undoubtedly cite the numerous success stories of Swing apps or maybe even > Qt or some other cross-platform UI toolkit and maybe my > standards/criteria are harsher than others but I stand by my claim that > this has *never ever* really, really, really worked. > > OK, so why not? > > Here's my first point: I postulate that such a noble goal is *not > actually achievable*. It is not actually achievable for a number of > reasons. > > It is not actually achievable because, in most cases, we do not have > access to the code that implements the native controls on each OS so, at > best, we are "guessing" when we try to emulate all aspects of their > appearance and behaviour. Try as we may, we will never get *every* control > exactly right and I firmly believe that anything that purports to be > something else needs to be *identical*. > > It is not actually achievable because just as you feel you have reached an > acceptable level of "compliance" (which I again wager is never 100%), the > goal posts will move. That is, the OS vendor will release an update and > even the minor ones can change either the appearance or behaviour of > controls, sometimes in subtle ways, sometimes in not so subtle ways. > Either way, there is then going to be a period of time where you are > playing a futile game of catch-up and during that time your "native" > controls will be surely exposed for the impostors they are. > > It is not actually achievable because the same control on one OS can look > and feel/behave quite differently on another OS which leads to very poor > levels of reuse. > > It is not actually achievable because many controls simply *can't be > emulated in using Java/JavaFX *most likely because they have exclusive > access to native system or OS calls that are not accessible to Java or > because the expected levels of performance or "snappiness" cannot be > achieved using Java by any means. Even with JNA or JNI you would be left > scratching your head in many cases. > > And, it is not actually achievable because it's *simply too much work* to > get anywhere near to perfection! We are talking *massive* amounts of > effort and very few people have either the talent, the eye, the attention > to detail or the patience to see such a project right through to the end > where *all* controls are covered. The rock stars I mentioned earlier are > the exceptions of course. There's clearly zero point in emulating *some* > of the controls only; you need the *full set* or it's just not viable. > > Finally, and to look at it another way, what do we get even if some > super-human delivers us a native Look and Feel for every possible platform? > Well, a massive maintenance nightmare for a start! This super-human would > basically be spending all their super time and using up all their super > powers just keeping such libraries current. > > So, if you are still with me, *why bother*? Just consider if all those > rock stars (and super heroes) concentrated all their super efforts into > either improving the features, stability, performance or appearance of > JavaFX itself? Just think what we could achieve! > > And on the *why bother* theme, why bother to devote all that time and > effort, spend all those millions, tear out all that hair and hit all those > roadblocks when the *very thing we are trying to achieve is already > available*? > > Yes, that's right, if you really, really, really want to build a native > app then why don't you just build a native app? There are numerous tools, > languages, IDEs, toolchains and libraries that enable you to build > awesome *true* native apps! I just don't think JavaFX is one of them :-) > > And it doesn't have to be one of those toolkits because JavaFX can be > used to build an entirely different class of application and I now strongly > believe that this is the kind of app we should be concentrating on. That > class (or classes) of app is one that is not so heavily dependent on the > native Look and Feel and doesn't need to be. There are probably hundreds > of thousands of apps that are like this. They are everywhere and JavaFXis *perfect* for them! > > Scott Palmer has argued that this approach is not valid (and sorry Scott > if am inaccurately paraphrasing you). He cites examples such as Chrome, > Firefox and even MS Office as proof that this approach does not work. > However, my response to that would be to say that just because these are > examples of where the developers got it seriously wrong, they do not prove > that this approach can't work and isn't working all over the marketplace. > > There is no need to develop crappy, mistake ridden software by using a > toolkit such as JavaFX in a way that does not attempt to emulate the > native Look and Feel and the fact that even big companies like Google > *still* clearly get it horribly wrong doesn't imply that we *all* have to > be so ineffective. > > Part of my newly-found aversion to emulated native Look and Feel comes > from my many years of both developing and using Swing applications. Sure, > I know there are *some* (handful?) successful Swing apps, most notably > those developed with the NetBeans RCP, but in general Swing has failed to > have any penetration into serious commercial software. Why? Well, there > are several reasons (and a lot are due to Java itself) but, for me, I was > never satisfied with the so-called native Look and Feel options that come > with Swing. I have been (and still am) very critical of the Windows Look > and Feel in Swing in particular because, even today, there is a vast gulf > between an actual native Windows application and a Swing application with > this Look and Feel. So much so that I still want to almost knock my > monitor off the desk when I am using an application developed in this way. > For me, this is not acceptable and such an application could never be > released as a *serious commercial product*. > > And that's pretty much what this all boils down to: developing *serious > commercial software*. > > If you are interested in developing something else then these lengthy > comments (am I *still* going?) probably do not apply to you :-) > > So to summarise, I argue that it is not possible to develop serious > commercial software using emulated Look and Feel in JavaFX or in *any* UItoolkit. I *strongly* recommend that we all work together to make > JavaFX as good as it can be (which is absolutely awesome) by focusing on > the core product, the API, the performance, the feature set, the stability > *and* the supported platforms rather than throw good money after bad on a > *wonderful* goal that ultimately can never be reached... > > Just my 2 bits, > > Felix > > P.S. I surely hope I have not offended any/all those who either disagree > with the main points or who still believe that native Look and Feel is > viable. I remind you all that I am on my knees bowing with respect to the > rock stars I referred to and anyone else working on similar projects. > Absolutely no offence is intended, I am merely expressing my (passionate) > feelings on this subject. > > > On 9 December 2013 19:10, Felix Bembrick wrote: > >> >> >> >> On 9 December 2013 16:10, Scott Palmer wrote: >> >>> >>> >>> > On Dec 8, 2013, at 9:18 PM, Felix Bembrick >>> wrote: >>> >>> > >>> > Firstly, it will *never* be possible to completely emulate the native >>> look >>> > and feel. >>> >>> Sure it is. Though it may never be practical, for many of the reasons >>> you have given. >>> >>> > My reasoning is: why bother? >>> >>> Because it matters. As computer literate developers, we often don't >>> realize what trips other people up. I get so frustrated with apps these >>> days because they have become hard to use simply because the developers >>> tried to define their own look and feel. For example, Chrome and >>> Firefox... Or Microsoft Office... >>> Where did the title bar go in chrome? >>> Where have all the menus gone in Chrome, Firefox andOffice? I can find >>> them, but when I have to play tech support over the phone to my parents >>> these changes are massive problems. I ask my dad to move he window by >>> dragging the title bar (please don't ask why he doesn't know to do this >>> himself after decades of computer use) and he says "there is no title >>> bar"... I the remember that yes, chrome did that... They got rid of a >>> standard concept in the OS' windowing system and screed the end users. >>> >>> These apps became harder to use because of this "innovation" in the UI. >>> >>> Contrast this with applications on OS X where getting the UI right has >>> always been an important priority for developers. Because adhering to the >>> system look and feel has always been strongly encouraged the system is much >>> easier to use. >>> >>> > These days, many apps do not look 100% native and may have their own >>> > controls or look and feel in general. >>> >>> Yes, but to what end? They are now more difficult to use. >>> >>> > Why not channel all that massive >>> > effort in constructing an emulated native look and feel into simply >>> making >>> > JavaFX better overall? >>> >>> But I agree here. The general look isn't the main issue.. E.g. little >>> variations in color and minor tweaks to a few pixels here and there don't >>> really matter. What does matter is when you change the order of buttons, >>> like Okay & Cancel which have standard places that are different between >>> Mac and Windows, or you move the About menu item from the Application menu >>> on an OS X app to the help menu! because that is where you find it on >>> Windows. Those things matter. >>> >>> >>> Scott >>> >>> > >>> > Felix >>> > >>> > >>> > >>> > On 9 December 2013 12:35, Pedro Duque Vieira < >>> pedro.duquevieira at gmail.com>wrote: >>> > >>> >> Thanks! >>> >> >>> >> @Jasper: Yes, that's very interesting! Forgot that was possible to do >>> in >>> >> CSS. >>> >> >>> >> >>> >>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall >>> wrote: >>> >>> >>> >>> It may be possible to change the LOOK with CSS, but not the FEEL, >>> which >>> >> is >>> >>> where Java apps have traditionally failed big time. >>> >>> >>> >>> Some things that I don?t think can be changed with CSS: >>> >>> >>> >>> 1) texts >>> >>> 2) order of buttons >>> >>> 3) escape characters for shortcuts >>> >>> 4) menus >>> >>> 5) system-level stuff (double-clicking on files, dropping files on >>> >>> applications, ?) >>> >>> 6) filesystem conventions >>> >>> 7) ... >>> >>> >>> >>> I think FXML can fix some of these, but not all. So it seems to me >>> that a >>> >>> LaF in JFX will consist of at least: >>> >>> >>> >>> - one or more CSS files >>> >>> - one or more FXML files >>> >>> - some plumbing at the system level >>> >>> >>> >>> It would be nice to have a set of proper LaFs for each major platform >>> >> with >>> >>> an appropriate common API. >>> >>> >>> >>> Steve >>> >>> >>> >>>> On 9 Dec 2013, at 00:20, Jasper Potts >>> wrote: >>> >>>> >>> >>>> You can set skin classes from CSS so should be able to do everything >>> >> you >>> >>> could with Swing and more. With just a CSS file and skins as and when >>> >>> needed. >>> >>>> >>> >>>> Jasper >>> >>>> >>> >>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles < >>> jonathan.giles at oracle.com >>> >>> >>> >>> wrote: >>> >>>>> >>> >>>>> At present there are no plans to introduce any further API or >>> >>>>> functionality in this area, but if there is something you are >>> wanting >>> >>>>> then you should file feature requests in Jira. >>> >>>>> >>> >>>>> -- Jonathan >>> >>>>> >>> >>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >>> >>>>>> Hi, >>> >>>>>> >>> >>>>>> Is there any Look and Feel mechanism in place, like the one in >>> Swing? >>> >>> That >>> >>>>>> doesn't appear to exist.. >>> >>>>>> >>> >>>>>> Are there any plans to add one? You can only do so much with >>> CSS... >>> >>>>>> >>> >>>>>> Thanks in advance, best regards, >>> >> >>> >> >>> >> -- >>> >> Pedro Duque Vieira >>> >> >>> >> >> > From hendrik.ebbers at me.com Mon Dec 9 01:45:06 2013 From: hendrik.ebbers at me.com (Hendrik Ebbers) Date: Mon, 09 Dec 2013 10:45:06 +0100 Subject: Look and feel mechanism? In-Reply-To: References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> <7D3A6161-BFC3-40F5-9EEA-33074C6EDB47@gmail.com> Message-ID: <0A1B6898-BDAD-40B7-865D-76779D406459@me.com> Hi, I played a little with a L&F API for JavaFX before JavaOne. Here are my results: Controls: - The UI of all controls is defined by CSS. For a new L&F an additional or new CSS is needed - The Behavior of controls is defined by the Behavior class that is defined by the skin. The skin can be set in CSS and because of that the complete behavior could be set by CSS. The biggest problem in this case is that the Behavior API is still a private API. - If the Behavior API will become public API and some of it's internals will be refactored (additional constructors for example) all controls depended stuff could be defined in a Look and Feel. The entry point here will be a CSS. - You can define a static helper class that sets the CSS for a complete application. This is done in AquaFX for example. (doc: http://aquafx-project.com/documentation.html#architecture ) Let's think about additional controls. ControlsFX adds a lot of great controls that hopefully will be used in applications. If you want to define a new Look and Feel these controls need to be skinned, too. Thanks to JavaFX and CSS we can simply define a hierarchy of CSS classes. By doing so plugins for Look and Feels could be defined. The base Look and Feels defines a CSS file that styles all the default controls and defines some basic colors. Based on this a Plugin adds a CSS file that skins only some additional controls. For a JavOne talk I created a very simply framework that does exactly this stuff. It defines some basic classes and interfaces for Look and Feels and Plugins. When we take ControlsFX and AquaFX as a example the workflow will be like this: AquaFX has a implementation of the LookAndFeel class. By using the default Look And Feel API a L&F can be set (LookAndFeel.getInstance().set(aquaLaF);). By doing so we can set the AquaFX L&F. When a L&F is set the classpath will be searched for plugins for the AquaFX L&F. Here the SPI API that is part of the JDK ( http://docs.oracle.com/javase/7/docs/api/java/util/ServiceLoader.html ) can be used. Each plugin that is found will be loaded. Because ControlsFX supports the AquaFX L&F it provides a plugin for this L&F. To do so ControlsFX don't depend on AquaFX. It only depends on the L&F API and implements the plugin interface of the API. here it can offer a CSS file that styles all ControlsFX controls in Aqua-Style. If the plugin needs dependencies to AquaFX (because it adds some special skin classes that needs basic features form AquaFX) a additonal module ControlsFX-AquaFX could be created. This module depends on AquaFX, ControlsFX and the L&F Framework. Next to the skinning of controls additional features are needed. One example that was already mentioned is the order of cancel and ok buttons. Actually there is no support in JavaFX. If basic dialogs would support this features a definition of the order etc. is needed. This can be done by using a plugin for the L&F API, too. A plugin don't only set a CSS. A plugin could do mainly everything. Example: If there would be a DialogOrderFX class that defines the order of Buttons a plugin can call DialogOrderFX.getInstance().set(windowsMetroOrder) for example. You can find the slides of the JavaOne talk here: http://www.guigarage.com/2013/09/lets-get-wet/ On slide 41 the "StyleManager" part starts. Hendrik > Am 09.12.2013 um 09:10 schrieb Felix Bembrick : > >> On 9 December 2013 16:10, Scott Palmer wrote: >> >> >> >>> On Dec 8, 2013, at 9:18 PM, Felix Bembrick >> wrote: >> >>> >>> Firstly, it will *never* be possible to completely emulate the native >> look >>> and feel. >> >> Sure it is. Though it may never be practical, for many of the reasons you >> have given. >> >>> My reasoning is: why bother? >> >> Because it matters. As computer literate developers, we often don't >> realize what trips other people up. I get so frustrated with apps these >> days because they have become hard to use simply because the developers >> tried to define their own look and feel. For example, Chrome and >> Firefox... Or Microsoft Office... >> Where did the title bar go in chrome? >> Where have all the menus gone in Chrome, Firefox andOffice? I can find >> them, but when I have to play tech support over the phone to my parents >> these changes are massive problems. I ask my dad to move he window by >> dragging the title bar (please don't ask why he doesn't know to do this >> himself after decades of computer use) and he says "there is no title >> bar"... I the remember that yes, chrome did that... They got rid of a >> standard concept in the OS' windowing system and screed the end users. >> >> These apps became harder to use because of this "innovation" in the UI. >> >> Contrast this with applications on OS X where getting the UI right has >> always been an important priority for developers. Because adhering to the >> system look and feel has always been strongly encouraged the system is much >> easier to use. >> >>> These days, many apps do not look 100% native and may have their own >>> controls or look and feel in general. >> >> Yes, but to what end? They are now more difficult to use. >> >>> Why not channel all that massive >>> effort in constructing an emulated native look and feel into simply >> making >>> JavaFX better overall? >> >> But I agree here. The general look isn't the main issue.. E.g. little >> variations in color and minor tweaks to a few pixels here and there don't >> really matter. What does matter is when you change the order of buttons, >> like Okay & Cancel which have standard places that are different between >> Mac and Windows, or you move the About menu item from the Application menu >> on an OS X app to the help menu! because that is where you find it on >> Windows. Those things matter. >> >> >> Scott >> >>> >>> Felix >>> >>> >>> >>> On 9 December 2013 12:35, Pedro Duque Vieira < >> pedro.duquevieira at gmail.com>wrote: >>> >>>> Thanks! >>>> >>>> @Jasper: Yes, that's very interesting! Forgot that was possible to do in >>>> CSS. >>>> >>>> >>>>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall >> wrote: >>>>> >>>>> It may be possible to change the LOOK with CSS, but not the FEEL, which >>>> is >>>>> where Java apps have traditionally failed big time. >>>>> >>>>> Some things that I don?t think can be changed with CSS: >>>>> >>>>> 1) texts >>>>> 2) order of buttons >>>>> 3) escape characters for shortcuts >>>>> 4) menus >>>>> 5) system-level stuff (double-clicking on files, dropping files on >>>>> applications, ?) >>>>> 6) filesystem conventions >>>>> 7) ... >>>>> >>>>> I think FXML can fix some of these, but not all. So it seems to me >> that a >>>>> LaF in JFX will consist of at least: >>>>> >>>>> - one or more CSS files >>>>> - one or more FXML files >>>>> - some plumbing at the system level >>>>> >>>>> It would be nice to have a set of proper LaFs for each major platform >>>> with >>>>> an appropriate common API. >>>>> >>>>> Steve >>>>> >>>>>> On 9 Dec 2013, at 00:20, Jasper Potts >> wrote: >>>>>> >>>>>> You can set skin classes from CSS so should be able to do everything >>>> you >>>>> could with Swing and more. With just a CSS file and skins as and when >>>>> needed. >>>>>> >>>>>> Jasper >>>>>> >>>>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles < >> jonathan.giles at oracle.com >>>>> >>>>> wrote: >>>>>>> >>>>>>> At present there are no plans to introduce any further API or >>>>>>> functionality in this area, but if there is something you are wanting >>>>>>> then you should file feature requests in Jira. >>>>>>> >>>>>>> -- Jonathan >>>>>>> >>>>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >>>>>>>> Hi, >>>>>>>> >>>>>>>> Is there any Look and Feel mechanism in place, like the one in >> Swing? >>>>> That >>>>>>>> doesn't appear to exist.. >>>>>>>> >>>>>>>> Are there any plans to add one? You can only do so much with CSS... >>>>>>>> >>>>>>>> Thanks in advance, best regards, >>>> >>>> >>>> -- >>>> Pedro Duque Vieira >> From hendrik.ebbers at me.com Mon Dec 9 01:57:29 2013 From: hendrik.ebbers at me.com (Hendrik Ebbers) Date: Mon, 09 Dec 2013 10:57:29 +0100 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: References: Message-ID: <69969EA5-A150-42BA-9CBA-BCD4A8E883ED@me.com> Hi, when talking about mobile L&Fs like iOS and Android a lot more stuff need to be done. All the mobile UIs have different layout contains and a lot of default animations. When creating a Look and Feel for mobile systems a set of additinal panes / layout containers need to be created. Hendrik > Am 09.12.2013 um 10:36 schrieb Felix Bembrick : > > BTW, I was wanting to refer to a comment on this topic made my Pedro DV on > Twitter today. Pedro has been doing stunningly good work on a Metro Look > and Feel for JavaFX and, when questioned by me, stated that while he may > attempt such a Look and Feel for Android, he wouldn't try to do one for iOS > for reasons which he did not completely explain. > > Pedro, do you mind expanding on those thoughts here? When you referred to > the numerous issue with iOS were you referring to iOS itself or to trying > to emulate iOS with JavaFX? > > Thanks, > > Felix > > > >> On 9 December 2013 20:24, Felix Bembrick wrote: >> >> Spoiler: This is something I have become intensely passionate about so >> this is likely to be a long post... >> >> OK, so this (hijacked) thread started out as a discussion of options in >> JavaFX for implementing "Look and Feel". I think everyone agrees that >> even with CSS and skins, JavaFX lacks the built-in ability to define a >> true Look *and* Feel. Further to this, there has been discussion on >> Twitter and elsewhere regarding *native* Look and Feel and the merits of >> attempting such an animal with JavaFX. >> >> It is on this topic that I would like to add my 2 bits (as I am known to >> do)! I was going to use my blog http://justmy2bits.com but decided I >> would be much more likely to be able to engage fellow JavaFX developers >> in a positive, polite and respectful conversation here. >> >> First, anyone who may follow me on Twitter, in this forum or when I post >> in other forums (anyone?) will probably be a little bit confused as to >> where I actually stand on this issue. Well, this stems from the fact that >> I have been giving confusing (if not conflicting) input into various >> threads on this topic for quite a while. >> >> Why? >> >> Well, because until very recently, I myself was completely torn on the >> subject of native Look and Feel. In fact, I seemed to oscillate on an >> almost daily basis from thinking it's a great, achievable idea to >> dismissing such an idea on various grounds. I am swaying so much because I >> have so much riding on successful ports of JavaFX to iOS and Android and >> because those ports depend heavily on resolving this issue once and for all. >> >> Now I have had something of an epiphany and reached a conclusion. I now >> do not believe that pouring large (massive?) amounts of resources into the >> painstaking task of building a fully compliant, fully performant native >> Look and Feel is justifiable or worth the effort. And let's be clear about >> this: it is a *lot* of effort! >> >> But before I proceed I just want to say categorically how much I admire >> the thoroughly awesome work/efforts of the likes of Pedro DV, Claudine >> Zillmann, Hendrik Ebbers et. al. in (trying ever so hard) to bring native >> Look and Feel to various OS/platforms with JavaFX. I cannot put in words >> how much I am in awe of the commitment, the attention to detail, the >> technical prowess, the artistry and the drive of these fantastic people. >> Their work will undoubtedly be extremely useful to many developers >> worldwide. >> >> I want to make all that *perfectly clear* because now I am going to >> explain why I (probably) will not be one of those people and (hopefully) do >> it with the utmost respect for the aforementioned rock stars :-) >> >> Right, so back to the issue of whether to or not to implement or use a >> native Look and Feel. Some of the following comments have already been >> made by me on other networks and in other forums so apologies if it seems a >> bit repetitive to some. >> >> At first glance, the idea of a native Look and Feel seems almost like the >> proverbial Holy Grail. I mean, if such a thing were truly possible and >> viable, who wouldn't want one? You still have your single codebaseacross all platforms and you just just plug-in the particular native Look >> and Feel for your target platform and voila! World domination will surely >> soon follow! >> >> Well, not quite. It's a great idea but I am going out on a limb to claim >> that it has *never* worked. Ever! And by "work" I mean so that your >> "not-so-native" app looks and feels (which includes all aspects of >> behaviour, not just appearance) *exactly* like a true native app and *no >> one* could tell you that it *wasn't* a native app. >> >> Yes, I know there are masses now screaming at their monitors who will >> undoubtedly cite the numerous success stories of Swing apps or maybe even >> Qt or some other cross-platform UI toolkit and maybe my >> standards/criteria are harsher than others but I stand by my claim that >> this has *never ever* really, really, really worked. >> >> OK, so why not? >> >> Here's my first point: I postulate that such a noble goal is *not >> actually achievable*. It is not actually achievable for a number of >> reasons. >> >> It is not actually achievable because, in most cases, we do not have >> access to the code that implements the native controls on each OS so, at >> best, we are "guessing" when we try to emulate all aspects of their >> appearance and behaviour. Try as we may, we will never get *every* control >> exactly right and I firmly believe that anything that purports to be >> something else needs to be *identical*. >> >> It is not actually achievable because just as you feel you have reached an >> acceptable level of "compliance" (which I again wager is never 100%), the >> goal posts will move. That is, the OS vendor will release an update and >> even the minor ones can change either the appearance or behaviour of >> controls, sometimes in subtle ways, sometimes in not so subtle ways. >> Either way, there is then going to be a period of time where you are >> playing a futile game of catch-up and during that time your "native" >> controls will be surely exposed for the impostors they are. >> >> It is not actually achievable because the same control on one OS can look >> and feel/behave quite differently on another OS which leads to very poor >> levels of reuse. >> >> It is not actually achievable because many controls simply *can't be >> emulated in using Java/JavaFX *most likely because they have exclusive >> access to native system or OS calls that are not accessible to Java or >> because the expected levels of performance or "snappiness" cannot be >> achieved using Java by any means. Even with JNA or JNI you would be left >> scratching your head in many cases. >> >> And, it is not actually achievable because it's *simply too much work* to >> get anywhere near to perfection! We are talking *massive* amounts of >> effort and very few people have either the talent, the eye, the attention >> to detail or the patience to see such a project right through to the end >> where *all* controls are covered. The rock stars I mentioned earlier are >> the exceptions of course. There's clearly zero point in emulating *some* >> of the controls only; you need the *full set* or it's just not viable. >> >> Finally, and to look at it another way, what do we get even if some >> super-human delivers us a native Look and Feel for every possible platform? >> Well, a massive maintenance nightmare for a start! This super-human would >> basically be spending all their super time and using up all their super >> powers just keeping such libraries current. >> >> So, if you are still with me, *why bother*? Just consider if all those >> rock stars (and super heroes) concentrated all their super efforts into >> either improving the features, stability, performance or appearance of >> JavaFX itself? Just think what we could achieve! >> >> And on the *why bother* theme, why bother to devote all that time and >> effort, spend all those millions, tear out all that hair and hit all those >> roadblocks when the *very thing we are trying to achieve is already >> available*? >> >> Yes, that's right, if you really, really, really want to build a native >> app then why don't you just build a native app? There are numerous tools, >> languages, IDEs, toolchains and libraries that enable you to build >> awesome *true* native apps! I just don't think JavaFX is one of them :-) >> >> And it doesn't have to be one of those toolkits because JavaFX can be >> used to build an entirely different class of application and I now strongly >> believe that this is the kind of app we should be concentrating on. That >> class (or classes) of app is one that is not so heavily dependent on the >> native Look and Feel and doesn't need to be. There are probably hundreds >> of thousands of apps that are like this. They are everywhere and JavaFXis *perfect* for them! >> >> Scott Palmer has argued that this approach is not valid (and sorry Scott >> if am inaccurately paraphrasing you). He cites examples such as Chrome, >> Firefox and even MS Office as proof that this approach does not work. >> However, my response to that would be to say that just because these are >> examples of where the developers got it seriously wrong, they do not prove >> that this approach can't work and isn't working all over the marketplace. >> >> There is no need to develop crappy, mistake ridden software by using a >> toolkit such as JavaFX in a way that does not attempt to emulate the >> native Look and Feel and the fact that even big companies like Google >> *still* clearly get it horribly wrong doesn't imply that we *all* have to >> be so ineffective. >> >> Part of my newly-found aversion to emulated native Look and Feel comes >> from my many years of both developing and using Swing applications. Sure, >> I know there are *some* (handful?) successful Swing apps, most notably >> those developed with the NetBeans RCP, but in general Swing has failed to >> have any penetration into serious commercial software. Why? Well, there >> are several reasons (and a lot are due to Java itself) but, for me, I was >> never satisfied with the so-called native Look and Feel options that come >> with Swing. I have been (and still am) very critical of the Windows Look >> and Feel in Swing in particular because, even today, there is a vast gulf >> between an actual native Windows application and a Swing application with >> this Look and Feel. So much so that I still want to almost knock my >> monitor off the desk when I am using an application developed in this way. >> For me, this is not acceptable and such an application could never be >> released as a *serious commercial product*. >> >> And that's pretty much what this all boils down to: developing *serious >> commercial software*. >> >> If you are interested in developing something else then these lengthy >> comments (am I *still* going?) probably do not apply to you :-) >> >> So to summarise, I argue that it is not possible to develop serious >> commercial software using emulated Look and Feel in JavaFX or in *any* UItoolkit. I *strongly* recommend that we all work together to make >> JavaFX as good as it can be (which is absolutely awesome) by focusing on >> the core product, the API, the performance, the feature set, the stability >> *and* the supported platforms rather than throw good money after bad on a >> *wonderful* goal that ultimately can never be reached... >> >> Just my 2 bits, >> >> Felix >> >> P.S. I surely hope I have not offended any/all those who either disagree >> with the main points or who still believe that native Look and Feel is >> viable. I remind you all that I am on my knees bowing with respect to the >> rock stars I referred to and anyone else working on similar projects. >> Absolutely no offence is intended, I am merely expressing my (passionate) >> feelings on this subject. >> >> >>> On 9 December 2013 19:10, Felix Bembrick wrote: >>> >>> >>> >>> >>>> On 9 December 2013 16:10, Scott Palmer wrote: >>>> >>>> >>>> >>>>> On Dec 8, 2013, at 9:18 PM, Felix Bembrick >>>> wrote: >>>> >>>>> >>>>> Firstly, it will *never* be possible to completely emulate the native >>>> look >>>>> and feel. >>>> >>>> Sure it is. Though it may never be practical, for many of the reasons >>>> you have given. >>>> >>>>> My reasoning is: why bother? >>>> >>>> Because it matters. As computer literate developers, we often don't >>>> realize what trips other people up. I get so frustrated with apps these >>>> days because they have become hard to use simply because the developers >>>> tried to define their own look and feel. For example, Chrome and >>>> Firefox... Or Microsoft Office... >>>> Where did the title bar go in chrome? >>>> Where have all the menus gone in Chrome, Firefox andOffice? I can find >>>> them, but when I have to play tech support over the phone to my parents >>>> these changes are massive problems. I ask my dad to move he window by >>>> dragging the title bar (please don't ask why he doesn't know to do this >>>> himself after decades of computer use) and he says "there is no title >>>> bar"... I the remember that yes, chrome did that... They got rid of a >>>> standard concept in the OS' windowing system and screed the end users. >>>> >>>> These apps became harder to use because of this "innovation" in the UI. >>>> >>>> Contrast this with applications on OS X where getting the UI right has >>>> always been an important priority for developers. Because adhering to the >>>> system look and feel has always been strongly encouraged the system is much >>>> easier to use. >>>> >>>>> These days, many apps do not look 100% native and may have their own >>>>> controls or look and feel in general. >>>> >>>> Yes, but to what end? They are now more difficult to use. >>>> >>>>> Why not channel all that massive >>>>> effort in constructing an emulated native look and feel into simply >>>> making >>>>> JavaFX better overall? >>>> >>>> But I agree here. The general look isn't the main issue.. E.g. little >>>> variations in color and minor tweaks to a few pixels here and there don't >>>> really matter. What does matter is when you change the order of buttons, >>>> like Okay & Cancel which have standard places that are different between >>>> Mac and Windows, or you move the About menu item from the Application menu >>>> on an OS X app to the help menu! because that is where you find it on >>>> Windows. Those things matter. >>>> >>>> >>>> Scott >>>> >>>>> >>>>> Felix >>>>> >>>>> >>>>> >>>>> On 9 December 2013 12:35, Pedro Duque Vieira < >>>> pedro.duquevieira at gmail.com>wrote: >>>>> >>>>>> Thanks! >>>>>> >>>>>> @Jasper: Yes, that's very interesting! Forgot that was possible to do >>>> in >>>>>> CSS. >>>>>> >>>>>> >>>>>>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall >>>> wrote: >>>>>>> >>>>>>> It may be possible to change the LOOK with CSS, but not the FEEL, >>>> which >>>>>> is >>>>>>> where Java apps have traditionally failed big time. >>>>>>> >>>>>>> Some things that I don?t think can be changed with CSS: >>>>>>> >>>>>>> 1) texts >>>>>>> 2) order of buttons >>>>>>> 3) escape characters for shortcuts >>>>>>> 4) menus >>>>>>> 5) system-level stuff (double-clicking on files, dropping files on >>>>>>> applications, ?) >>>>>>> 6) filesystem conventions >>>>>>> 7) ... >>>>>>> >>>>>>> I think FXML can fix some of these, but not all. So it seems to me >>>> that a >>>>>>> LaF in JFX will consist of at least: >>>>>>> >>>>>>> - one or more CSS files >>>>>>> - one or more FXML files >>>>>>> - some plumbing at the system level >>>>>>> >>>>>>> It would be nice to have a set of proper LaFs for each major platform >>>>>> with >>>>>>> an appropriate common API. >>>>>>> >>>>>>> Steve >>>>>>> >>>>>>>> On 9 Dec 2013, at 00:20, Jasper Potts >>>> wrote: >>>>>>>> >>>>>>>> You can set skin classes from CSS so should be able to do everything >>>>>> you >>>>>>> could with Swing and more. With just a CSS file and skins as and when >>>>>>> needed. >>>>>>>> >>>>>>>> Jasper >>>>>>>> >>>>>>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles < >>>> jonathan.giles at oracle.com >>>>>>> >>>>>>> wrote: >>>>>>>>> >>>>>>>>> At present there are no plans to introduce any further API or >>>>>>>>> functionality in this area, but if there is something you are >>>> wanting >>>>>>>>> then you should file feature requests in Jira. >>>>>>>>> >>>>>>>>> -- Jonathan >>>>>>>>> >>>>>>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> Is there any Look and Feel mechanism in place, like the one in >>>> Swing? >>>>>>> That >>>>>>>>>> doesn't appear to exist.. >>>>>>>>>> >>>>>>>>>> Are there any plans to add one? You can only do so much with >>>> CSS... >>>>>>>>>> >>>>>>>>>> Thanks in advance, best regards, >>>>>> >>>>>> >>>>>> -- >>>>>> Pedro Duque Vieira >>>>>> >>>> >>> >>> >> From lehmann at media-interactive.de Mon Dec 9 02:18:12 2013 From: lehmann at media-interactive.de (Werner Lehmann) Date: Mon, 9 Dec 2013 11:18:12 +0100 Subject: Look and feel mechanism? In-Reply-To: <0A1B6898-BDAD-40B7-865D-76779D406459@me.com> References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> <7D3A6161-BFC3-40F5-9EEA-33074C6EDB47@gmail.com> <0A1B6898-BDAD-40B7-865D-76779D406459@me.com> Message-ID: <52A598E4.4090403@media-interactive.de> By the way, platform order of dialog buttons is implemented by the ButtonBar control in ControlsFX. It is of course Java8 only but can easily be brought back to FX2. Werner On 09.12.2013 10:45, Hendrik Ebbers wrote: > Next to the skinning of controls additional features are needed. One > example that was already mentioned is the order of cancel and ok > buttons. Actually there is no support in JavaFX. If basic dialogs > would support this features a definition of the order etc. is needed. > This can be done by using a plugin for the L&F API, too. From tbee at tbee.org Mon Dec 9 02:36:03 2013 From: tbee at tbee.org (Tom Eugelink) Date: Mon, 09 Dec 2013 11:36:03 +0100 Subject: Look and feel mechanism? In-Reply-To: <0A1B6898-BDAD-40B7-865D-76779D406459@me.com> References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> <7D3A6161-BFC3-40F5-9EEA-33074C6EDB47@gmail.com> <0A1B6898-BDAD-40B7-865D-76779D406459@me.com> Message-ID: <52A59D13.2070302@tbee.org> All I know, as a 3rd party control developer, is that I want to be able to setup the CSS of my controls in such a way that as much of a new skin is automatically adopted; borders, colors, focus rendering, etc. Tom From felix.bembrick at gmail.com Mon Dec 9 02:41:37 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Mon, 9 Dec 2013 21:41:37 +1100 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: <69969EA5-A150-42BA-9CBA-BCD4A8E883ED@me.com> References: <69969EA5-A150-42BA-9CBA-BCD4A8E883ED@me.com> Message-ID: That's correct Hendrik and this only adds weight to my argument. Clearly the mobile platforms (Android and especially iOS) are even harder-to-hit targets than desktop platforms. And if you are not able to develop a viable native Look and Feel for every platform then the paradigm of deploying your app using a native Look and Feel to *every* device breaks down... On 9 December 2013 20:57, Hendrik Ebbers wrote: > Hi, > when talking about mobile L&Fs like iOS and Android a lot more stuff need > to be done. All the mobile UIs have different layout contains and a lot of > default animations. When creating a Look and Feel for mobile systems a set > of additinal panes / layout containers need to be created. > > Hendrik > > > Am 09.12.2013 um 10:36 schrieb Felix Bembrick >: > > > > BTW, I was wanting to refer to a comment on this topic made my Pedro DV > on > > Twitter today. Pedro has been doing stunningly good work on a Metro Look > > and Feel for JavaFX and, when questioned by me, stated that while he may > > attempt such a Look and Feel for Android, he wouldn't try to do one for > iOS > > for reasons which he did not completely explain. > > > > Pedro, do you mind expanding on those thoughts here? When you referred > to > > the numerous issue with iOS were you referring to iOS itself or to trying > > to emulate iOS with JavaFX? > > > > Thanks, > > > > Felix > > > > > > > >> On 9 December 2013 20:24, Felix Bembrick > wrote: > >> > >> Spoiler: This is something I have become intensely passionate about so > >> this is likely to be a long post... > >> > >> OK, so this (hijacked) thread started out as a discussion of options in > >> JavaFX for implementing "Look and Feel". I think everyone agrees that > >> even with CSS and skins, JavaFX lacks the built-in ability to define a > >> true Look *and* Feel. Further to this, there has been discussion on > >> Twitter and elsewhere regarding *native* Look and Feel and the merits of > >> attempting such an animal with JavaFX. > >> > >> It is on this topic that I would like to add my 2 bits (as I am known to > >> do)! I was going to use my blog http://justmy2bits.com but decided I > >> would be much more likely to be able to engage fellow JavaFX developers > >> in a positive, polite and respectful conversation here. > >> > >> First, anyone who may follow me on Twitter, in this forum or when I post > >> in other forums (anyone?) will probably be a little bit confused as to > >> where I actually stand on this issue. Well, this stems from the fact > that > >> I have been giving confusing (if not conflicting) input into various > >> threads on this topic for quite a while. > >> > >> Why? > >> > >> Well, because until very recently, I myself was completely torn on the > >> subject of native Look and Feel. In fact, I seemed to oscillate on an > >> almost daily basis from thinking it's a great, achievable idea to > >> dismissing such an idea on various grounds. I am swaying so much > because I > >> have so much riding on successful ports of JavaFX to iOS and Android and > >> because those ports depend heavily on resolving this issue once and for > all. > >> > >> Now I have had something of an epiphany and reached a conclusion. I now > >> do not believe that pouring large (massive?) amounts of resources into > the > >> painstaking task of building a fully compliant, fully performant native > >> Look and Feel is justifiable or worth the effort. And let's be clear > about > >> this: it is a *lot* of effort! > >> > >> But before I proceed I just want to say categorically how much I admire > >> the thoroughly awesome work/efforts of the likes of Pedro DV, Claudine > >> Zillmann, Hendrik Ebbers et. al. in (trying ever so hard) to bring > native > >> Look and Feel to various OS/platforms with JavaFX. I cannot put in > words > >> how much I am in awe of the commitment, the attention to detail, the > >> technical prowess, the artistry and the drive of these fantastic people. > >> Their work will undoubtedly be extremely useful to many developers > >> worldwide. > >> > >> I want to make all that *perfectly clear* because now I am going to > >> explain why I (probably) will not be one of those people and > (hopefully) do > >> it with the utmost respect for the aforementioned rock stars :-) > >> > >> Right, so back to the issue of whether to or not to implement or use a > >> native Look and Feel. Some of the following comments have already been > >> made by me on other networks and in other forums so apologies if it > seems a > >> bit repetitive to some. > >> > >> At first glance, the idea of a native Look and Feel seems almost like > the > >> proverbial Holy Grail. I mean, if such a thing were truly possible and > >> viable, who wouldn't want one? You still have your single > codebaseacross all platforms and you just just plug-in the particular > native Look > >> and Feel for your target platform and voila! World domination will > surely > >> soon follow! > >> > >> Well, not quite. It's a great idea but I am going out on a limb to > claim > >> that it has *never* worked. Ever! And by "work" I mean so that your > >> "not-so-native" app looks and feels (which includes all aspects of > >> behaviour, not just appearance) *exactly* like a true native app and *no > >> one* could tell you that it *wasn't* a native app. > >> > >> Yes, I know there are masses now screaming at their monitors who will > >> undoubtedly cite the numerous success stories of Swing apps or maybe > even > >> Qt or some other cross-platform UI toolkit and maybe my > >> standards/criteria are harsher than others but I stand by my claim that > >> this has *never ever* really, really, really worked. > >> > >> OK, so why not? > >> > >> Here's my first point: I postulate that such a noble goal is *not > >> actually achievable*. It is not actually achievable for a number of > >> reasons. > >> > >> It is not actually achievable because, in most cases, we do not have > >> access to the code that implements the native controls on each OS so, at > >> best, we are "guessing" when we try to emulate all aspects of their > >> appearance and behaviour. Try as we may, we will never get *every* > control > >> exactly right and I firmly believe that anything that purports to be > >> something else needs to be *identical*. > >> > >> It is not actually achievable because just as you feel you have reached > an > >> acceptable level of "compliance" (which I again wager is never 100%), > the > >> goal posts will move. That is, the OS vendor will release an update and > >> even the minor ones can change either the appearance or behaviour of > >> controls, sometimes in subtle ways, sometimes in not so subtle ways. > >> Either way, there is then going to be a period of time where you are > >> playing a futile game of catch-up and during that time your "native" > >> controls will be surely exposed for the impostors they are. > >> > >> It is not actually achievable because the same control on one OS can > look > >> and feel/behave quite differently on another OS which leads to very poor > >> levels of reuse. > >> > >> It is not actually achievable because many controls simply *can't be > >> emulated in using Java/JavaFX *most likely because they have exclusive > >> access to native system or OS calls that are not accessible to Java or > >> because the expected levels of performance or "snappiness" cannot be > >> achieved using Java by any means. Even with JNA or JNI you would be > left > >> scratching your head in many cases. > >> > >> And, it is not actually achievable because it's *simply too much work* > to > >> get anywhere near to perfection! We are talking *massive* amounts of > >> effort and very few people have either the talent, the eye, the > attention > >> to detail or the patience to see such a project right through to the end > >> where *all* controls are covered. The rock stars I mentioned earlier > are > >> the exceptions of course. There's clearly zero point in emulating > *some* > >> of the controls only; you need the *full set* or it's just not viable. > >> > >> Finally, and to look at it another way, what do we get even if some > >> super-human delivers us a native Look and Feel for every possible > platform? > >> Well, a massive maintenance nightmare for a start! This super-human > would > >> basically be spending all their super time and using up all their super > >> powers just keeping such libraries current. > >> > >> So, if you are still with me, *why bother*? Just consider if all those > >> rock stars (and super heroes) concentrated all their super efforts into > >> either improving the features, stability, performance or appearance of > >> JavaFX itself? Just think what we could achieve! > >> > >> And on the *why bother* theme, why bother to devote all that time and > >> effort, spend all those millions, tear out all that hair and hit all > those > >> roadblocks when the *very thing we are trying to achieve is already > >> available*? > >> > >> Yes, that's right, if you really, really, really want to build a native > >> app then why don't you just build a native app? There are numerous > tools, > >> languages, IDEs, toolchains and libraries that enable you to build > >> awesome *true* native apps! I just don't think JavaFX is one of them > :-) > >> > >> And it doesn't have to be one of those toolkits because JavaFX can be > >> used to build an entirely different class of application and I now > strongly > >> believe that this is the kind of app we should be concentrating on. > That > >> class (or classes) of app is one that is not so heavily dependent on the > >> native Look and Feel and doesn't need to be. There are probably > hundreds > >> of thousands of apps that are like this. They are everywhere and > JavaFXis *perfect* for them! > >> > >> Scott Palmer has argued that this approach is not valid (and sorry Scott > >> if am inaccurately paraphrasing you). He cites examples such as Chrome, > >> Firefox and even MS Office as proof that this approach does not work. > >> However, my response to that would be to say that just because these are > >> examples of where the developers got it seriously wrong, they do not > prove > >> that this approach can't work and isn't working all over the > marketplace. > >> > >> There is no need to develop crappy, mistake ridden software by using a > >> toolkit such as JavaFX in a way that does not attempt to emulate the > >> native Look and Feel and the fact that even big companies like Google > >> *still* clearly get it horribly wrong doesn't imply that we *all* have > to > >> be so ineffective. > >> > >> Part of my newly-found aversion to emulated native Look and Feel comes > >> from my many years of both developing and using Swing applications. > Sure, > >> I know there are *some* (handful?) successful Swing apps, most notably > >> those developed with the NetBeans RCP, but in general Swing has failed > to > >> have any penetration into serious commercial software. Why? Well, > there > >> are several reasons (and a lot are due to Java itself) but, for me, I > was > >> never satisfied with the so-called native Look and Feel options that > come > >> with Swing. I have been (and still am) very critical of the Windows > Look > >> and Feel in Swing in particular because, even today, there is a vast > gulf > >> between an actual native Windows application and a Swing application > with > >> this Look and Feel. So much so that I still want to almost knock my > >> monitor off the desk when I am using an application developed in this > way. > >> For me, this is not acceptable and such an application could never be > >> released as a *serious commercial product*. > >> > >> And that's pretty much what this all boils down to: developing *serious > >> commercial software*. > >> > >> If you are interested in developing something else then these lengthy > >> comments (am I *still* going?) probably do not apply to you :-) > >> > >> So to summarise, I argue that it is not possible to develop serious > >> commercial software using emulated Look and Feel in JavaFX or in *any* > UItoolkit. I *strongly* recommend that we all work together to make > >> JavaFX as good as it can be (which is absolutely awesome) by focusing on > >> the core product, the API, the performance, the feature set, the > stability > >> *and* the supported platforms rather than throw good money after bad on > a > >> *wonderful* goal that ultimately can never be reached... > >> > >> Just my 2 bits, > >> > >> Felix > >> > >> P.S. I surely hope I have not offended any/all those who either disagree > >> with the main points or who still believe that native Look and Feel is > >> viable. I remind you all that I am on my knees bowing with respect to > the > >> rock stars I referred to and anyone else working on similar projects. > >> Absolutely no offence is intended, I am merely expressing my > (passionate) > >> feelings on this subject. > >> > >> > >>> On 9 December 2013 19:10, Felix Bembrick > wrote: > >>> > >>> > >>> > >>> > >>>> On 9 December 2013 16:10, Scott Palmer wrote: > >>>> > >>>> > >>>> > >>>>> On Dec 8, 2013, at 9:18 PM, Felix Bembrick > > >>>> wrote: > >>>> > >>>>> > >>>>> Firstly, it will *never* be possible to completely emulate the native > >>>> look > >>>>> and feel. > >>>> > >>>> Sure it is. Though it may never be practical, for many of the reasons > >>>> you have given. > >>>> > >>>>> My reasoning is: why bother? > >>>> > >>>> Because it matters. As computer literate developers, we often don't > >>>> realize what trips other people up. I get so frustrated with apps > these > >>>> days because they have become hard to use simply because the > developers > >>>> tried to define their own look and feel. For example, Chrome and > >>>> Firefox... Or Microsoft Office... > >>>> Where did the title bar go in chrome? > >>>> Where have all the menus gone in Chrome, Firefox andOffice? I can > find > >>>> them, but when I have to play tech support over the phone to my > parents > >>>> these changes are massive problems. I ask my dad to move he window by > >>>> dragging the title bar (please don't ask why he doesn't know to do > this > >>>> himself after decades of computer use) and he says "there is no title > >>>> bar"... I the remember that yes, chrome did that... They got rid of a > >>>> standard concept in the OS' windowing system and screed the end users. > >>>> > >>>> These apps became harder to use because of this "innovation" in the > UI. > >>>> > >>>> Contrast this with applications on OS X where getting the UI right has > >>>> always been an important priority for developers. Because adhering > to the > >>>> system look and feel has always been strongly encouraged the system > is much > >>>> easier to use. > >>>> > >>>>> These days, many apps do not look 100% native and may have their own > >>>>> controls or look and feel in general. > >>>> > >>>> Yes, but to what end? They are now more difficult to use. > >>>> > >>>>> Why not channel all that massive > >>>>> effort in constructing an emulated native look and feel into simply > >>>> making > >>>>> JavaFX better overall? > >>>> > >>>> But I agree here. The general look isn't the main issue.. E.g. little > >>>> variations in color and minor tweaks to a few pixels here and there > don't > >>>> really matter. What does matter is when you change the order of > buttons, > >>>> like Okay & Cancel which have standard places that are different > between > >>>> Mac and Windows, or you move the About menu item from the Application > menu > >>>> on an OS X app to the help menu! because that is where you find it on > >>>> Windows. Those things matter. > >>>> > >>>> > >>>> Scott > >>>> > >>>>> > >>>>> Felix > >>>>> > >>>>> > >>>>> > >>>>> On 9 December 2013 12:35, Pedro Duque Vieira < > >>>> pedro.duquevieira at gmail.com>wrote: > >>>>> > >>>>>> Thanks! > >>>>>> > >>>>>> @Jasper: Yes, that's very interesting! Forgot that was possible to > do > >>>> in > >>>>>> CSS. > >>>>>> > >>>>>> > >>>>>>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall > > >>>> wrote: > >>>>>>> > >>>>>>> It may be possible to change the LOOK with CSS, but not the FEEL, > >>>> which > >>>>>> is > >>>>>>> where Java apps have traditionally failed big time. > >>>>>>> > >>>>>>> Some things that I don?t think can be changed with CSS: > >>>>>>> > >>>>>>> 1) texts > >>>>>>> 2) order of buttons > >>>>>>> 3) escape characters for shortcuts > >>>>>>> 4) menus > >>>>>>> 5) system-level stuff (double-clicking on files, dropping files on > >>>>>>> applications, ?) > >>>>>>> 6) filesystem conventions > >>>>>>> 7) ... > >>>>>>> > >>>>>>> I think FXML can fix some of these, but not all. So it seems to me > >>>> that a > >>>>>>> LaF in JFX will consist of at least: > >>>>>>> > >>>>>>> - one or more CSS files > >>>>>>> - one or more FXML files > >>>>>>> - some plumbing at the system level > >>>>>>> > >>>>>>> It would be nice to have a set of proper LaFs for each major > platform > >>>>>> with > >>>>>>> an appropriate common API. > >>>>>>> > >>>>>>> Steve > >>>>>>> > >>>>>>>> On 9 Dec 2013, at 00:20, Jasper Potts > >>>> wrote: > >>>>>>>> > >>>>>>>> You can set skin classes from CSS so should be able to do > everything > >>>>>> you > >>>>>>> could with Swing and more. With just a CSS file and skins as and > when > >>>>>>> needed. > >>>>>>>> > >>>>>>>> Jasper > >>>>>>>> > >>>>>>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles < > >>>> jonathan.giles at oracle.com > >>>>>>> > >>>>>>> wrote: > >>>>>>>>> > >>>>>>>>> At present there are no plans to introduce any further API or > >>>>>>>>> functionality in this area, but if there is something you are > >>>> wanting > >>>>>>>>> then you should file feature requests in Jira. > >>>>>>>>> > >>>>>>>>> -- Jonathan > >>>>>>>>> > >>>>>>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: > >>>>>>>>>> Hi, > >>>>>>>>>> > >>>>>>>>>> Is there any Look and Feel mechanism in place, like the one in > >>>> Swing? > >>>>>>> That > >>>>>>>>>> doesn't appear to exist.. > >>>>>>>>>> > >>>>>>>>>> Are there any plans to add one? You can only do so much with > >>>> CSS... > >>>>>>>>>> > >>>>>>>>>> Thanks in advance, best regards, > >>>>>> > >>>>>> > >>>>>> -- > >>>>>> Pedro Duque Vieira > >>>>>> > >>>> > >>> > >>> > >> > From steve at winnall.ch Mon Dec 9 03:49:18 2013 From: steve at winnall.ch (Stephen Winnall) Date: Mon, 9 Dec 2013 12:49:18 +0100 Subject: Look and feel mechanism? In-Reply-To: References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> Message-ID: On 9 Dec 2013, at 03:18, Felix Bembrick wrote: > @Stephen, you are absolutely right about this. But such an approach (and pretty much *any* approach) to "emulated" native look and feels is fraught with difficulties and complexities. > > Firstly, it will *never* be possible to completely emulate the native look and feel. And, even if the differences are subtle, there is the very real risk that the end user will have a very uneasy feeling using such a look and feel. At times it will even seem like an imposter. Agreed, though Quaqua did quite a good (and unobtrusive) job for the look on Swing on Mac OS X. > Secondly, you will be forever playing catchup as each new major release (and also even each minor update) changes one or more of the behaviours that you have so carefully emulated. The result is that for a while at least, your emulated look and feel is an even more obvious imposter with an even more uneasy experience for the user. Indeed. I?m not really a fan of reimplementing something that?s already there anyway. It should be possible to use the native facilities via appropriate APIs. > Thirdly, building such emulated look and feels is a *lot* of work (much more than you would think). Tell me about it :-) I spent a long time trying to create a Platform abstraction for Swing which would allow applications to be moved from platform to platform and adopt the native look and feel. The along came JavaFX. But we missed out on the chance of developing a platform abstraction there too. > My reasoning is: why bother? Why not build a "JavaFX look and feel" (akin to something like Nimubs in Swing) that simply doesn't even try to look native? Then you know for sure your app looks and behaves identically on all devices and there is no hint of "imposter-ness?. The answer to this question is relatively simple: Metal. Metal, you will recall, was the one-size-fits-all look for Swing. And it was and was a major reason for the failure of Swing (and thus Java) on the desktop. Ultimately, all cross-platform looks suffer from the same problem: they don?t look right on any platform and often terrible on others. And ignoring the feel of the target platform is the ultimate sin: users don?t understand what the app is doing or why but often cannot articulate their feelings because there?s no *observable* problem, only a ?feelable" one. And so another Java desktop app dies the death... > These days, many apps do not look 100% native and may have their own controls or look and feel in general. Why not channel all that massive effort in constructing an emulated native look and feel into simply making JavaFX better overall? Agreed. Let?s define a platform abstraction? Steve From petr.pchelko at oracle.com Mon Dec 9 05:57:01 2013 From: petr.pchelko at oracle.com (Petr Pchelko) Date: Mon, 9 Dec 2013 17:57:01 +0400 Subject: Review Request: RT-34770 [TextArea MacOS] selected text is removed on focus leaving then returning Message-ID: <6761B40A-7991-4D3B-898A-D8DFF02E86CD@oracle.com> Hello, OpenJFX. Please review the fix for the issue: https://javafx-jira.kenai.com/browse/RT-34770 The details are in the bug comments. With best regards. Petr. From swpalmer at gmail.com Mon Dec 9 06:49:03 2013 From: swpalmer at gmail.com (Scott Palmer) Date: Mon, 9 Dec 2013 09:49:03 -0500 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: References: Message-ID: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> I agree that perfect sync with native look and feels is not what is required and not worth the effort. I do think though that major concepts in the platform's look and feel should (must!) be followed or the user experience is ruined. The example of the order of the ok and cancel buttons has been brought up already. But that isn't even the most important one. Things like shortcut keys. CTRL-C to copy on windows, Command-C to copy on Mac. Standard menu layouts, right-click behaviour and standard context menus. They just have to be in the right place. That they look different doesn't matter as much. And this doesn't mean that you can't try new ideas for UI. But basic things that users expect to work should still work. E.g. Command-Q on OS X better quit the app :-) As noted already with my reference to Office and browsers.. Fully native apps can be non-compliant with the platforms look and feel. So this isn't really a Java-specific issue. Scott > On Dec 9, 2013, at 4:24 AM, Felix Bembrick wrote: > > Spoiler: This is something I have become intensely passionate about so this is likely to be a long post... > > OK, so this (hijacked) thread started out as a discussion of options in JavaFX for implementing "Look and Feel". I think everyone agrees that even with CSS and skins, JavaFX lacks the built-in ability to define a true Look *and* Feel. Further to this, there has been discussion on Twitter and elsewhere regarding *native* Look and Feel and the merits of attempting such an animal with JavaFX. > > It is on this topic that I would like to add my 2 bits (as I am known to do)! I was going to use my blog http://justmy2bits.com but decided I would be much more likely to be able to engage fellow JavaFX developers in a positive, polite and respectful conversation here. > > First, anyone who may follow me on Twitter, in this forum or when I post in other forums (anyone?) will probably be a little bit confused as to where I actually stand on this issue. Well, this stems from the fact that I have been giving confusing (if not conflicting) input into various threads on this topic for quite a while. > > Why? > > Well, because until very recently, I myself was completely torn on the subject of native Look and Feel. In fact, I seemed to oscillate on an almost daily basis from thinking it's a great, achievable idea to dismissing such an idea on various grounds. I am swaying so much because I have so much riding on successful ports of JavaFX to iOS and Android and because those ports depend heavily on resolving this issue once and for all. > > Now I have had something of an epiphany and reached a conclusion. I now do not believe that pouring large (massive?) amounts of resources into the painstaking task of building a fully compliant, fully performant native Look and Feel is justifiable or worth the effort. And let's be clear about this: it is a *lot* of effort! > > But before I proceed I just want to say categorically how much I admire the thoroughly awesome work/efforts of the likes of Pedro DV, Claudine Zillmann, Hendrik Ebbers et. al. in (trying ever so hard) to bring native Look and Feel to various OS/platforms with JavaFX. I cannot put in words how much I am in awe of the commitment, the attention to detail, the technical prowess, the artistry and the drive of these fantastic people. Their work will undoubtedly be extremely useful to many developers worldwide. > > I want to make all that *perfectly clear* because now I am going to explain why I (probably) will not be one of those people and (hopefully) do it with the utmost respect for the aforementioned rock stars :-) > > Right, so back to the issue of whether to or not to implement or use a native Look and Feel. Some of the following comments have already been made by me on other networks and in other forums so apologies if it seems a bit repetitive to some. > > At first glance, the idea of a native Look and Feel seems almost like the proverbial Holy Grail. I mean, if such a thing were truly possible and viable, who wouldn't want one? You still have your single codebase across all platforms and you just just plug-in the particular native Look and Feel for your target platform and voila! World domination will surely soon follow! > > Well, not quite. It's a great idea but I am going out on a limb to claim that it has *never* worked. Ever! And by "work" I mean so that your "not-so-native" app looks and feels (which includes all aspects of behaviour, not just appearance) *exactly* like a true native app and *no one* could tell you that it *wasn't* a native app. > > Yes, I know there are masses now screaming at their monitors who will undoubtedly cite the numerous success stories of Swing apps or maybe even Qt or some other cross-platform UI toolkit and maybe my standards/criteria are harsher than others but I stand by my claim that this has *never ever* really, really, really worked. > > OK, so why not? > > Here's my first point: I postulate that such a noble goal is not actually achievable. It is not actually achievable for a number of reasons. > > It is not actually achievable because, in most cases, we do not have access to the code that implements the native controls on each OS so, at best, we are "guessing" when we try to emulate all aspects of their appearance and behaviour. Try as we may, we will never get *every* control exactly right and I firmly believe that anything that purports to be something else needs to be *identical*. > > It is not actually achievable because just as you feel you have reached an acceptable level of "compliance" (which I again wager is never 100%), the goal posts will move. That is, the OS vendor will release an update and even the minor ones can change either the appearance or behaviour of controls, sometimes in subtle ways, sometimes in not so subtle ways. Either way, there is then going to be a period of time where you are playing a futile game of catch-up and during that time your "native" controls will be surely exposed for the impostors they are. > > It is not actually achievable because the same control on one OS can look and feel/behave quite differently on another OS which leads to very poor levels of reuse. > > It is not actually achievable because many controls simply can't be emulated in using Java/JavaFX most likely because they have exclusive access to native system or OS calls that are not accessible to Java or because the expected levels of performance or "snappiness" cannot be achieved using Java by any means. Even with JNA or JNI you would be left scratching your head in many cases. > > And, it is not actually achievable because it's simply too much work to get anywhere near to perfection! We are talking *massive* amounts of effort and very few people have either the talent, the eye, the attention to detail or the patience to see such a project right through to the end where *all* controls are covered. The rock stars I mentioned earlier are the exceptions of course. There's clearly zero point in emulating *some* of the controls only; you need the *full set* or it's just not viable. > > Finally, and to look at it another way, what do we get even if some super-human delivers us a native Look and Feel for every possible platform? Well, a massive maintenance nightmare for a start! This super-human would basically be spending all their super time and using up all their super powers just keeping such libraries current. > > So, if you are still with me, why bother? Just consider if all those rock stars (and super heroes) concentrated all their super efforts into either improving the features, stability, performance or appearance of JavaFX itself? Just think what we could achieve! > > And on the why bother theme, why bother to devote all that time and effort, spend all those millions, tear out all that hair and hit all those roadblocks when the very thing we are trying to achieve is already available? > > Yes, that's right, if you really, really, really want to build a native app then why don't you just build a native app? There are numerous tools, languages, IDEs, toolchains and libraries that enable you to build awesome *true* native apps! I just don't think JavaFX is one of them :-) > > And it doesn't have to be one of those toolkits because JavaFX can be used to build an entirely different class of application and I now strongly believe that this is the kind of app we should be concentrating on. That class (or classes) of app is one that is not so heavily dependent on the native Look and Feel and doesn't need to be. There are probably hundreds of thousands of apps that are like this. They are everywhere and JavaFX is *perfect* for them! > > Scott Palmer has argued that this approach is not valid (and sorry Scott if am inaccurately paraphrasing you). He cites examples such as Chrome, Firefox and even MS Office as proof that this approach does not work. However, my response to that would be to say that just because these are examples of where the developers got it seriously wrong, they do not prove that this approach can't work and isn't working all over the marketplace. > > There is no need to develop crappy, mistake ridden software by using a toolkit such as JavaFX in a way that does not attempt to emulate the native Look and Feel and the fact that even big companies like Google *still* clearly get it horribly wrong doesn't imply that we *all* have to be so ineffective. > > Part of my newly-found aversion to emulated native Look and Feel comes from my many years of both developing and using Swing applications. Sure, I know there are *some* (handful?) successful Swing apps, most notably those developed with the NetBeans RCP, but in general Swing has failed to have any penetration into serious commercial software. Why? Well, there are several reasons (and a lot are due to Java itself) but, for me, I was never satisfied with the so-called native Look and Feel options that come with Swing. I have been (and still am) very critical of the Windows Look and Feel in Swing in particular because, even today, there is a vast gulf between an actual native Windows application and a Swing application with this Look and Feel. So much so that I still want to almost knock my monitor off the desk when I am using an application developed in this way. For me, this is not acceptable and such an application could never be released as a serious commercial product. > > And that's pretty much what this all boils down to: developing serious commercial software. > > If you are interested in developing something else then these lengthy comments (am I *still* going?) probably do not apply to you :-) > > So to summarise, I argue that it is not possible to develop serious commercial software using emulated Look and Feel in JavaFX or in *any* UI toolkit. I *strongly* recommend that we all work together to make JavaFX as good as it can be (which is absolutely awesome) by focusing on the core product, the API, the performance, the feature set, the stability *and* the supported platforms rather than throw good money after bad on a *wonderful* goal that ultimately can never be reached... > > Just my 2 bits, > > Felix > > P.S. I surely hope I have not offended any/all those who either disagree with the main points or who still believe that native Look and Feel is viable. I remind you all that I am on my knees bowing with respect to the rock stars I referred to and anyone else working on similar projects. Absolutely no offence is intended, I am merely expressing my (passionate) feelings on this subject. > > >> On 9 December 2013 19:10, Felix Bembrick wrote: >> >> >> >>> On 9 December 2013 16:10, Scott Palmer wrote: >>> >>> >>> > On Dec 8, 2013, at 9:18 PM, Felix Bembrick wrote: >>> >>> > >>> > Firstly, it will *never* be possible to completely emulate the native look >>> > and feel. >>> >>> Sure it is. Though it may never be practical, for many of the reasons you have given. >>> >>> > My reasoning is: why bother? >>> >>> Because it matters. As computer literate developers, we often don't realize what trips other people up. I get so frustrated with apps these days because they have become hard to use simply because the developers tried to define their own look and feel. For example, Chrome and Firefox... Or Microsoft Office... >>> Where did the title bar go in chrome? >>> Where have all the menus gone in Chrome, Firefox andOffice? I can find them, but when I have to play tech support over the phone to my parents these changes are massive problems. I ask my dad to move he window by dragging the title bar (please don't ask why he doesn't know to do this himself after decades of computer use) and he says "there is no title bar"... I the remember that yes, chrome did that... They got rid of a standard concept in the OS' windowing system and screed the end users. >>> >>> These apps became harder to use because of this "innovation" in the UI. >>> >>> Contrast this with applications on OS X where getting the UI right has always been an important priority for developers. Because adhering to the system look and feel has always been strongly encouraged the system is much easier to use. >>> >>> > These days, many apps do not look 100% native and may have their own >>> > controls or look and feel in general. >>> >>> Yes, but to what end? They are now more difficult to use. >>> >>> > Why not channel all that massive >>> > effort in constructing an emulated native look and feel into simply making >>> > JavaFX better overall? >>> >>> But I agree here. The general look isn't the main issue.. E.g. little variations in color and minor tweaks to a few pixels here and there don't really matter. What does matter is when you change the order of buttons, like Okay & Cancel which have standard places that are different between Mac and Windows, or you move the About menu item from the Application menu on an OS X app to the help menu! because that is where you find it on Windows. Those things matter. >>> >>> >>> Scott >>> >>> > >>> > Felix >>> > >>> > >>> > >>> > On 9 December 2013 12:35, Pedro Duque Vieira wrote: >>> > >>> >> Thanks! >>> >> >>> >> @Jasper: Yes, that's very interesting! Forgot that was possible to do in >>> >> CSS. >>> >> >>> >> >>> >>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall wrote: >>> >>> >>> >>> It may be possible to change the LOOK with CSS, but not the FEEL, which >>> >> is >>> >>> where Java apps have traditionally failed big time. >>> >>> >>> >>> Some things that I don?t think can be changed with CSS: >>> >>> >>> >>> 1) texts >>> >>> 2) order of buttons >>> >>> 3) escape characters for shortcuts >>> >>> 4) menus >>> >>> 5) system-level stuff (double-clicking on files, dropping files on >>> >>> applications, ?) >>> >>> 6) filesystem conventions >>> >>> 7) ... >>> >>> >>> >>> I think FXML can fix some of these, but not all. So it seems to me that a >>> >>> LaF in JFX will consist of at least: >>> >>> >>> >>> - one or more CSS files >>> >>> - one or more FXML files >>> >>> - some plumbing at the system level >>> >>> >>> >>> It would be nice to have a set of proper LaFs for each major platform >>> >> with >>> >>> an appropriate common API. >>> >>> >>> >>> Steve >>> >>> >>> >>>> On 9 Dec 2013, at 00:20, Jasper Potts wrote: >>> >>>> >>> >>>> You can set skin classes from CSS so should be able to do everything >>> >> you >>> >>> could with Swing and more. With just a CSS file and skins as and when >>> >>> needed. >>> >>>> >>> >>>> Jasper >>> >>>> >>> >>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles >> >>> >>> >>> wrote: >>> >>>>> >>> >>>>> At present there are no plans to introduce any further API or >>> >>>>> functionality in this area, but if there is something you are wanting >>> >>>>> then you should file feature requests in Jira. >>> >>>>> >>> >>>>> -- Jonathan >>> >>>>> >>> >>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >>> >>>>>> Hi, >>> >>>>>> >>> >>>>>> Is there any Look and Feel mechanism in place, like the one in Swing? >>> >>> That >>> >>>>>> doesn't appear to exist.. >>> >>>>>> >>> >>>>>> Are there any plans to add one? You can only do so much with CSS... >>> >>>>>> >>> >>>>>> Thanks in advance, best regards, >>> >> >>> >> >>> >> -- >>> >> Pedro Duque Vieira >>> >> > From steve.x.northover at oracle.com Mon Dec 9 07:24:42 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Mon, 09 Dec 2013 10:24:42 -0500 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> Message-ID: <52A5E0BA.1010800@oracle.com> Here are my thoughts on the matter. Give people the choice of whether to use native or non-native components. In some applications, everything will be non-native. In others, only the main content area will be non-native and the rest will be native. In some mobile applications, perhaps the preference pages will be native and other parts will not. JavaFX is the best choice for non-native widgets and we are committed to making it the best toolkit all around. Steve On 2013-12-09 9:49 AM, Scott Palmer wrote: > I agree that perfect sync with native look and feels is not what is required and not worth the effort. I do think though that major concepts in the platform's look and feel should (must!) be followed or the user experience is ruined. > > The example of the order of the ok and cancel buttons has been brought up already. But that isn't even the most important one. > > Things like shortcut keys. CTRL-C to copy on windows, Command-C to copy on Mac. Standard menu layouts, right-click behaviour and standard context menus. They just have to be in the right place. That they look different doesn't matter as much. And this doesn't mean that you can't try new ideas for UI. But basic things that users expect to work should still work. E.g. Command-Q on OS X better quit the app :-) > > As noted already with my reference to Office and browsers.. Fully native apps can be non-compliant with the platforms look and feel. So this isn't really a Java-specific issue. > > Scott > >> On Dec 9, 2013, at 4:24 AM, Felix Bembrick wrote: >> >> Spoiler: This is something I have become intensely passionate about so this is likely to be a long post... >> >> OK, so this (hijacked) thread started out as a discussion of options in JavaFX for implementing "Look and Feel". I think everyone agrees that even with CSS and skins, JavaFX lacks the built-in ability to define a true Look *and* Feel. Further to this, there has been discussion on Twitter and elsewhere regarding *native* Look and Feel and the merits of attempting such an animal with JavaFX. >> >> It is on this topic that I would like to add my 2 bits (as I am known to do)! I was going to use my blog http://justmy2bits.com but decided I would be much more likely to be able to engage fellow JavaFX developers in a positive, polite and respectful conversation here. >> >> First, anyone who may follow me on Twitter, in this forum or when I post in other forums (anyone?) will probably be a little bit confused as to where I actually stand on this issue. Well, this stems from the fact that I have been giving confusing (if not conflicting) input into various threads on this topic for quite a while. >> >> Why? >> >> Well, because until very recently, I myself was completely torn on the subject of native Look and Feel. In fact, I seemed to oscillate on an almost daily basis from thinking it's a great, achievable idea to dismissing such an idea on various grounds. I am swaying so much because I have so much riding on successful ports of JavaFX to iOS and Android and because those ports depend heavily on resolving this issue once and for all. >> >> Now I have had something of an epiphany and reached a conclusion. I now do not believe that pouring large (massive?) amounts of resources into the painstaking task of building a fully compliant, fully performant native Look and Feel is justifiable or worth the effort. And let's be clear about this: it is a *lot* of effort! >> >> But before I proceed I just want to say categorically how much I admire the thoroughly awesome work/efforts of the likes of Pedro DV, Claudine Zillmann, Hendrik Ebbers et. al. in (trying ever so hard) to bring native Look and Feel to various OS/platforms with JavaFX. I cannot put in words how much I am in awe of the commitment, the attention to detail, the technical prowess, the artistry and the drive of these fantastic people. Their work will undoubtedly be extremely useful to many developers worldwide. >> >> I want to make all that *perfectly clear* because now I am going to explain why I (probably) will not be one of those people and (hopefully) do it with the utmost respect for the aforementioned rock stars :-) >> >> Right, so back to the issue of whether to or not to implement or use a native Look and Feel. Some of the following comments have already been made by me on other networks and in other forums so apologies if it seems a bit repetitive to some. >> >> At first glance, the idea of a native Look and Feel seems almost like the proverbial Holy Grail. I mean, if such a thing were truly possible and viable, who wouldn't want one? You still have your single codebase across all platforms and you just just plug-in the particular native Look and Feel for your target platform and voila! World domination will surely soon follow! >> >> Well, not quite. It's a great idea but I am going out on a limb to claim that it has *never* worked. Ever! And by "work" I mean so that your "not-so-native" app looks and feels (which includes all aspects of behaviour, not just appearance) *exactly* like a true native app and *no one* could tell you that it *wasn't* a native app. >> >> Yes, I know there are masses now screaming at their monitors who will undoubtedly cite the numerous success stories of Swing apps or maybe even Qt or some other cross-platform UI toolkit and maybe my standards/criteria are harsher than others but I stand by my claim that this has *never ever* really, really, really worked. >> >> OK, so why not? >> >> Here's my first point: I postulate that such a noble goal is not actually achievable. It is not actually achievable for a number of reasons. >> >> It is not actually achievable because, in most cases, we do not have access to the code that implements the native controls on each OS so, at best, we are "guessing" when we try to emulate all aspects of their appearance and behaviour. Try as we may, we will never get *every* control exactly right and I firmly believe that anything that purports to be something else needs to be *identical*. >> >> It is not actually achievable because just as you feel you have reached an acceptable level of "compliance" (which I again wager is never 100%), the goal posts will move. That is, the OS vendor will release an update and even the minor ones can change either the appearance or behaviour of controls, sometimes in subtle ways, sometimes in not so subtle ways. Either way, there is then going to be a period of time where you are playing a futile game of catch-up and during that time your "native" controls will be surely exposed for the impostors they are. >> >> It is not actually achievable because the same control on one OS can look and feel/behave quite differently on another OS which leads to very poor levels of reuse. >> >> It is not actually achievable because many controls simply can't be emulated in using Java/JavaFX most likely because they have exclusive access to native system or OS calls that are not accessible to Java or because the expected levels of performance or "snappiness" cannot be achieved using Java by any means. Even with JNA or JNI you would be left scratching your head in many cases. >> >> And, it is not actually achievable because it's simply too much work to get anywhere near to perfection! We are talking *massive* amounts of effort and very few people have either the talent, the eye, the attention to detail or the patience to see such a project right through to the end where *all* controls are covered. The rock stars I mentioned earlier are the exceptions of course. There's clearly zero point in emulating *some* of the controls only; you need the *full set* or it's just not viable. >> >> Finally, and to look at it another way, what do we get even if some super-human delivers us a native Look and Feel for every possible platform? Well, a massive maintenance nightmare for a start! This super-human would basically be spending all their super time and using up all their super powers just keeping such libraries current. >> >> So, if you are still with me, why bother? Just consider if all those rock stars (and super heroes) concentrated all their super efforts into either improving the features, stability, performance or appearance of JavaFX itself? Just think what we could achieve! >> >> And on the why bother theme, why bother to devote all that time and effort, spend all those millions, tear out all that hair and hit all those roadblocks when the very thing we are trying to achieve is already available? >> >> Yes, that's right, if you really, really, really want to build a native app then why don't you just build a native app? There are numerous tools, languages, IDEs, toolchains and libraries that enable you to build awesome *true* native apps! I just don't think JavaFX is one of them :-) >> >> And it doesn't have to be one of those toolkits because JavaFX can be used to build an entirely different class of application and I now strongly believe that this is the kind of app we should be concentrating on. That class (or classes) of app is one that is not so heavily dependent on the native Look and Feel and doesn't need to be. There are probably hundreds of thousands of apps that are like this. They are everywhere and JavaFX is *perfect* for them! >> >> Scott Palmer has argued that this approach is not valid (and sorry Scott if am inaccurately paraphrasing you). He cites examples such as Chrome, Firefox and even MS Office as proof that this approach does not work. However, my response to that would be to say that just because these are examples of where the developers got it seriously wrong, they do not prove that this approach can't work and isn't working all over the marketplace. >> >> There is no need to develop crappy, mistake ridden software by using a toolkit such as JavaFX in a way that does not attempt to emulate the native Look and Feel and the fact that even big companies like Google *still* clearly get it horribly wrong doesn't imply that we *all* have to be so ineffective. >> >> Part of my newly-found aversion to emulated native Look and Feel comes from my many years of both developing and using Swing applications. Sure, I know there are *some* (handful?) successful Swing apps, most notably those developed with the NetBeans RCP, but in general Swing has failed to have any penetration into serious commercial software. Why? Well, there are several reasons (and a lot are due to Java itself) but, for me, I was never satisfied with the so-called native Look and Feel options that come with Swing. I have been (and still am) very critical of the Windows Look and Feel in Swing in particular because, even today, there is a vast gulf between an actual native Windows application and a Swing application with this Look and Feel. So much so that I still want to almost knock my monitor off the desk when I am using an application developed in this way. For me, this is not acceptable and such an application could never be released as a serious commercial product. >> >> And that's pretty much what this all boils down to: developing serious commercial software. >> >> If you are interested in developing something else then these lengthy comments (am I *still* going?) probably do not apply to you :-) >> >> So to summarise, I argue that it is not possible to develop serious commercial software using emulated Look and Feel in JavaFX or in *any* UI toolkit. I *strongly* recommend that we all work together to make JavaFX as good as it can be (which is absolutely awesome) by focusing on the core product, the API, the performance, the feature set, the stability *and* the supported platforms rather than throw good money after bad on a *wonderful* goal that ultimately can never be reached... >> >> Just my 2 bits, >> >> Felix >> >> P.S. I surely hope I have not offended any/all those who either disagree with the main points or who still believe that native Look and Feel is viable. I remind you all that I am on my knees bowing with respect to the rock stars I referred to and anyone else working on similar projects. Absolutely no offence is intended, I am merely expressing my (passionate) feelings on this subject. >> >> >>> On 9 December 2013 19:10, Felix Bembrick wrote: >>> >>> >>> >>>> On 9 December 2013 16:10, Scott Palmer wrote: >>>> >>>> >>>>> On Dec 8, 2013, at 9:18 PM, Felix Bembrick wrote: >>>> >>>>> Firstly, it will *never* be possible to completely emulate the native look >>>>> and feel. >>>> Sure it is. Though it may never be practical, for many of the reasons you have given. >>>> >>>>> My reasoning is: why bother? >>>> Because it matters. As computer literate developers, we often don't realize what trips other people up. I get so frustrated with apps these days because they have become hard to use simply because the developers tried to define their own look and feel. For example, Chrome and Firefox... Or Microsoft Office... >>>> Where did the title bar go in chrome? >>>> Where have all the menus gone in Chrome, Firefox andOffice? I can find them, but when I have to play tech support over the phone to my parents these changes are massive problems. I ask my dad to move he window by dragging the title bar (please don't ask why he doesn't know to do this himself after decades of computer use) and he says "there is no title bar"... I the remember that yes, chrome did that... They got rid of a standard concept in the OS' windowing system and screed the end users. >>>> >>>> These apps became harder to use because of this "innovation" in the UI. >>>> >>>> Contrast this with applications on OS X where getting the UI right has always been an important priority for developers. Because adhering to the system look and feel has always been strongly encouraged the system is much easier to use. >>>> >>>>> These days, many apps do not look 100% native and may have their own >>>>> controls or look and feel in general. >>>> Yes, but to what end? They are now more difficult to use. >>>> >>>>> Why not channel all that massive >>>>> effort in constructing an emulated native look and feel into simply making >>>>> JavaFX better overall? >>>> But I agree here. The general look isn't the main issue.. E.g. little variations in color and minor tweaks to a few pixels here and there don't really matter. What does matter is when you change the order of buttons, like Okay & Cancel which have standard places that are different between Mac and Windows, or you move the About menu item from the Application menu on an OS X app to the help menu! because that is where you find it on Windows. Those things matter. >>>> >>>> >>>> Scott >>>> >>>>> Felix >>>>> >>>>> >>>>> >>>>> On 9 December 2013 12:35, Pedro Duque Vieira wrote: >>>>> >>>>>> Thanks! >>>>>> >>>>>> @Jasper: Yes, that's very interesting! Forgot that was possible to do in >>>>>> CSS. >>>>>> >>>>>> >>>>>>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall wrote: >>>>>>> >>>>>>> It may be possible to change the LOOK with CSS, but not the FEEL, which >>>>>> is >>>>>>> where Java apps have traditionally failed big time. >>>>>>> >>>>>>> Some things that I don?t think can be changed with CSS: >>>>>>> >>>>>>> 1) texts >>>>>>> 2) order of buttons >>>>>>> 3) escape characters for shortcuts >>>>>>> 4) menus >>>>>>> 5) system-level stuff (double-clicking on files, dropping files on >>>>>>> applications, ?) >>>>>>> 6) filesystem conventions >>>>>>> 7) ... >>>>>>> >>>>>>> I think FXML can fix some of these, but not all. So it seems to me that a >>>>>>> LaF in JFX will consist of at least: >>>>>>> >>>>>>> - one or more CSS files >>>>>>> - one or more FXML files >>>>>>> - some plumbing at the system level >>>>>>> >>>>>>> It would be nice to have a set of proper LaFs for each major platform >>>>>> with >>>>>>> an appropriate common API. >>>>>>> >>>>>>> Steve >>>>>>> >>>>>>>> On 9 Dec 2013, at 00:20, Jasper Potts wrote: >>>>>>>> >>>>>>>> You can set skin classes from CSS so should be able to do everything >>>>>> you >>>>>>> could with Swing and more. With just a CSS file and skins as and when >>>>>>> needed. >>>>>>>> Jasper >>>>>>>> >>>>>>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles >>>>>> wrote: >>>>>>>>> At present there are no plans to introduce any further API or >>>>>>>>> functionality in this area, but if there is something you are wanting >>>>>>>>> then you should file feature requests in Jira. >>>>>>>>> >>>>>>>>> -- Jonathan >>>>>>>>> >>>>>>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> Is there any Look and Feel mechanism in place, like the one in Swing? >>>>>>> That >>>>>>>>>> doesn't appear to exist.. >>>>>>>>>> >>>>>>>>>> Are there any plans to add one? You can only do so much with CSS... >>>>>>>>>> >>>>>>>>>> Thanks in advance, best regards, >>>>>> >>>>>> -- >>>>>> Pedro Duque Vieira >>>>>> From felix.bembrick at gmail.com Mon Dec 9 09:31:35 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Tue, 10 Dec 2013 04:31:35 +1100 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: <52A5E0BA.1010800@oracle.com> References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> <52A5E0BA.1010800@oracle.com> Message-ID: <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> Stephen, I thoroughly agree that JavaFX is by far the best choice for non-native apps/widgets which is precisely my point. They are the kind of apps perfect for using JavaFX. But you refer to giving people the choice to go native where appropriate. How can I exercise that choice? Where is the support for native widgets in JavaFX? And isn't the real Holy Grail being able to mix native and non-native widgets in the same app with all features of Node being available to every widget, with all the effects and transforms, all the CSS/styling and with all the performance? Could JavaFX ever be such a toolkit? > On 10 Dec 2013, at 2:24, Stephen F Northover wrote: > > Here are my thoughts on the matter. Give people the choice of whether to use native or non-native components. In some applications, everything will be non-native. In others, only the main content area will be non-native and the rest will be native. In some mobile applications, perhaps the preference pages will be native and other parts will not. > > JavaFX is the best choice for non-native widgets and we are committed to making it the best toolkit all around. > > Steve > >> On 2013-12-09 9:49 AM, Scott Palmer wrote: >> I agree that perfect sync with native look and feels is not what is required and not worth the effort. I do think though that major concepts in the platform's look and feel should (must!) be followed or the user experience is ruined. >> >> The example of the order of the ok and cancel buttons has been brought up already. But that isn't even the most important one. >> >> Things like shortcut keys. CTRL-C to copy on windows, Command-C to copy on Mac. Standard menu layouts, right-click behaviour and standard context menus. They just have to be in the right place. That they look different doesn't matter as much. And this doesn't mean that you can't try new ideas for UI. But basic things that users expect to work should still work. E.g. Command-Q on OS X better quit the app :-) >> >> As noted already with my reference to Office and browsers.. Fully native apps can be non-compliant with the platforms look and feel. So this isn't really a Java-specific issue. >> >> Scott >> >>> On Dec 9, 2013, at 4:24 AM, Felix Bembrick wrote: >>> >>> Spoiler: This is something I have become intensely passionate about so this is likely to be a long post... >>> >>> OK, so this (hijacked) thread started out as a discussion of options in JavaFX for implementing "Look and Feel". I think everyone agrees that even with CSS and skins, JavaFX lacks the built-in ability to define a true Look *and* Feel. Further to this, there has been discussion on Twitter and elsewhere regarding *native* Look and Feel and the merits of attempting such an animal with JavaFX. >>> >>> It is on this topic that I would like to add my 2 bits (as I am known to do)! I was going to use my blog http://justmy2bits.com but decided I would be much more likely to be able to engage fellow JavaFX developers in a positive, polite and respectful conversation here. >>> >>> First, anyone who may follow me on Twitter, in this forum or when I post in other forums (anyone?) will probably be a little bit confused as to where I actually stand on this issue. Well, this stems from the fact that I have been giving confusing (if not conflicting) input into various threads on this topic for quite a while. >>> >>> Why? >>> >>> Well, because until very recently, I myself was completely torn on the subject of native Look and Feel. In fact, I seemed to oscillate on an almost daily basis from thinking it's a great, achievable idea to dismissing such an idea on various grounds. I am swaying so much because I have so much riding on successful ports of JavaFX to iOS and Android and because those ports depend heavily on resolving this issue once and for all. >>> >>> Now I have had something of an epiphany and reached a conclusion. I now do not believe that pouring large (massive?) amounts of resources into the painstaking task of building a fully compliant, fully performant native Look and Feel is justifiable or worth the effort. And let's be clear about this: it is a *lot* of effort! >>> >>> But before I proceed I just want to say categorically how much I admire the thoroughly awesome work/efforts of the likes of Pedro DV, Claudine Zillmann, Hendrik Ebbers et. al. in (trying ever so hard) to bring native Look and Feel to various OS/platforms with JavaFX. I cannot put in words how much I am in awe of the commitment, the attention to detail, the technical prowess, the artistry and the drive of these fantastic people. Their work will undoubtedly be extremely useful to many developers worldwide. >>> >>> I want to make all that *perfectly clear* because now I am going to explain why I (probably) will not be one of those people and (hopefully) do it with the utmost respect for the aforementioned rock stars :-) >>> >>> Right, so back to the issue of whether to or not to implement or use a native Look and Feel. Some of the following comments have already been made by me on other networks and in other forums so apologies if it seems a bit repetitive to some. >>> >>> At first glance, the idea of a native Look and Feel seems almost like the proverbial Holy Grail. I mean, if such a thing were truly possible and viable, who wouldn't want one? You still have your single codebase across all platforms and you just just plug-in the particular native Look and Feel for your target platform and voila! World domination will surely soon follow! >>> >>> Well, not quite. It's a great idea but I am going out on a limb to claim that it has *never* worked. Ever! And by "work" I mean so that your "not-so-native" app looks and feels (which includes all aspects of behaviour, not just appearance) *exactly* like a true native app and *no one* could tell you that it *wasn't* a native app. >>> >>> Yes, I know there are masses now screaming at their monitors who will undoubtedly cite the numerous success stories of Swing apps or maybe even Qt or some other cross-platform UI toolkit and maybe my standards/criteria are harsher than others but I stand by my claim that this has *never ever* really, really, really worked. >>> >>> OK, so why not? >>> >>> Here's my first point: I postulate that such a noble goal is not actually achievable. It is not actually achievable for a number of reasons. >>> >>> It is not actually achievable because, in most cases, we do not have access to the code that implements the native controls on each OS so, at best, we are "guessing" when we try to emulate all aspects of their appearance and behaviour. Try as we may, we will never get *every* control exactly right and I firmly believe that anything that purports to be something else needs to be *identical*. >>> >>> It is not actually achievable because just as you feel you have reached an acceptable level of "compliance" (which I again wager is never 100%), the goal posts will move. That is, the OS vendor will release an update and even the minor ones can change either the appearance or behaviour of controls, sometimes in subtle ways, sometimes in not so subtle ways. Either way, there is then going to be a period of time where you are playing a futile game of catch-up and during that time your "native" controls will be surely exposed for the impostors they are. >>> >>> It is not actually achievable because the same control on one OS can look and feel/behave quite differently on another OS which leads to very poor levels of reuse. >>> >>> It is not actually achievable because many controls simply can't be emulated in using Java/JavaFX most likely because they have exclusive access to native system or OS calls that are not accessible to Java or because the expected levels of performance or "snappiness" cannot be achieved using Java by any means. Even with JNA or JNI you would be left scratching your head in many cases. >>> >>> And, it is not actually achievable because it's simply too much work to get anywhere near to perfection! We are talking *massive* amounts of effort and very few people have either the talent, the eye, the attention to detail or the patience to see such a project right through to the end where *all* controls are covered. The rock stars I mentioned earlier are the exceptions of course. There's clearly zero point in emulating *some* of the controls only; you need the *full set* or it's just not viable. >>> >>> Finally, and to look at it another way, what do we get even if some super-human delivers us a native Look and Feel for every possible platform? Well, a massive maintenance nightmare for a start! This super-human would basically be spending all their super time and using up all their super powers just keeping such libraries current. >>> >>> So, if you are still with me, why bother? Just consider if all those rock stars (and super heroes) concentrated all their super efforts into either improving the features, stability, performance or appearance of JavaFX itself? Just think what we could achieve! >>> >>> And on the why bother theme, why bother to devote all that time and effort, spend all those millions, tear out all that hair and hit all those roadblocks when the very thing we are trying to achieve is already available? >>> >>> Yes, that's right, if you really, really, really want to build a native app then why don't you just build a native app? There are numerous tools, languages, IDEs, toolchains and libraries that enable you to build awesome *true* native apps! I just don't think JavaFX is one of them :-) >>> >>> And it doesn't have to be one of those toolkits because JavaFX can be used to build an entirely different class of application and I now strongly believe that this is the kind of app we should be concentrating on. That class (or classes) of app is one that is not so heavily dependent on the native Look and Feel and doesn't need to be. There are probably hundreds of thousands of apps that are like this. They are everywhere and JavaFX is *perfect* for them! >>> >>> Scott Palmer has argued that this approach is not valid (and sorry Scott if am inaccurately paraphrasing you). He cites examples such as Chrome, Firefox and even MS Office as proof that this approach does not work. However, my response to that would be to say that just because these are examples of where the developers got it seriously wrong, they do not prove that this approach can't work and isn't working all over the marketplace. >>> >>> There is no need to develop crappy, mistake ridden software by using a toolkit such as JavaFX in a way that does not attempt to emulate the native Look and Feel and the fact that even big companies like Google *still* clearly get it horribly wrong doesn't imply that we *all* have to be so ineffective. >>> >>> Part of my newly-found aversion to emulated native Look and Feel comes from my many years of both developing and using Swing applications. Sure, I know there are *some* (handful?) successful Swing apps, most notably those developed with the NetBeans RCP, but in general Swing has failed to have any penetration into serious commercial software. Why? Well, there are several reasons (and a lot are due to Java itself) but, for me, I was never satisfied with the so-called native Look and Feel options that come with Swing. I have been (and still am) very critical of the Windows Look and Feel in Swing in particular because, even today, there is a vast gulf between an actual native Windows application and a Swing application with this Look and Feel. So much so that I still want to almost knock my monitor off the desk when I am using an application developed in this way. For me, this is not acceptable and such an application could never be released as a serious commercial product. >>> >>> And that's pretty much what this all boils down to: developing serious commercial software. >>> >>> If you are interested in developing something else then these lengthy comments (am I *still* going?) probably do not apply to you :-) >>> >>> So to summarise, I argue that it is not possible to develop serious commercial software using emulated Look and Feel in JavaFX or in *any* UI toolkit. I *strongly* recommend that we all work together to make JavaFX as good as it can be (which is absolutely awesome) by focusing on the core product, the API, the performance, the feature set, the stability *and* the supported platforms rather than throw good money after bad on a *wonderful* goal that ultimately can never be reached... >>> >>> Just my 2 bits, >>> >>> Felix >>> >>> P.S. I surely hope I have not offended any/all those who either disagree with the main points or who still believe that native Look and Feel is viable. I remind you all that I am on my knees bowing with respect to the rock stars I referred to and anyone else working on similar projects. Absolutely no offence is intended, I am merely expressing my (passionate) feelings on this subject. >>> >>> >>>> On 9 December 2013 19:10, Felix Bembrick wrote: >>>> >>>> >>>> >>>>> On 9 December 2013 16:10, Scott Palmer wrote: >>>>> >>>>> >>>>>> On Dec 8, 2013, at 9:18 PM, Felix Bembrick wrote: >>>>> >>>>>> Firstly, it will *never* be possible to completely emulate the native look >>>>>> and feel. >>>>> Sure it is. Though it may never be practical, for many of the reasons you have given. >>>>> >>>>>> My reasoning is: why bother? >>>>> Because it matters. As computer literate developers, we often don't realize what trips other people up. I get so frustrated with apps these days because they have become hard to use simply because the developers tried to define their own look and feel. For example, Chrome and Firefox... Or Microsoft Office... >>>>> Where did the title bar go in chrome? >>>>> Where have all the menus gone in Chrome, Firefox andOffice? I can find them, but when I have to play tech support over the phone to my parents these changes are massive problems. I ask my dad to move he window by dragging the title bar (please don't ask why he doesn't know to do this himself after decades of computer use) and he says "there is no title bar"... I the remember that yes, chrome did that... They got rid of a standard concept in the OS' windowing system and screed the end users. >>>>> >>>>> These apps became harder to use because of this "innovation" in the UI. >>>>> >>>>> Contrast this with applications on OS X where getting the UI right has always been an important priority for developers. Because adhering to the system look and feel has always been strongly encouraged the system is much easier to use. >>>>> >>>>>> These days, many apps do not look 100% native and may have their own >>>>>> controls or look and feel in general. >>>>> Yes, but to what end? They are now more difficult to use. >>>>> >>>>>> Why not channel all that massive >>>>>> effort in constructing an emulated native look and feel into simply making >>>>>> JavaFX better overall? >>>>> But I agree here. The general look isn't the main issue.. E.g. little variations in color and minor tweaks to a few pixels here and there don't really matter. What does matter is when you change the order of buttons, like Okay & Cancel which have standard places that are different between Mac and Windows, or you move the About menu item from the Application menu on an OS X app to the help menu! because that is where you find it on Windows. Those things matter. >>>>> >>>>> >>>>> Scott >>>>> >>>>>> Felix >>>>>> >>>>>> >>>>>> >>>>>> On 9 December 2013 12:35, Pedro Duque Vieira wrote: >>>>>> >>>>>>> Thanks! >>>>>>> >>>>>>> @Jasper: Yes, that's very interesting! Forgot that was possible to do in >>>>>>> CSS. >>>>>>> >>>>>>> >>>>>>>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall wrote: >>>>>>>> >>>>>>>> It may be possible to change the LOOK with CSS, but not the FEEL, which >>>>>>> is >>>>>>>> where Java apps have traditionally failed big time. >>>>>>>> >>>>>>>> Some things that I don?t think can be changed with CSS: >>>>>>>> >>>>>>>> 1) texts >>>>>>>> 2) order of buttons >>>>>>>> 3) escape characters for shortcuts >>>>>>>> 4) menus >>>>>>>> 5) system-level stuff (double-clicking on files, dropping files on >>>>>>>> applications, ?) >>>>>>>> 6) filesystem conventions >>>>>>>> 7) ... >>>>>>>> >>>>>>>> I think FXML can fix some of these, but not all. So it seems to me that a >>>>>>>> LaF in JFX will consist of at least: >>>>>>>> >>>>>>>> - one or more CSS files >>>>>>>> - one or more FXML files >>>>>>>> - some plumbing at the system level >>>>>>>> >>>>>>>> It would be nice to have a set of proper LaFs for each major platform >>>>>>> with >>>>>>>> an appropriate common API. >>>>>>>> >>>>>>>> Steve >>>>>>>> >>>>>>>>> On 9 Dec 2013, at 00:20, Jasper Potts wrote: >>>>>>>>> >>>>>>>>> You can set skin classes from CSS so should be able to do everything >>>>>>> you >>>>>>>> could with Swing and more. With just a CSS file and skins as and when >>>>>>>> needed. >>>>>>>>> Jasper >>>>>>>>> >>>>>>>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles >>>>>>> wrote: >>>>>>>>>> At present there are no plans to introduce any further API or >>>>>>>>>> functionality in this area, but if there is something you are wanting >>>>>>>>>> then you should file feature requests in Jira. >>>>>>>>>> >>>>>>>>>> -- Jonathan >>>>>>>>>> >>>>>>>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >>>>>>>>>>> Hi, >>>>>>>>>>> >>>>>>>>>>> Is there any Look and Feel mechanism in place, like the one in Swing? >>>>>>>> That >>>>>>>>>>> doesn't appear to exist.. >>>>>>>>>>> >>>>>>>>>>> Are there any plans to add one? You can only do so much with CSS... >>>>>>>>>>> >>>>>>>>>>> Thanks in advance, best regards, >>>>>>> >>>>>>> -- >>>>>>> Pedro Duque Vieira > > From felix.bembrick at gmail.com Mon Dec 9 09:42:07 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Tue, 10 Dec 2013 04:42:07 +1100 Subject: Look and feel mechanism? In-Reply-To: References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> Message-ID: Agreed that Quaqua did a great job and lets not lose sight of the fact that I am totally praising the efforts of everyone who has worked in this frustrating and tedious area of UI development/support. I just think the obvious talents of those people could be utilised for a purpose less likely to drive them crazy! Yes, Metal was an unabridged disaster but did you ever see Substance? I thought that looked great on all platforms. And today there is also Cezanne which isn't too shabby. What's really needed is, as you say, some kind of platform abstraction that handles all the OS specific details and then you code to use it. Ideally this abstraction would result in the use of actual native widgets but how you would apply all the features that come with Node to those widgets I have no idea... > On 9 Dec 2013, at 22:49, Stephen Winnall wrote: > >> On 9 Dec 2013, at 03:18, Felix Bembrick wrote: >> >> @Stephen, you are absolutely right about this. But such an approach (and pretty much *any* approach) to "emulated" native look and feels is fraught with difficulties and complexities. >> >> Firstly, it will *never* be possible to completely emulate the native look and feel. And, even if the differences are subtle, there is the very real risk that the end user will have a very uneasy feeling using such a look and feel. At times it will even seem like an imposter. > > Agreed, though Quaqua did quite a good (and unobtrusive) job for the look on Swing on Mac OS X. > >> Secondly, you will be forever playing catchup as each new major release (and also even each minor update) changes one or more of the behaviours that you have so carefully emulated. The result is that for a while at least, your emulated look and feel is an even more obvious imposter with an even more uneasy experience for the user. > > Indeed. I?m not really a fan of reimplementing something that?s already there anyway. It should be possible to use the native facilities via appropriate APIs. > >> Thirdly, building such emulated look and feels is a *lot* of work (much more than you would think). > > Tell me about it :-) I spent a long time trying to create a Platform abstraction for Swing which would allow applications to be moved from platform to platform and adopt the native look and feel. The along came JavaFX. But we missed out on the chance of developing a platform abstraction there too. > >> My reasoning is: why bother? Why not build a "JavaFX look and feel" (akin to something like Nimubs in Swing) that simply doesn't even try to look native? Then you know for sure your app looks and behaves identically on all devices and there is no hint of "imposter-ness?. > > The answer to this question is relatively simple: Metal. Metal, you will recall, was the one-size-fits-all look for Swing. And it was and was a major reason for the failure of Swing (and thus Java) on the desktop. > > Ultimately, all cross-platform looks suffer from the same problem: they don?t look right on any platform and often terrible on others. And ignoring the feel of the target platform is the ultimate sin: users don?t understand what the app is doing or why but often cannot articulate their feelings because there?s no *observable* problem, only a ?feelable" one. And so another Java desktop app dies the death... > >> These days, many apps do not look 100% native and may have their own controls or look and feel in general. Why not channel all that massive effort in constructing an emulated native look and feel into simply making JavaFX better overall? > > Agreed. Let?s define a platform abstraction? > > Steve From thoughtslinger at gmail.com Mon Dec 9 09:47:06 2013 From: thoughtslinger at gmail.com (Rick Walker) Date: Mon, 9 Dec 2013 12:47:06 -0500 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> <52A5E0BA.1010800@oracle.com> <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> Message-ID: There are a few critical elements that must conform to platform-specific look and feel: - app installer - management of app icons - system dialogs: file open, save and save, print - os x system menu bar Apart from these elements, native look and feel should be optional. On Mon, Dec 9, 2013 at 12:31 PM, Felix Bembrick wrote: > Stephen, I thoroughly agree that JavaFX is by far the best choice for non-native apps/widgets which is precisely my point. They are the kind of apps perfect for using JavaFX. > > But you refer to giving people the choice to go native where appropriate. How can I exercise that choice? Where is the support for native widgets in JavaFX? > > And isn't the real Holy Grail being able to mix native and non-native widgets in the same app with all features of Node being available to every widget, with all the effects and transforms, all the CSS/styling and with all the performance? > > Could JavaFX ever be such a toolkit? > >> On 10 Dec 2013, at 2:24, Stephen F Northover wrote: >> >> Here are my thoughts on the matter. Give people the choice of whether to use native or non-native components. In some applications, everything will be non-native. In others, only the main content area will be non-native and the rest will be native. In some mobile applications, perhaps the preference pages will be native and other parts will not. >> >> JavaFX is the best choice for non-native widgets and we are committed to making it the best toolkit all around. >> >> Steve >> >>> On 2013-12-09 9:49 AM, Scott Palmer wrote: >>> I agree that perfect sync with native look and feels is not what is required and not worth the effort. I do think though that major concepts in the platform's look and feel should (must!) be followed or the user experience is ruined. >>> >>> The example of the order of the ok and cancel buttons has been brought up already. But that isn't even the most important one. >>> >>> Things like shortcut keys. CTRL-C to copy on windows, Command-C to copy on Mac. Standard menu layouts, right-click behaviour and standard context menus. They just have to be in the right place. That they look different doesn't matter as much. And this doesn't mean that you can't try new ideas for UI. But basic things that users expect to work should still work. E.g. Command-Q on OS X better quit the app :-) >>> >>> As noted already with my reference to Office and browsers.. Fully native apps can be non-compliant with the platforms look and feel. So this isn't really a Java-specific issue. >>> >>> Scott >>> >>>> On Dec 9, 2013, at 4:24 AM, Felix Bembrick wrote: >>>> >>>> Spoiler: This is something I have become intensely passionate about so this is likely to be a long post... >>>> >>>> OK, so this (hijacked) thread started out as a discussion of options in JavaFX for implementing "Look and Feel". I think everyone agrees that even with CSS and skins, JavaFX lacks the built-in ability to define a true Look *and* Feel. Further to this, there has been discussion on Twitter and elsewhere regarding *native* Look and Feel and the merits of attempting such an animal with JavaFX. >>>> >>>> It is on this topic that I would like to add my 2 bits (as I am known to do)! I was going to use my blog http://justmy2bits.com but decided I would be much more likely to be able to engage fellow JavaFX developers in a positive, polite and respectful conversation here. >>>> >>>> First, anyone who may follow me on Twitter, in this forum or when I post in other forums (anyone?) will probably be a little bit confused as to where I actually stand on this issue. Well, this stems from the fact that I have been giving confusing (if not conflicting) input into various threads on this topic for quite a while. >>>> >>>> Why? >>>> >>>> Well, because until very recently, I myself was completely torn on the subject of native Look and Feel. In fact, I seemed to oscillate on an almost daily basis from thinking it's a great, achievable idea to dismissing such an idea on various grounds. I am swaying so much because I have so much riding on successful ports of JavaFX to iOS and Android and because those ports depend heavily on resolving this issue once and for all. >>>> >>>> Now I have had something of an epiphany and reached a conclusion. I now do not believe that pouring large (massive?) amounts of resources into the painstaking task of building a fully compliant, fully performant native Look and Feel is justifiable or worth the effort. And let's be clear about this: it is a *lot* of effort! >>>> >>>> But before I proceed I just want to say categorically how much I admire the thoroughly awesome work/efforts of the likes of Pedro DV, Claudine Zillmann, Hendrik Ebbers et. al. in (trying ever so hard) to bring native Look and Feel to various OS/platforms with JavaFX. I cannot put in words how much I am in awe of the commitment, the attention to detail, the technical prowess, the artistry and the drive of these fantastic people. Their work will undoubtedly be extremely useful to many developers worldwide. >>>> >>>> I want to make all that *perfectly clear* because now I am going to explain why I (probably) will not be one of those people and (hopefully) do it with the utmost respect for the aforementioned rock stars :-) >>>> >>>> Right, so back to the issue of whether to or not to implement or use a native Look and Feel. Some of the following comments have already been made by me on other networks and in other forums so apologies if it seems a bit repetitive to some. >>>> >>>> At first glance, the idea of a native Look and Feel seems almost like the proverbial Holy Grail. I mean, if such a thing were truly possible and viable, who wouldn't want one? You still have your single codebase across all platforms and you just just plug-in the particular native Look and Feel for your target platform and voila! World domination will surely soon follow! >>>> >>>> Well, not quite. It's a great idea but I am going out on a limb to claim that it has *never* worked. Ever! And by "work" I mean so that your "not-so-native" app looks and feels (which includes all aspects of behaviour, not just appearance) *exactly* like a true native app and *no one* could tell you that it *wasn't* a native app. >>>> >>>> Yes, I know there are masses now screaming at their monitors who will undoubtedly cite the numerous success stories of Swing apps or maybe even Qt or some other cross-platform UI toolkit and maybe my standards/criteria are harsher than others but I stand by my claim that this has *never ever* really, really, really worked. >>>> >>>> OK, so why not? >>>> >>>> Here's my first point: I postulate that such a noble goal is not actually achievable. It is not actually achievable for a number of reasons. >>>> >>>> It is not actually achievable because, in most cases, we do not have access to the code that implements the native controls on each OS so, at best, we are "guessing" when we try to emulate all aspects of their appearance and behaviour. Try as we may, we will never get *every* control exactly right and I firmly believe that anything that purports to be something else needs to be *identical*. >>>> >>>> It is not actually achievable because just as you feel you have reached an acceptable level of "compliance" (which I again wager is never 100%), the goal posts will move. That is, the OS vendor will release an update and even the minor ones can change either the appearance or behaviour of controls, sometimes in subtle ways, sometimes in not so subtle ways. Either way, there is then going to be a period of time where you are playing a futile game of catch-up and during that time your "native" controls will be surely exposed for the impostors they are. >>>> >>>> It is not actually achievable because the same control on one OS can look and feel/behave quite differently on another OS which leads to very poor levels of reuse. >>>> >>>> It is not actually achievable because many controls simply can't be emulated in using Java/JavaFX most likely because they have exclusive access to native system or OS calls that are not accessible to Java or because the expected levels of performance or "snappiness" cannot be achieved using Java by any means. Even with JNA or JNI you would be left scratching your head in many cases. >>>> >>>> And, it is not actually achievable because it's simply too much work to get anywhere near to perfection! We are talking *massive* amounts of effort and very few people have either the talent, the eye, the attention to detail or the patience to see such a project right through to the end where *all* controls are covered. The rock stars I mentioned earlier are the exceptions of course. There's clearly zero point in emulating *some* of the controls only; you need the *full set* or it's just not viable. >>>> >>>> Finally, and to look at it another way, what do we get even if some super-human delivers us a native Look and Feel for every possible platform? Well, a massive maintenance nightmare for a start! This super-human would basically be spending all their super time and using up all their super powers just keeping such libraries current. >>>> >>>> So, if you are still with me, why bother? Just consider if all those rock stars (and super heroes) concentrated all their super efforts into either improving the features, stability, performance or appearance of JavaFX itself? Just think what we could achieve! >>>> >>>> And on the why bother theme, why bother to devote all that time and effort, spend all those millions, tear out all that hair and hit all those roadblocks when the very thing we are trying to achieve is already available? >>>> >>>> Yes, that's right, if you really, really, really want to build a native app then why don't you just build a native app? There are numerous tools, languages, IDEs, toolchains and libraries that enable you to build awesome *true* native apps! I just don't think JavaFX is one of them :-) >>>> >>>> And it doesn't have to be one of those toolkits because JavaFX can be used to build an entirely different class of application and I now strongly believe that this is the kind of app we should be concentrating on. That class (or classes) of app is one that is not so heavily dependent on the native Look and Feel and doesn't need to be. There are probably hundreds of thousands of apps that are like this. They are everywhere and JavaFX is *perfect* for them! >>>> >>>> Scott Palmer has argued that this approach is not valid (and sorry Scott if am inaccurately paraphrasing you). He cites examples such as Chrome, Firefox and even MS Office as proof that this approach does not work. However, my response to that would be to say that just because these are examples of where the developers got it seriously wrong, they do not prove that this approach can't work and isn't working all over the marketplace. >>>> >>>> There is no need to develop crappy, mistake ridden software by using a toolkit such as JavaFX in a way that does not attempt to emulate the native Look and Feel and the fact that even big companies like Google *still* clearly get it horribly wrong doesn't imply that we *all* have to be so ineffective. >>>> >>>> Part of my newly-found aversion to emulated native Look and Feel comes from my many years of both developing and using Swing applications. Sure, I know there are *some* (handful?) successful Swing apps, most notably those developed with the NetBeans RCP, but in general Swing has failed to have any penetration into serious commercial software. Why? Well, there are several reasons (and a lot are due to Java itself) but, for me, I was never satisfied with the so-called native Look and Feel options that come with Swing. I have been (and still am) very critical of the Windows Look and Feel in Swing in particular because, even today, there is a vast gulf between an actual native Windows application and a Swing application with this Look and Feel. So much so that I still want to almost knock my monitor off the desk when I am using an application developed in this way. For me, this is not acceptable and such an application could never be released as a serious commercial product. >>>> >>>> And that's pretty much what this all boils down to: developing serious commercial software. >>>> >>>> If you are interested in developing something else then these lengthy comments (am I *still* going?) probably do not apply to you :-) >>>> >>>> So to summarise, I argue that it is not possible to develop serious commercial software using emulated Look and Feel in JavaFX or in *any* UI toolkit. I *strongly* recommend that we all work together to make JavaFX as good as it can be (which is absolutely awesome) by focusing on the core product, the API, the performance, the feature set, the stability *and* the supported platforms rather than throw good money after bad on a *wonderful* goal that ultimately can never be reached... >>>> >>>> Just my 2 bits, >>>> >>>> Felix >>>> >>>> P.S. I surely hope I have not offended any/all those who either disagree with the main points or who still believe that native Look and Feel is viable. I remind you all that I am on my knees bowing with respect to the rock stars I referred to and anyone else working on similar projects. Absolutely no offence is intended, I am merely expressing my (passionate) feelings on this subject. >>>> >>>> >>>>> On 9 December 2013 19:10, Felix Bembrick wrote: >>>>> >>>>> >>>>> >>>>>> On 9 December 2013 16:10, Scott Palmer wrote: >>>>>> >>>>>> >>>>>>> On Dec 8, 2013, at 9:18 PM, Felix Bembrick wrote: >>>>>> >>>>>>> Firstly, it will *never* be possible to completely emulate the native look >>>>>>> and feel. >>>>>> Sure it is. Though it may never be practical, for many of the reasons you have given. >>>>>> >>>>>>> My reasoning is: why bother? >>>>>> Because it matters. As computer literate developers, we often don't realize what trips other people up. I get so frustrated with apps these days because they have become hard to use simply because the developers tried to define their own look and feel. For example, Chrome and Firefox... Or Microsoft Office... >>>>>> Where did the title bar go in chrome? >>>>>> Where have all the menus gone in Chrome, Firefox andOffice? I can find them, but when I have to play tech support over the phone to my parents these changes are massive problems. I ask my dad to move he window by dragging the title bar (please don't ask why he doesn't know to do this himself after decades of computer use) and he says "there is no title bar"... I the remember that yes, chrome did that... They got rid of a standard concept in the OS' windowing system and screed the end users. >>>>>> >>>>>> These apps became harder to use because of this "innovation" in the UI. >>>>>> >>>>>> Contrast this with applications on OS X where getting the UI right has always been an important priority for developers. Because adhering to the system look and feel has always been strongly encouraged the system is much easier to use. >>>>>> >>>>>>> These days, many apps do not look 100% native and may have their own >>>>>>> controls or look and feel in general. >>>>>> Yes, but to what end? They are now more difficult to use. >>>>>> >>>>>>> Why not channel all that massive >>>>>>> effort in constructing an emulated native look and feel into simply making >>>>>>> JavaFX better overall? >>>>>> But I agree here. The general look isn't the main issue.. E.g. little variations in color and minor tweaks to a few pixels here and there don't really matter. What does matter is when you change the order of buttons, like Okay & Cancel which have standard places that are different between Mac and Windows, or you move the About menu item from the Application menu on an OS X app to the help menu! because that is where you find it on Windows. Those things matter. >>>>>> >>>>>> >>>>>> Scott >>>>>> >>>>>>> Felix >>>>>>> >>>>>>> >>>>>>> >>>>>>> On 9 December 2013 12:35, Pedro Duque Vieira wrote: >>>>>>> >>>>>>>> Thanks! >>>>>>>> >>>>>>>> @Jasper: Yes, that's very interesting! Forgot that was possible to do in >>>>>>>> CSS. >>>>>>>> >>>>>>>> >>>>>>>>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall wrote: >>>>>>>>> >>>>>>>>> It may be possible to change the LOOK with CSS, but not the FEEL, which >>>>>>>> is >>>>>>>>> where Java apps have traditionally failed big time. >>>>>>>>> >>>>>>>>> Some things that I don?t think can be changed with CSS: >>>>>>>>> >>>>>>>>> 1) texts >>>>>>>>> 2) order of buttons >>>>>>>>> 3) escape characters for shortcuts >>>>>>>>> 4) menus >>>>>>>>> 5) system-level stuff (double-clicking on files, dropping files on >>>>>>>>> applications, ?) >>>>>>>>> 6) filesystem conventions >>>>>>>>> 7) ... >>>>>>>>> >>>>>>>>> I think FXML can fix some of these, but not all. So it seems to me that a >>>>>>>>> LaF in JFX will consist of at least: >>>>>>>>> >>>>>>>>> - one or more CSS files >>>>>>>>> - one or more FXML files >>>>>>>>> - some plumbing at the system level >>>>>>>>> >>>>>>>>> It would be nice to have a set of proper LaFs for each major platform >>>>>>>> with >>>>>>>>> an appropriate common API. >>>>>>>>> >>>>>>>>> Steve >>>>>>>>> >>>>>>>>>> On 9 Dec 2013, at 00:20, Jasper Potts wrote: >>>>>>>>>> >>>>>>>>>> You can set skin classes from CSS so should be able to do everything >>>>>>>> you >>>>>>>>> could with Swing and more. With just a CSS file and skins as and when >>>>>>>>> needed. >>>>>>>>>> Jasper >>>>>>>>>> >>>>>>>>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles >>>>>>>> wrote: >>>>>>>>>>> At present there are no plans to introduce any further API or >>>>>>>>>>> functionality in this area, but if there is something you are wanting >>>>>>>>>>> then you should file feature requests in Jira. >>>>>>>>>>> >>>>>>>>>>> -- Jonathan >>>>>>>>>>> >>>>>>>>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >>>>>>>>>>>> Hi, >>>>>>>>>>>> >>>>>>>>>>>> Is there any Look and Feel mechanism in place, like the one in Swing? >>>>>>>>> That >>>>>>>>>>>> doesn't appear to exist.. >>>>>>>>>>>> >>>>>>>>>>>> Are there any plans to add one? You can only do so much with CSS... >>>>>>>>>>>> >>>>>>>>>>>> Thanks in advance, best regards, >>>>>>>> >>>>>>>> -- >>>>>>>> Pedro Duque Vieira >> >> -- Richard P. Walker thoughtslinger at gmail.com This email is intended only for the use of the individual(s) to whom it is addressed and may be privileged and confidential. Unauthorised use or disclosure is prohibited. If you receive this e-mail in error, please advise immediately and delete the original message. This message may have been altered without your or our knowledge and the sender does not accept any liability for any errors or omissions in the message. Ce courriel est confidentiel et prot?g?. L'exp?diteur ne renonce pas aux droits et obligations qui s'y rapportent. Toute diffusion, utilisation ou copie de ce message ou des renseignements qu'il contient par une personne autre que le (les) destinataire(s) d?sign?(s) est interdite. Si vous recevez ce courriel par erreur, veuillez m'en aviser imm?diatement, par retour de courriel ou par un autre moyen. From felix.bembrick at gmail.com Mon Dec 9 09:55:05 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Tue, 10 Dec 2013 04:55:05 +1100 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> <52A5E0BA.1010800@oracle.com> <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> Message-ID: <7A4AE207-4FEE-47F1-9CC9-E84DB46F80CB@gmail.com> I would go further by saying that those things you have mentioned should be truly native, not just native look and feel. Consider the Swing file chooser using Windows look and feel for example. That just never worked or looked right. > On 10 Dec 2013, at 4:47, Rick Walker wrote: > > There are a few critical elements that must conform to > platform-specific look and feel: > > - app installer > - management of app icons > - system dialogs: file open, save and save, print > - os x system menu bar > > Apart from these elements, native look and feel should be optional. > > On Mon, Dec 9, 2013 at 12:31 PM, Felix Bembrick > wrote: >> Stephen, I thoroughly agree that JavaFX is by far the best choice for non-native apps/widgets which is precisely my point. They are the kind of apps perfect for using JavaFX. >> >> But you refer to giving people the choice to go native where appropriate. How can I exercise that choice? Where is the support for native widgets in JavaFX? >> >> And isn't the real Holy Grail being able to mix native and non-native widgets in the same app with all features of Node being available to every widget, with all the effects and transforms, all the CSS/styling and with all the performance? >> >> Could JavaFX ever be such a toolkit? >> >>> On 10 Dec 2013, at 2:24, Stephen F Northover wrote: >>> >>> Here are my thoughts on the matter. Give people the choice of whether to use native or non-native components. In some applications, everything will be non-native. In others, only the main content area will be non-native and the rest will be native. In some mobile applications, perhaps the preference pages will be native and other parts will not. >>> >>> JavaFX is the best choice for non-native widgets and we are committed to making it the best toolkit all around. >>> >>> Steve >>> >>>> On 2013-12-09 9:49 AM, Scott Palmer wrote: >>>> I agree that perfect sync with native look and feels is not what is required and not worth the effort. I do think though that major concepts in the platform's look and feel should (must!) be followed or the user experience is ruined. >>>> >>>> The example of the order of the ok and cancel buttons has been brought up already. But that isn't even the most important one. >>>> >>>> Things like shortcut keys. CTRL-C to copy on windows, Command-C to copy on Mac. Standard menu layouts, right-click behaviour and standard context menus. They just have to be in the right place. That they look different doesn't matter as much. And this doesn't mean that you can't try new ideas for UI. But basic things that users expect to work should still work. E.g. Command-Q on OS X better quit the app :-) >>>> >>>> As noted already with my reference to Office and browsers.. Fully native apps can be non-compliant with the platforms look and feel. So this isn't really a Java-specific issue. >>>> >>>> Scott >>>> >>>>> On Dec 9, 2013, at 4:24 AM, Felix Bembrick wrote: >>>>> >>>>> Spoiler: This is something I have become intensely passionate about so this is likely to be a long post... >>>>> >>>>> OK, so this (hijacked) thread started out as a discussion of options in JavaFX for implementing "Look and Feel". I think everyone agrees that even with CSS and skins, JavaFX lacks the built-in ability to define a true Look *and* Feel. Further to this, there has been discussion on Twitter and elsewhere regarding *native* Look and Feel and the merits of attempting such an animal with JavaFX. >>>>> >>>>> It is on this topic that I would like to add my 2 bits (as I am known to do)! I was going to use my blog http://justmy2bits.com but decided I would be much more likely to be able to engage fellow JavaFX developers in a positive, polite and respectful conversation here. >>>>> >>>>> First, anyone who may follow me on Twitter, in this forum or when I post in other forums (anyone?) will probably be a little bit confused as to where I actually stand on this issue. Well, this stems from the fact that I have been giving confusing (if not conflicting) input into various threads on this topic for quite a while. >>>>> >>>>> Why? >>>>> >>>>> Well, because until very recently, I myself was completely torn on the subject of native Look and Feel. In fact, I seemed to oscillate on an almost daily basis from thinking it's a great, achievable idea to dismissing such an idea on various grounds. I am swaying so much because I have so much riding on successful ports of JavaFX to iOS and Android and because those ports depend heavily on resolving this issue once and for all. >>>>> >>>>> Now I have had something of an epiphany and reached a conclusion. I now do not believe that pouring large (massive?) amounts of resources into the painstaking task of building a fully compliant, fully performant native Look and Feel is justifiable or worth the effort. And let's be clear about this: it is a *lot* of effort! >>>>> >>>>> But before I proceed I just want to say categorically how much I admire the thoroughly awesome work/efforts of the likes of Pedro DV, Claudine Zillmann, Hendrik Ebbers et. al. in (trying ever so hard) to bring native Look and Feel to various OS/platforms with JavaFX. I cannot put in words how much I am in awe of the commitment, the attention to detail, the technical prowess, the artistry and the drive of these fantastic people. Their work will undoubtedly be extremely useful to many developers worldwide. >>>>> >>>>> I want to make all that *perfectly clear* because now I am going to explain why I (probably) will not be one of those people and (hopefully) do it with the utmost respect for the aforementioned rock stars :-) >>>>> >>>>> Right, so back to the issue of whether to or not to implement or use a native Look and Feel. Some of the following comments have already been made by me on other networks and in other forums so apologies if it seems a bit repetitive to some. >>>>> >>>>> At first glance, the idea of a native Look and Feel seems almost like the proverbial Holy Grail. I mean, if such a thing were truly possible and viable, who wouldn't want one? You still have your single codebase across all platforms and you just just plug-in the particular native Look and Feel for your target platform and voila! World domination will surely soon follow! >>>>> >>>>> Well, not quite. It's a great idea but I am going out on a limb to claim that it has *never* worked. Ever! And by "work" I mean so that your "not-so-native" app looks and feels (which includes all aspects of behaviour, not just appearance) *exactly* like a true native app and *no one* could tell you that it *wasn't* a native app. >>>>> >>>>> Yes, I know there are masses now screaming at their monitors who will undoubtedly cite the numerous success stories of Swing apps or maybe even Qt or some other cross-platform UI toolkit and maybe my standards/criteria are harsher than others but I stand by my claim that this has *never ever* really, really, really worked. >>>>> >>>>> OK, so why not? >>>>> >>>>> Here's my first point: I postulate that such a noble goal is not actually achievable. It is not actually achievable for a number of reasons. >>>>> >>>>> It is not actually achievable because, in most cases, we do not have access to the code that implements the native controls on each OS so, at best, we are "guessing" when we try to emulate all aspects of their appearance and behaviour. Try as we may, we will never get *every* control exactly right and I firmly believe that anything that purports to be something else needs to be *identical*. >>>>> >>>>> It is not actually achievable because just as you feel you have reached an acceptable level of "compliance" (which I again wager is never 100%), the goal posts will move. That is, the OS vendor will release an update and even the minor ones can change either the appearance or behaviour of controls, sometimes in subtle ways, sometimes in not so subtle ways. Either way, there is then going to be a period of time where you are playing a futile game of catch-up and during that time your "native" controls will be surely exposed for the impostors they are. >>>>> >>>>> It is not actually achievable because the same control on one OS can look and feel/behave quite differently on another OS which leads to very poor levels of reuse. >>>>> >>>>> It is not actually achievable because many controls simply can't be emulated in using Java/JavaFX most likely because they have exclusive access to native system or OS calls that are not accessible to Java or because the expected levels of performance or "snappiness" cannot be achieved using Java by any means. Even with JNA or JNI you would be left scratching your head in many cases. >>>>> >>>>> And, it is not actually achievable because it's simply too much work to get anywhere near to perfection! We are talking *massive* amounts of effort and very few people have either the talent, the eye, the attention to detail or the patience to see such a project right through to the end where *all* controls are covered. The rock stars I mentioned earlier are the exceptions of course. There's clearly zero point in emulating *some* of the controls only; you need the *full set* or it's just not viable. >>>>> >>>>> Finally, and to look at it another way, what do we get even if some super-human delivers us a native Look and Feel for every possible platform? Well, a massive maintenance nightmare for a start! This super-human would basically be spending all their super time and using up all their super powers just keeping such libraries current. >>>>> >>>>> So, if you are still with me, why bother? Just consider if all those rock stars (and super heroes) concentrated all their super efforts into either improving the features, stability, performance or appearance of JavaFX itself? Just think what we could achieve! >>>>> >>>>> And on the why bother theme, why bother to devote all that time and effort, spend all those millions, tear out all that hair and hit all those roadblocks when the very thing we are trying to achieve is already available? >>>>> >>>>> Yes, that's right, if you really, really, really want to build a native app then why don't you just build a native app? There are numerous tools, languages, IDEs, toolchains and libraries that enable you to build awesome *true* native apps! I just don't think JavaFX is one of them :-) >>>>> >>>>> And it doesn't have to be one of those toolkits because JavaFX can be used to build an entirely different class of application and I now strongly believe that this is the kind of app we should be concentrating on. That class (or classes) of app is one that is not so heavily dependent on the native Look and Feel and doesn't need to be. There are probably hundreds of thousands of apps that are like this. They are everywhere and JavaFX is *perfect* for them! >>>>> >>>>> Scott Palmer has argued that this approach is not valid (and sorry Scott if am inaccurately paraphrasing you). He cites examples such as Chrome, Firefox and even MS Office as proof that this approach does not work. However, my response to that would be to say that just because these are examples of where the developers got it seriously wrong, they do not prove that this approach can't work and isn't working all over the marketplace. >>>>> >>>>> There is no need to develop crappy, mistake ridden software by using a toolkit such as JavaFX in a way that does not attempt to emulate the native Look and Feel and the fact that even big companies like Google *still* clearly get it horribly wrong doesn't imply that we *all* have to be so ineffective. >>>>> >>>>> Part of my newly-found aversion to emulated native Look and Feel comes from my many years of both developing and using Swing applications. Sure, I know there are *some* (handful?) successful Swing apps, most notably those developed with the NetBeans RCP, but in general Swing has failed to have any penetration into serious commercial software. Why? Well, there are several reasons (and a lot are due to Java itself) but, for me, I was never satisfied with the so-called native Look and Feel options that come with Swing. I have been (and still am) very critical of the Windows Look and Feel in Swing in particular because, even today, there is a vast gulf between an actual native Windows application and a Swing application with this Look and Feel. So much so that I still want to almost knock my monitor off the desk when I am using an application developed in this way. For me, this is not acceptable and such an application could never be released as a serious commercial product. >>>>> >>>>> And that's pretty much what this all boils down to: developing serious commercial software. >>>>> >>>>> If you are interested in developing something else then these lengthy comments (am I *still* going?) probably do not apply to you :-) >>>>> >>>>> So to summarise, I argue that it is not possible to develop serious commercial software using emulated Look and Feel in JavaFX or in *any* UI toolkit. I *strongly* recommend that we all work together to make JavaFX as good as it can be (which is absolutely awesome) by focusing on the core product, the API, the performance, the feature set, the stability *and* the supported platforms rather than throw good money after bad on a *wonderful* goal that ultimately can never be reached... >>>>> >>>>> Just my 2 bits, >>>>> >>>>> Felix >>>>> >>>>> P.S. I surely hope I have not offended any/all those who either disagree with the main points or who still believe that native Look and Feel is viable. I remind you all that I am on my knees bowing with respect to the rock stars I referred to and anyone else working on similar projects. Absolutely no offence is intended, I am merely expressing my (passionate) feelings on this subject. >>>>> >>>>> >>>>>> On 9 December 2013 19:10, Felix Bembrick wrote: >>>>>> >>>>>> >>>>>> >>>>>>> On 9 December 2013 16:10, Scott Palmer wrote: >>>>>>> >>>>>>> >>>>>>>> On Dec 8, 2013, at 9:18 PM, Felix Bembrick wrote: >>>>>>> >>>>>>>> Firstly, it will *never* be possible to completely emulate the native look >>>>>>>> and feel. >>>>>>> Sure it is. Though it may never be practical, for many of the reasons you have given. >>>>>>> >>>>>>>> My reasoning is: why bother? >>>>>>> Because it matters. As computer literate developers, we often don't realize what trips other people up. I get so frustrated with apps these days because they have become hard to use simply because the developers tried to define their own look and feel. For example, Chrome and Firefox... Or Microsoft Office... >>>>>>> Where did the title bar go in chrome? >>>>>>> Where have all the menus gone in Chrome, Firefox andOffice? I can find them, but when I have to play tech support over the phone to my parents these changes are massive problems. I ask my dad to move he window by dragging the title bar (please don't ask why he doesn't know to do this himself after decades of computer use) and he says "there is no title bar"... I the remember that yes, chrome did that... They got rid of a standard concept in the OS' windowing system and screed the end users. >>>>>>> >>>>>>> These apps became harder to use because of this "innovation" in the UI. >>>>>>> >>>>>>> Contrast this with applications on OS X where getting the UI right has always been an important priority for developers. Because adhering to the system look and feel has always been strongly encouraged the system is much easier to use. >>>>>>> >>>>>>>> These days, many apps do not look 100% native and may have their own >>>>>>>> controls or look and feel in general. >>>>>>> Yes, but to what end? They are now more difficult to use. >>>>>>> >>>>>>>> Why not channel all that massive >>>>>>>> effort in constructing an emulated native look and feel into simply making >>>>>>>> JavaFX better overall? >>>>>>> But I agree here. The general look isn't the main issue.. E.g. little variations in color and minor tweaks to a few pixels here and there don't really matter. What does matter is when you change the order of buttons, like Okay & Cancel which have standard places that are different between Mac and Windows, or you move the About menu item from the Application menu on an OS X app to the help menu! because that is where you find it on Windows. Those things matter. >>>>>>> >>>>>>> >>>>>>> Scott >>>>>>> >>>>>>>> Felix >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On 9 December 2013 12:35, Pedro Duque Vieira wrote: >>>>>>>> >>>>>>>>> Thanks! >>>>>>>>> >>>>>>>>> @Jasper: Yes, that's very interesting! Forgot that was possible to do in >>>>>>>>> CSS. >>>>>>>>> >>>>>>>>> >>>>>>>>>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall wrote: >>>>>>>>>> >>>>>>>>>> It may be possible to change the LOOK with CSS, but not the FEEL, which >>>>>>>>> is >>>>>>>>>> where Java apps have traditionally failed big time. >>>>>>>>>> >>>>>>>>>> Some things that I don?t think can be changed with CSS: >>>>>>>>>> >>>>>>>>>> 1) texts >>>>>>>>>> 2) order of buttons >>>>>>>>>> 3) escape characters for shortcuts >>>>>>>>>> 4) menus >>>>>>>>>> 5) system-level stuff (double-clicking on files, dropping files on >>>>>>>>>> applications, ?) >>>>>>>>>> 6) filesystem conventions >>>>>>>>>> 7) ... >>>>>>>>>> >>>>>>>>>> I think FXML can fix some of these, but not all. So it seems to me that a >>>>>>>>>> LaF in JFX will consist of at least: >>>>>>>>>> >>>>>>>>>> - one or more CSS files >>>>>>>>>> - one or more FXML files >>>>>>>>>> - some plumbing at the system level >>>>>>>>>> >>>>>>>>>> It would be nice to have a set of proper LaFs for each major platform >>>>>>>>> with >>>>>>>>>> an appropriate common API. >>>>>>>>>> >>>>>>>>>> Steve >>>>>>>>>> >>>>>>>>>>> On 9 Dec 2013, at 00:20, Jasper Potts wrote: >>>>>>>>>>> >>>>>>>>>>> You can set skin classes from CSS so should be able to do everything >>>>>>>>> you >>>>>>>>>> could with Swing and more. With just a CSS file and skins as and when >>>>>>>>>> needed. >>>>>>>>>>> Jasper >>>>>>>>>>> >>>>>>>>>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles >>>>>>>>> wrote: >>>>>>>>>>>> At present there are no plans to introduce any further API or >>>>>>>>>>>> functionality in this area, but if there is something you are wanting >>>>>>>>>>>> then you should file feature requests in Jira. >>>>>>>>>>>> >>>>>>>>>>>> -- Jonathan >>>>>>>>>>>> >>>>>>>>>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >>>>>>>>>>>>> Hi, >>>>>>>>>>>>> >>>>>>>>>>>>> Is there any Look and Feel mechanism in place, like the one in Swing? >>>>>>>>>> That >>>>>>>>>>>>> doesn't appear to exist.. >>>>>>>>>>>>> >>>>>>>>>>>>> Are there any plans to add one? You can only do so much with CSS... >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks in advance, best regards, >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Pedro Duque Vieira > > > > -- > Richard P. Walker > thoughtslinger at gmail.com > > This email is intended only for the use of the individual(s) to whom > it is addressed and may be privileged and confidential. Unauthorised > use or disclosure is prohibited. If you receive this e-mail in error, > please advise immediately and delete the original message. This > message may have been altered without your or our knowledge and the > sender does not accept any liability for any errors or omissions in > the message. > > Ce courriel est confidentiel et prot?g?. L'exp?diteur ne renonce pas > aux droits et obligations qui s'y rapportent. Toute diffusion, > utilisation ou copie de ce message ou des renseignements qu'il > contient par une personne autre que le (les) destinataire(s) > d?sign?(s) est interdite. Si vous recevez ce courriel par erreur, > veuillez m'en aviser imm?diatement, par retour de courriel ou par un > autre moyen. From steve.x.northover at oracle.com Mon Dec 9 09:55:40 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Mon, 09 Dec 2013 12:55:40 -0500 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> <52A5E0BA.1010800@oracle.com> <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> Message-ID: <52A6041C.9080208@oracle.com> Today, you can only exercise the choice by writing native code and you face heavyweight / lightweight issues depending on the platform and API. Steve On 2013-12-09 12:31 PM, Felix Bembrick wrote: > Stephen, I thoroughly agree that JavaFX is by far the best choice for non-native apps/widgets which is precisely my point. They are the kind of apps perfect for using JavaFX. > > But you refer to giving people the choice to go native where appropriate. How can I exercise that choice? Where is the support for native widgets in JavaFX? > > And isn't the real Holy Grail being able to mix native and non-native widgets in the same app with all features of Node being available to every widget, with all the effects and transforms, all the CSS/styling and with all the performance? > > Could JavaFX ever be such a toolkit? > >> On 10 Dec 2013, at 2:24, Stephen F Northover wrote: >> >> Here are my thoughts on the matter. Give people the choice of whether to use native or non-native components. In some applications, everything will be non-native. In others, only the main content area will be non-native and the rest will be native. In some mobile applications, perhaps the preference pages will be native and other parts will not. >> >> JavaFX is the best choice for non-native widgets and we are committed to making it the best toolkit all around. >> >> Steve >> >>> On 2013-12-09 9:49 AM, Scott Palmer wrote: >>> I agree that perfect sync with native look and feels is not what is required and not worth the effort. I do think though that major concepts in the platform's look and feel should (must!) be followed or the user experience is ruined. >>> >>> The example of the order of the ok and cancel buttons has been brought up already. But that isn't even the most important one. >>> >>> Things like shortcut keys. CTRL-C to copy on windows, Command-C to copy on Mac. Standard menu layouts, right-click behaviour and standard context menus. They just have to be in the right place. That they look different doesn't matter as much. And this doesn't mean that you can't try new ideas for UI. But basic things that users expect to work should still work. E.g. Command-Q on OS X better quit the app :-) >>> >>> As noted already with my reference to Office and browsers.. Fully native apps can be non-compliant with the platforms look and feel. So this isn't really a Java-specific issue. >>> >>> Scott >>> >>>> On Dec 9, 2013, at 4:24 AM, Felix Bembrick wrote: >>>> >>>> Spoiler: This is something I have become intensely passionate about so this is likely to be a long post... >>>> >>>> OK, so this (hijacked) thread started out as a discussion of options in JavaFX for implementing "Look and Feel". I think everyone agrees that even with CSS and skins, JavaFX lacks the built-in ability to define a true Look *and* Feel. Further to this, there has been discussion on Twitter and elsewhere regarding *native* Look and Feel and the merits of attempting such an animal with JavaFX. >>>> >>>> It is on this topic that I would like to add my 2 bits (as I am known to do)! I was going to use my blog http://justmy2bits.com but decided I would be much more likely to be able to engage fellow JavaFX developers in a positive, polite and respectful conversation here. >>>> >>>> First, anyone who may follow me on Twitter, in this forum or when I post in other forums (anyone?) will probably be a little bit confused as to where I actually stand on this issue. Well, this stems from the fact that I have been giving confusing (if not conflicting) input into various threads on this topic for quite a while. >>>> >>>> Why? >>>> >>>> Well, because until very recently, I myself was completely torn on the subject of native Look and Feel. In fact, I seemed to oscillate on an almost daily basis from thinking it's a great, achievable idea to dismissing such an idea on various grounds. I am swaying so much because I have so much riding on successful ports of JavaFX to iOS and Android and because those ports depend heavily on resolving this issue once and for all. >>>> >>>> Now I have had something of an epiphany and reached a conclusion. I now do not believe that pouring large (massive?) amounts of resources into the painstaking task of building a fully compliant, fully performant native Look and Feel is justifiable or worth the effort. And let's be clear about this: it is a *lot* of effort! >>>> >>>> But before I proceed I just want to say categorically how much I admire the thoroughly awesome work/efforts of the likes of Pedro DV, Claudine Zillmann, Hendrik Ebbers et. al. in (trying ever so hard) to bring native Look and Feel to various OS/platforms with JavaFX. I cannot put in words how much I am in awe of the commitment, the attention to detail, the technical prowess, the artistry and the drive of these fantastic people. Their work will undoubtedly be extremely useful to many developers worldwide. >>>> >>>> I want to make all that *perfectly clear* because now I am going to explain why I (probably) will not be one of those people and (hopefully) do it with the utmost respect for the aforementioned rock stars :-) >>>> >>>> Right, so back to the issue of whether to or not to implement or use a native Look and Feel. Some of the following comments have already been made by me on other networks and in other forums so apologies if it seems a bit repetitive to some. >>>> >>>> At first glance, the idea of a native Look and Feel seems almost like the proverbial Holy Grail. I mean, if such a thing were truly possible and viable, who wouldn't want one? You still have your single codebase across all platforms and you just just plug-in the particular native Look and Feel for your target platform and voila! World domination will surely soon follow! >>>> >>>> Well, not quite. It's a great idea but I am going out on a limb to claim that it has *never* worked. Ever! And by "work" I mean so that your "not-so-native" app looks and feels (which includes all aspects of behaviour, not just appearance) *exactly* like a true native app and *no one* could tell you that it *wasn't* a native app. >>>> >>>> Yes, I know there are masses now screaming at their monitors who will undoubtedly cite the numerous success stories of Swing apps or maybe even Qt or some other cross-platform UI toolkit and maybe my standards/criteria are harsher than others but I stand by my claim that this has *never ever* really, really, really worked. >>>> >>>> OK, so why not? >>>> >>>> Here's my first point: I postulate that such a noble goal is not actually achievable. It is not actually achievable for a number of reasons. >>>> >>>> It is not actually achievable because, in most cases, we do not have access to the code that implements the native controls on each OS so, at best, we are "guessing" when we try to emulate all aspects of their appearance and behaviour. Try as we may, we will never get *every* control exactly right and I firmly believe that anything that purports to be something else needs to be *identical*. >>>> >>>> It is not actually achievable because just as you feel you have reached an acceptable level of "compliance" (which I again wager is never 100%), the goal posts will move. That is, the OS vendor will release an update and even the minor ones can change either the appearance or behaviour of controls, sometimes in subtle ways, sometimes in not so subtle ways. Either way, there is then going to be a period of time where you are playing a futile game of catch-up and during that time your "native" controls will be surely exposed for the impostors they are. >>>> >>>> It is not actually achievable because the same control on one OS can look and feel/behave quite differently on another OS which leads to very poor levels of reuse. >>>> >>>> It is not actually achievable because many controls simply can't be emulated in using Java/JavaFX most likely because they have exclusive access to native system or OS calls that are not accessible to Java or because the expected levels of performance or "snappiness" cannot be achieved using Java by any means. Even with JNA or JNI you would be left scratching your head in many cases. >>>> >>>> And, it is not actually achievable because it's simply too much work to get anywhere near to perfection! We are talking *massive* amounts of effort and very few people have either the talent, the eye, the attention to detail or the patience to see such a project right through to the end where *all* controls are covered. The rock stars I mentioned earlier are the exceptions of course. There's clearly zero point in emulating *some* of the controls only; you need the *full set* or it's just not viable. >>>> >>>> Finally, and to look at it another way, what do we get even if some super-human delivers us a native Look and Feel for every possible platform? Well, a massive maintenance nightmare for a start! This super-human would basically be spending all their super time and using up all their super powers just keeping such libraries current. >>>> >>>> So, if you are still with me, why bother? Just consider if all those rock stars (and super heroes) concentrated all their super efforts into either improving the features, stability, performance or appearance of JavaFX itself? Just think what we could achieve! >>>> >>>> And on the why bother theme, why bother to devote all that time and effort, spend all those millions, tear out all that hair and hit all those roadblocks when the very thing we are trying to achieve is already available? >>>> >>>> Yes, that's right, if you really, really, really want to build a native app then why don't you just build a native app? There are numerous tools, languages, IDEs, toolchains and libraries that enable you to build awesome *true* native apps! I just don't think JavaFX is one of them :-) >>>> >>>> And it doesn't have to be one of those toolkits because JavaFX can be used to build an entirely different class of application and I now strongly believe that this is the kind of app we should be concentrating on. That class (or classes) of app is one that is not so heavily dependent on the native Look and Feel and doesn't need to be. There are probably hundreds of thousands of apps that are like this. They are everywhere and JavaFX is *perfect* for them! >>>> >>>> Scott Palmer has argued that this approach is not valid (and sorry Scott if am inaccurately paraphrasing you). He cites examples such as Chrome, Firefox and even MS Office as proof that this approach does not work. However, my response to that would be to say that just because these are examples of where the developers got it seriously wrong, they do not prove that this approach can't work and isn't working all over the marketplace. >>>> >>>> There is no need to develop crappy, mistake ridden software by using a toolkit such as JavaFX in a way that does not attempt to emulate the native Look and Feel and the fact that even big companies like Google *still* clearly get it horribly wrong doesn't imply that we *all* have to be so ineffective. >>>> >>>> Part of my newly-found aversion to emulated native Look and Feel comes from my many years of both developing and using Swing applications. Sure, I know there are *some* (handful?) successful Swing apps, most notably those developed with the NetBeans RCP, but in general Swing has failed to have any penetration into serious commercial software. Why? Well, there are several reasons (and a lot are due to Java itself) but, for me, I was never satisfied with the so-called native Look and Feel options that come with Swing. I have been (and still am) very critical of the Windows Look and Feel in Swing in particular because, even today, there is a vast gulf between an actual native Windows application and a Swing application with this Look and Feel. So much so that I still want to almost knock my monitor off the desk when I am using an application developed in this way. For me, this is not acceptable and such an application could never be released as a serious commercial product. >>>> >>>> And that's pretty much what this all boils down to: developing serious commercial software. >>>> >>>> If you are interested in developing something else then these lengthy comments (am I *still* going?) probably do not apply to you :-) >>>> >>>> So to summarise, I argue that it is not possible to develop serious commercial software using emulated Look and Feel in JavaFX or in *any* UI toolkit. I *strongly* recommend that we all work together to make JavaFX as good as it can be (which is absolutely awesome) by focusing on the core product, the API, the performance, the feature set, the stability *and* the supported platforms rather than throw good money after bad on a *wonderful* goal that ultimately can never be reached... >>>> >>>> Just my 2 bits, >>>> >>>> Felix >>>> >>>> P.S. I surely hope I have not offended any/all those who either disagree with the main points or who still believe that native Look and Feel is viable. I remind you all that I am on my knees bowing with respect to the rock stars I referred to and anyone else working on similar projects. Absolutely no offence is intended, I am merely expressing my (passionate) feelings on this subject. >>>> >>>> >>>>> On 9 December 2013 19:10, Felix Bembrick wrote: >>>>> >>>>> >>>>> >>>>>> On 9 December 2013 16:10, Scott Palmer wrote: >>>>>> >>>>>> >>>>>>> On Dec 8, 2013, at 9:18 PM, Felix Bembrick wrote: >>>>>> >>>>>>> Firstly, it will *never* be possible to completely emulate the native look >>>>>>> and feel. >>>>>> Sure it is. Though it may never be practical, for many of the reasons you have given. >>>>>> >>>>>>> My reasoning is: why bother? >>>>>> Because it matters. As computer literate developers, we often don't realize what trips other people up. I get so frustrated with apps these days because they have become hard to use simply because the developers tried to define their own look and feel. For example, Chrome and Firefox... Or Microsoft Office... >>>>>> Where did the title bar go in chrome? >>>>>> Where have all the menus gone in Chrome, Firefox andOffice? I can find them, but when I have to play tech support over the phone to my parents these changes are massive problems. I ask my dad to move he window by dragging the title bar (please don't ask why he doesn't know to do this himself after decades of computer use) and he says "there is no title bar"... I the remember that yes, chrome did that... They got rid of a standard concept in the OS' windowing system and screed the end users. >>>>>> >>>>>> These apps became harder to use because of this "innovation" in the UI. >>>>>> >>>>>> Contrast this with applications on OS X where getting the UI right has always been an important priority for developers. Because adhering to the system look and feel has always been strongly encouraged the system is much easier to use. >>>>>> >>>>>>> These days, many apps do not look 100% native and may have their own >>>>>>> controls or look and feel in general. >>>>>> Yes, but to what end? They are now more difficult to use. >>>>>> >>>>>>> Why not channel all that massive >>>>>>> effort in constructing an emulated native look and feel into simply making >>>>>>> JavaFX better overall? >>>>>> But I agree here. The general look isn't the main issue.. E.g. little variations in color and minor tweaks to a few pixels here and there don't really matter. What does matter is when you change the order of buttons, like Okay & Cancel which have standard places that are different between Mac and Windows, or you move the About menu item from the Application menu on an OS X app to the help menu! because that is where you find it on Windows. Those things matter. >>>>>> >>>>>> >>>>>> Scott >>>>>> >>>>>>> Felix >>>>>>> >>>>>>> >>>>>>> >>>>>>> On 9 December 2013 12:35, Pedro Duque Vieira wrote: >>>>>>> >>>>>>>> Thanks! >>>>>>>> >>>>>>>> @Jasper: Yes, that's very interesting! Forgot that was possible to do in >>>>>>>> CSS. >>>>>>>> >>>>>>>> >>>>>>>>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall wrote: >>>>>>>>> >>>>>>>>> It may be possible to change the LOOK with CSS, but not the FEEL, which >>>>>>>> is >>>>>>>>> where Java apps have traditionally failed big time. >>>>>>>>> >>>>>>>>> Some things that I don?t think can be changed with CSS: >>>>>>>>> >>>>>>>>> 1) texts >>>>>>>>> 2) order of buttons >>>>>>>>> 3) escape characters for shortcuts >>>>>>>>> 4) menus >>>>>>>>> 5) system-level stuff (double-clicking on files, dropping files on >>>>>>>>> applications, ?) >>>>>>>>> 6) filesystem conventions >>>>>>>>> 7) ... >>>>>>>>> >>>>>>>>> I think FXML can fix some of these, but not all. So it seems to me that a >>>>>>>>> LaF in JFX will consist of at least: >>>>>>>>> >>>>>>>>> - one or more CSS files >>>>>>>>> - one or more FXML files >>>>>>>>> - some plumbing at the system level >>>>>>>>> >>>>>>>>> It would be nice to have a set of proper LaFs for each major platform >>>>>>>> with >>>>>>>>> an appropriate common API. >>>>>>>>> >>>>>>>>> Steve >>>>>>>>> >>>>>>>>>> On 9 Dec 2013, at 00:20, Jasper Potts wrote: >>>>>>>>>> >>>>>>>>>> You can set skin classes from CSS so should be able to do everything >>>>>>>> you >>>>>>>>> could with Swing and more. With just a CSS file and skins as and when >>>>>>>>> needed. >>>>>>>>>> Jasper >>>>>>>>>> >>>>>>>>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles >>>>>>>> wrote: >>>>>>>>>>> At present there are no plans to introduce any further API or >>>>>>>>>>> functionality in this area, but if there is something you are wanting >>>>>>>>>>> then you should file feature requests in Jira. >>>>>>>>>>> >>>>>>>>>>> -- Jonathan >>>>>>>>>>> >>>>>>>>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >>>>>>>>>>>> Hi, >>>>>>>>>>>> >>>>>>>>>>>> Is there any Look and Feel mechanism in place, like the one in Swing? >>>>>>>>> That >>>>>>>>>>>> doesn't appear to exist.. >>>>>>>>>>>> >>>>>>>>>>>> Are there any plans to add one? You can only do so much with CSS... >>>>>>>>>>>> >>>>>>>>>>>> Thanks in advance, best regards, >>>>>>>> -- >>>>>>>> Pedro Duque Vieira >> From felix.bembrick at gmail.com Mon Dec 9 10:00:55 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Tue, 10 Dec 2013 05:00:55 +1100 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: <52A6041C.9080208@oracle.com> References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> <52A5E0BA.1010800@oracle.com> <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> <52A6041C.9080208@oracle.com> Message-ID: What can we expect from the JavaFX team in this regard in the future? I know we have talked about mixing lightweight and heavyweight controls in the same context but is it going to happen? Is this planned for JFX9 perhaps? Is it *really* even feasible? > On 10 Dec 2013, at 4:55, Stephen F Northover wrote: > > Today, you can only exercise the choice by writing native code and you face heavyweight / lightweight issues depending on the platform and API. > > Steve > >> On 2013-12-09 12:31 PM, Felix Bembrick wrote: >> Stephen, I thoroughly agree that JavaFX is by far the best choice for non-native apps/widgets which is precisely my point. They are the kind of apps perfect for using JavaFX. >> >> But you refer to giving people the choice to go native where appropriate. How can I exercise that choice? Where is the support for native widgets in JavaFX? >> >> And isn't the real Holy Grail being able to mix native and non-native widgets in the same app with all features of Node being available to every widget, with all the effects and transforms, all the CSS/styling and with all the performance? >> >> Could JavaFX ever be such a toolkit? >> >>> On 10 Dec 2013, at 2:24, Stephen F Northover wrote: >>> >>> Here are my thoughts on the matter. Give people the choice of whether to use native or non-native components. In some applications, everything will be non-native. In others, only the main content area will be non-native and the rest will be native. In some mobile applications, perhaps the preference pages will be native and other parts will not. >>> >>> JavaFX is the best choice for non-native widgets and we are committed to making it the best toolkit all around. >>> >>> Steve >>> >>>> On 2013-12-09 9:49 AM, Scott Palmer wrote: >>>> I agree that perfect sync with native look and feels is not what is required and not worth the effort. I do think though that major concepts in the platform's look and feel should (must!) be followed or the user experience is ruined. >>>> >>>> The example of the order of the ok and cancel buttons has been brought up already. But that isn't even the most important one. >>>> >>>> Things like shortcut keys. CTRL-C to copy on windows, Command-C to copy on Mac. Standard menu layouts, right-click behaviour and standard context menus. They just have to be in the right place. That they look different doesn't matter as much. And this doesn't mean that you can't try new ideas for UI. But basic things that users expect to work should still work. E.g. Command-Q on OS X better quit the app :-) >>>> >>>> As noted already with my reference to Office and browsers.. Fully native apps can be non-compliant with the platforms look and feel. So this isn't really a Java-specific issue. >>>> >>>> Scott >>>> >>>>> On Dec 9, 2013, at 4:24 AM, Felix Bembrick wrote: >>>>> >>>>> Spoiler: This is something I have become intensely passionate about so this is likely to be a long post... >>>>> >>>>> OK, so this (hijacked) thread started out as a discussion of options in JavaFX for implementing "Look and Feel". I think everyone agrees that even with CSS and skins, JavaFX lacks the built-in ability to define a true Look *and* Feel. Further to this, there has been discussion on Twitter and elsewhere regarding *native* Look and Feel and the merits of attempting such an animal with JavaFX. >>>>> >>>>> It is on this topic that I would like to add my 2 bits (as I am known to do)! I was going to use my blog http://justmy2bits.com but decided I would be much more likely to be able to engage fellow JavaFX developers in a positive, polite and respectful conversation here. >>>>> >>>>> First, anyone who may follow me on Twitter, in this forum or when I post in other forums (anyone?) will probably be a little bit confused as to where I actually stand on this issue. Well, this stems from the fact that I have been giving confusing (if not conflicting) input into various threads on this topic for quite a while. >>>>> >>>>> Why? >>>>> >>>>> Well, because until very recently, I myself was completely torn on the subject of native Look and Feel. In fact, I seemed to oscillate on an almost daily basis from thinking it's a great, achievable idea to dismissing such an idea on various grounds. I am swaying so much because I have so much riding on successful ports of JavaFX to iOS and Android and because those ports depend heavily on resolving this issue once and for all. >>>>> >>>>> Now I have had something of an epiphany and reached a conclusion. I now do not believe that pouring large (massive?) amounts of resources into the painstaking task of building a fully compliant, fully performant native Look and Feel is justifiable or worth the effort. And let's be clear about this: it is a *lot* of effort! >>>>> >>>>> But before I proceed I just want to say categorically how much I admire the thoroughly awesome work/efforts of the likes of Pedro DV, Claudine Zillmann, Hendrik Ebbers et. al. in (trying ever so hard) to bring native Look and Feel to various OS/platforms with JavaFX. I cannot put in words how much I am in awe of the commitment, the attention to detail, the technical prowess, the artistry and the drive of these fantastic people. Their work will undoubtedly be extremely useful to many developers worldwide. >>>>> >>>>> I want to make all that *perfectly clear* because now I am going to explain why I (probably) will not be one of those people and (hopefully) do it with the utmost respect for the aforementioned rock stars :-) >>>>> >>>>> Right, so back to the issue of whether to or not to implement or use a native Look and Feel. Some of the following comments have already been made by me on other networks and in other forums so apologies if it seems a bit repetitive to some. >>>>> >>>>> At first glance, the idea of a native Look and Feel seems almost like the proverbial Holy Grail. I mean, if such a thing were truly possible and viable, who wouldn't want one? You still have your single codebase across all platforms and you just just plug-in the particular native Look and Feel for your target platform and voila! World domination will surely soon follow! >>>>> >>>>> Well, not quite. It's a great idea but I am going out on a limb to claim that it has *never* worked. Ever! And by "work" I mean so that your "not-so-native" app looks and feels (which includes all aspects of behaviour, not just appearance) *exactly* like a true native app and *no one* could tell you that it *wasn't* a native app. >>>>> >>>>> Yes, I know there are masses now screaming at their monitors who will undoubtedly cite the numerous success stories of Swing apps or maybe even Qt or some other cross-platform UI toolkit and maybe my standards/criteria are harsher than others but I stand by my claim that this has *never ever* really, really, really worked. >>>>> >>>>> OK, so why not? >>>>> >>>>> Here's my first point: I postulate that such a noble goal is not actually achievable. It is not actually achievable for a number of reasons. >>>>> >>>>> It is not actually achievable because, in most cases, we do not have access to the code that implements the native controls on each OS so, at best, we are "guessing" when we try to emulate all aspects of their appearance and behaviour. Try as we may, we will never get *every* control exactly right and I firmly believe that anything that purports to be something else needs to be *identical*. >>>>> >>>>> It is not actually achievable because just as you feel you have reached an acceptable level of "compliance" (which I again wager is never 100%), the goal posts will move. That is, the OS vendor will release an update and even the minor ones can change either the appearance or behaviour of controls, sometimes in subtle ways, sometimes in not so subtle ways. Either way, there is then going to be a period of time where you are playing a futile game of catch-up and during that time your "native" controls will be surely exposed for the impostors they are. >>>>> >>>>> It is not actually achievable because the same control on one OS can look and feel/behave quite differently on another OS which leads to very poor levels of reuse. >>>>> >>>>> It is not actually achievable because many controls simply can't be emulated in using Java/JavaFX most likely because they have exclusive access to native system or OS calls that are not accessible to Java or because the expected levels of performance or "snappiness" cannot be achieved using Java by any means. Even with JNA or JNI you would be left scratching your head in many cases. >>>>> >>>>> And, it is not actually achievable because it's simply too much work to get anywhere near to perfection! We are talking *massive* amounts of effort and very few people have either the talent, the eye, the attention to detail or the patience to see such a project right through to the end where *all* controls are covered. The rock stars I mentioned earlier are the exceptions of course. There's clearly zero point in emulating *some* of the controls only; you need the *full set* or it's just not viable. >>>>> >>>>> Finally, and to look at it another way, what do we get even if some super-human delivers us a native Look and Feel for every possible platform? Well, a massive maintenance nightmare for a start! This super-human would basically be spending all their super time and using up all their super powers just keeping such libraries current. >>>>> >>>>> So, if you are still with me, why bother? Just consider if all those rock stars (and super heroes) concentrated all their super efforts into either improving the features, stability, performance or appearance of JavaFX itself? Just think what we could achieve! >>>>> >>>>> And on the why bother theme, why bother to devote all that time and effort, spend all those millions, tear out all that hair and hit all those roadblocks when the very thing we are trying to achieve is already available? >>>>> >>>>> Yes, that's right, if you really, really, really want to build a native app then why don't you just build a native app? There are numerous tools, languages, IDEs, toolchains and libraries that enable you to build awesome *true* native apps! I just don't think JavaFX is one of them :-) >>>>> >>>>> And it doesn't have to be one of those toolkits because JavaFX can be used to build an entirely different class of application and I now strongly believe that this is the kind of app we should be concentrating on. That class (or classes) of app is one that is not so heavily dependent on the native Look and Feel and doesn't need to be. There are probably hundreds of thousands of apps that are like this. They are everywhere and JavaFX is *perfect* for them! >>>>> >>>>> Scott Palmer has argued that this approach is not valid (and sorry Scott if am inaccurately paraphrasing you). He cites examples such as Chrome, Firefox and even MS Office as proof that this approach does not work. However, my response to that would be to say that just because these are examples of where the developers got it seriously wrong, they do not prove that this approach can't work and isn't working all over the marketplace. >>>>> >>>>> There is no need to develop crappy, mistake ridden software by using a toolkit such as JavaFX in a way that does not attempt to emulate the native Look and Feel and the fact that even big companies like Google *still* clearly get it horribly wrong doesn't imply that we *all* have to be so ineffective. >>>>> >>>>> Part of my newly-found aversion to emulated native Look and Feel comes from my many years of both developing and using Swing applications. Sure, I know there are *some* (handful?) successful Swing apps, most notably those developed with the NetBeans RCP, but in general Swing has failed to have any penetration into serious commercial software. Why? Well, there are several reasons (and a lot are due to Java itself) but, for me, I was never satisfied with the so-called native Look and Feel options that come with Swing. I have been (and still am) very critical of the Windows Look and Feel in Swing in particular because, even today, there is a vast gulf between an actual native Windows application and a Swing application with this Look and Feel. So much so that I still want to almost knock my monitor off the desk when I am using an application developed in this way. For me, this is not acceptable and such an application could never be released as a serious commercial product. >>>>> >>>>> And that's pretty much what this all boils down to: developing serious commercial software. >>>>> >>>>> If you are interested in developing something else then these lengthy comments (am I *still* going?) probably do not apply to you :-) >>>>> >>>>> So to summarise, I argue that it is not possible to develop serious commercial software using emulated Look and Feel in JavaFX or in *any* UI toolkit. I *strongly* recommend that we all work together to make JavaFX as good as it can be (which is absolutely awesome) by focusing on the core product, the API, the performance, the feature set, the stability *and* the supported platforms rather than throw good money after bad on a *wonderful* goal that ultimately can never be reached... >>>>> >>>>> Just my 2 bits, >>>>> >>>>> Felix >>>>> >>>>> P.S. I surely hope I have not offended any/all those who either disagree with the main points or who still believe that native Look and Feel is viable. I remind you all that I am on my knees bowing with respect to the rock stars I referred to and anyone else working on similar projects. Absolutely no offence is intended, I am merely expressing my (passionate) feelings on this subject. >>>>> >>>>> >>>>>> On 9 December 2013 19:10, Felix Bembrick wrote: >>>>>> >>>>>> >>>>>> >>>>>>> On 9 December 2013 16:10, Scott Palmer wrote: >>>>>>> >>>>>>> >>>>>>>> On Dec 8, 2013, at 9:18 PM, Felix Bembrick wrote: >>>>>>> >>>>>>>> Firstly, it will *never* be possible to completely emulate the native look >>>>>>>> and feel. >>>>>>> Sure it is. Though it may never be practical, for many of the reasons you have given. >>>>>>> >>>>>>>> My reasoning is: why bother? >>>>>>> Because it matters. As computer literate developers, we often don't realize what trips other people up. I get so frustrated with apps these days because they have become hard to use simply because the developers tried to define their own look and feel. For example, Chrome and Firefox... Or Microsoft Office... >>>>>>> Where did the title bar go in chrome? >>>>>>> Where have all the menus gone in Chrome, Firefox andOffice? I can find them, but when I have to play tech support over the phone to my parents these changes are massive problems. I ask my dad to move he window by dragging the title bar (please don't ask why he doesn't know to do this himself after decades of computer use) and he says "there is no title bar"... I the remember that yes, chrome did that... They got rid of a standard concept in the OS' windowing system and screed the end users. >>>>>>> >>>>>>> These apps became harder to use because of this "innovation" in the UI. >>>>>>> >>>>>>> Contrast this with applications on OS X where getting the UI right has always been an important priority for developers. Because adhering to the system look and feel has always been strongly encouraged the system is much easier to use. >>>>>>> >>>>>>>> These days, many apps do not look 100% native and may have their own >>>>>>>> controls or look and feel in general. >>>>>>> Yes, but to what end? They are now more difficult to use. >>>>>>> >>>>>>>> Why not channel all that massive >>>>>>>> effort in constructing an emulated native look and feel into simply making >>>>>>>> JavaFX better overall? >>>>>>> But I agree here. The general look isn't the main issue.. E.g. little variations in color and minor tweaks to a few pixels here and there don't really matter. What does matter is when you change the order of buttons, like Okay & Cancel which have standard places that are different between Mac and Windows, or you move the About menu item from the Application menu on an OS X app to the help menu! because that is where you find it on Windows. Those things matter. >>>>>>> >>>>>>> >>>>>>> Scott >>>>>>> >>>>>>>> Felix >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On 9 December 2013 12:35, Pedro Duque Vieira wrote: >>>>>>>> >>>>>>>>> Thanks! >>>>>>>>> >>>>>>>>> @Jasper: Yes, that's very interesting! Forgot that was possible to do in >>>>>>>>> CSS. >>>>>>>>> >>>>>>>>> >>>>>>>>>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall wrote: >>>>>>>>>> >>>>>>>>>> It may be possible to change the LOOK with CSS, but not the FEEL, which >>>>>>>>> is >>>>>>>>>> where Java apps have traditionally failed big time. >>>>>>>>>> >>>>>>>>>> Some things that I don?t think can be changed with CSS: >>>>>>>>>> >>>>>>>>>> 1) texts >>>>>>>>>> 2) order of buttons >>>>>>>>>> 3) escape characters for shortcuts >>>>>>>>>> 4) menus >>>>>>>>>> 5) system-level stuff (double-clicking on files, dropping files on >>>>>>>>>> applications, ?) >>>>>>>>>> 6) filesystem conventions >>>>>>>>>> 7) ... >>>>>>>>>> >>>>>>>>>> I think FXML can fix some of these, but not all. So it seems to me that a >>>>>>>>>> LaF in JFX will consist of at least: >>>>>>>>>> >>>>>>>>>> - one or more CSS files >>>>>>>>>> - one or more FXML files >>>>>>>>>> - some plumbing at the system level >>>>>>>>>> >>>>>>>>>> It would be nice to have a set of proper LaFs for each major platform >>>>>>>>> with >>>>>>>>>> an appropriate common API. >>>>>>>>>> >>>>>>>>>> Steve >>>>>>>>>> >>>>>>>>>>> On 9 Dec 2013, at 00:20, Jasper Potts wrote: >>>>>>>>>>> >>>>>>>>>>> You can set skin classes from CSS so should be able to do everything >>>>>>>>> you >>>>>>>>>> could with Swing and more. With just a CSS file and skins as and when >>>>>>>>>> needed. >>>>>>>>>>> Jasper >>>>>>>>>>> >>>>>>>>>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles >>>>>>>>> wrote: >>>>>>>>>>>> At present there are no plans to introduce any further API or >>>>>>>>>>>> functionality in this area, but if there is something you are wanting >>>>>>>>>>>> then you should file feature requests in Jira. >>>>>>>>>>>> >>>>>>>>>>>> -- Jonathan >>>>>>>>>>>> >>>>>>>>>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >>>>>>>>>>>>> Hi, >>>>>>>>>>>>> >>>>>>>>>>>>> Is there any Look and Feel mechanism in place, like the one in Swing? >>>>>>>>>> That >>>>>>>>>>>>> doesn't appear to exist.. >>>>>>>>>>>>> >>>>>>>>>>>>> Are there any plans to add one? You can only do so much with CSS... >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks in advance, best regards, >>>>>>>>> -- >>>>>>>>> Pedro Duque Vieira > > From swpalmer at gmail.com Mon Dec 9 10:53:39 2013 From: swpalmer at gmail.com (Scott Palmer) Date: Mon, 9 Dec 2013 13:53:39 -0500 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: <52A6041C.9080208@oracle.com> References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> <52A5E0BA.1010800@oracle.com> <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> <52A6041C.9080208@oracle.com> Message-ID: Doesn?t this also imply that you are using AWT/Swing? JavaFX has no way to be hosted in anything other than a JFXPanel or a JavaFX Stage. Only the JFXPanel can be hosted in a windows that allows heavy weight (native) controls, or even allows JNI code to get the window handle so you can integrate your JavaFX with other native bits. Scott On Dec 9, 2013, at 12:55 PM, Stephen F Northover wrote: > Today, you can only exercise the choice by writing native code and you face heavyweight / lightweight issues depending on the platform and API. > > Steve > > On 2013-12-09 12:31 PM, Felix Bembrick wrote: >> Stephen, I thoroughly agree that JavaFX is by far the best choice for non-native apps/widgets which is precisely my point. They are the kind of apps perfect for using JavaFX. >> >> But you refer to giving people the choice to go native where appropriate. How can I exercise that choice? Where is the support for native widgets in JavaFX? >> >> And isn't the real Holy Grail being able to mix native and non-native widgets in the same app with all features of Node being available to every widget, with all the effects and transforms, all the CSS/styling and with all the performance? >> >> Could JavaFX ever be such a toolkit? >> >>> On 10 Dec 2013, at 2:24, Stephen F Northover wrote: >>> >>> Here are my thoughts on the matter. Give people the choice of whether to use native or non-native components. In some applications, everything will be non-native. In others, only the main content area will be non-native and the rest will be native. In some mobile applications, perhaps the preference pages will be native and other parts will not. >>> >>> JavaFX is the best choice for non-native widgets and we are committed to making it the best toolkit all around. >>> >>> Steve From steve at winnall.ch Mon Dec 9 11:50:10 2013 From: steve at winnall.ch (Stephen Winnall) Date: Mon, 9 Dec 2013 20:50:10 +0100 Subject: Look and feel mechanism? In-Reply-To: References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> Message-ID: <529D8A84-4066-4379-8C2E-59255FD147B9@winnall.ch> Just to take a completely different tack: I have a sneaking suspicion that the whole approach to UI design is wrong. Aside from the platform abstraction thing, I wonder whether we shouldn?t be approaching UIs from a design pattern perspective. The application programmer is the wrong person to decide whether to implement a pop-up menu, a combobox or a selection list: all the programmer needs to specify is ?get me one or more elements from this list?, and someone who loves the target platform (even Windows ;-) ) should instantiate the appropriate widget for that platform. JavaFX gives us the capability to do this. I think we tend to think of ourselves as clones of Leonardo da Vinci, capable of programming and design, when the truth is somewhat different, the more so when we?re implementing stuff for platforms we secretly despise? But now I?m ranting, sorry. To get back to cross-platform looks. People are used to them because of WWW and browser interfaces. But the desktop has no competitive advantage over the browser idiom if it doesn?t do the user experience better. It?s a question of quality as opposed to 80:20 in my view. It?s look AND feel. Steve On 9 Dec 2013, at 18:42, Felix Bembrick wrote: > Agreed that Quaqua did a great job and lets not lose sight of the fact that I am totally praising the efforts of everyone who has worked in this frustrating and tedious area of UI development/support. I just think the obvious talents of those people could be utilised for a purpose less likely to drive them crazy! > > Yes, Metal was an unabridged disaster but did you ever see Substance? I thought that looked great on all platforms. And today there is also Cezanne which isn't too shabby. > > What's really needed is, as you say, some kind of platform abstraction that handles all the OS specific details and then you code to use it. Ideally this abstraction would result in the use of actual native widgets but how you would apply all the features that come with Node to those widgets I have no idea... > > On 9 Dec 2013, at 22:49, Stephen Winnall wrote: > >> On 9 Dec 2013, at 03:18, Felix Bembrick wrote: >> >>> @Stephen, you are absolutely right about this. But such an approach (and pretty much *any* approach) to "emulated" native look and feels is fraught with difficulties and complexities. >>> >>> Firstly, it will *never* be possible to completely emulate the native look and feel. And, even if the differences are subtle, there is the very real risk that the end user will have a very uneasy feeling using such a look and feel. At times it will even seem like an imposter. >> >> Agreed, though Quaqua did quite a good (and unobtrusive) job for the look on Swing on Mac OS X. >> >>> Secondly, you will be forever playing catchup as each new major release (and also even each minor update) changes one or more of the behaviours that you have so carefully emulated. The result is that for a while at least, your emulated look and feel is an even more obvious imposter with an even more uneasy experience for the user. >> >> Indeed. I?m not really a fan of reimplementing something that?s already there anyway. It should be possible to use the native facilities via appropriate APIs. >> >>> Thirdly, building such emulated look and feels is a *lot* of work (much more than you would think). >> >> Tell me about it :-) I spent a long time trying to create a Platform abstraction for Swing which would allow applications to be moved from platform to platform and adopt the native look and feel. The along came JavaFX. But we missed out on the chance of developing a platform abstraction there too. >> >>> My reasoning is: why bother? Why not build a "JavaFX look and feel" (akin to something like Nimubs in Swing) that simply doesn't even try to look native? Then you know for sure your app looks and behaves identically on all devices and there is no hint of "imposter-ness?. >> >> The answer to this question is relatively simple: Metal. Metal, you will recall, was the one-size-fits-all look for Swing. And it was and was a major reason for the failure of Swing (and thus Java) on the desktop. >> >> Ultimately, all cross-platform looks suffer from the same problem: they don?t look right on any platform and often terrible on others. And ignoring the feel of the target platform is the ultimate sin: users don?t understand what the app is doing or why but often cannot articulate their feelings because there?s no *observable* problem, only a ?feelable" one. And so another Java desktop app dies the death... >> >>> These days, many apps do not look 100% native and may have their own controls or look and feel in general. Why not channel all that massive effort in constructing an emulated native look and feel into simply making JavaFX better overall? >> >> Agreed. Let?s define a platform abstraction? >> >> Steve From felix.bembrick at gmail.com Mon Dec 9 12:03:06 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Tue, 10 Dec 2013 07:03:06 +1100 Subject: Look and feel mechanism? In-Reply-To: <529D8A84-4066-4379-8C2E-59255FD147B9@winnall.ch> References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> <529D8A84-4066-4379-8C2E-59255FD147B9@winnall.ch> Message-ID: I am with you on the "design pattern" approach you refer to which is basically a higher level of abstraction than say one which actually specifies which widget types to use. But who is this "someone who loves the target platform" and how and when do they get to hook-in the actual widgets? While I agree JavaFX certainly has the ability to implement the high-level abstraction layer (as does pretty much any programming language, how (physically speaking) is someone going to link this with an actual selection of widgets on each OS? Isn't *that* the whole problem here? Felix On 10 December 2013 06:50, Stephen Winnall wrote: > Just to take a completely different tack: I have a sneaking suspicion that > the whole approach to UI design is wrong. Aside from the platform > abstraction thing, I wonder whether we shouldn?t be approaching UIs from a > design pattern perspective. The application programmer is the wrong person > to decide whether to implement a pop-up menu, a combobox or a selection > list: all the programmer needs to specify is ?get me one or more elements > from this list?, and someone who loves the target platform (even Windows > ;-) ) should instantiate the appropriate widget for that platform. > > JavaFX gives us the capability to do this. > > I think we tend to think of ourselves as clones of Leonardo da Vinci, > capable of programming and design, when the truth is somewhat different, > the more so when we?re implementing stuff for platforms we secretly > despise? But now I?m ranting, sorry. > > To get back to cross-platform looks. People are used to them because of > WWW and browser interfaces. But the desktop has no competitive advantage > over the browser idiom if it doesn?t do the user experience better. It?s a > question of quality as opposed to 80:20 in my view. It?s look AND feel. > > Steve > > On 9 Dec 2013, at 18:42, Felix Bembrick wrote: > > Agreed that Quaqua did a great job and lets not lose sight of the fact > that I am totally praising the efforts of everyone who has worked in this > frustrating and tedious area of UI development/support. I just think the > obvious talents of those people could be utilised for a purpose less likely > to drive them crazy! > > Yes, Metal was an unabridged disaster but did you ever see Substance? I > thought that looked great on all platforms. And today there is also Cezanne > which isn't too shabby. > > What's really needed is, as you say, some kind of platform abstraction > that handles all the OS specific details and then you code to use it. > Ideally this abstraction would result in the use of actual native widgets > but how you would apply all the features that come with Node to those > widgets I have no idea... > > On 9 Dec 2013, at 22:49, Stephen Winnall wrote: > > On 9 Dec 2013, at 03:18, Felix Bembrick wrote: > > @Stephen, you are absolutely right about this. But such an approach (and > pretty much *any* approach) to "emulated" native look and feels is fraught > with difficulties and complexities. > > Firstly, it will *never* be possible to completely emulate the native look > and feel. And, even if the differences are subtle, there is the very real > risk that the end user will have a very uneasy feeling using such a look > and feel. At times it will even seem like an imposter. > > > Agreed, though Quaqua did quite a good (and unobtrusive) job for the look > on Swing on Mac OS X. > > Secondly, you will be forever playing catchup as each new major release > (and also even each minor update) changes one or more of the behaviours > that you have so carefully emulated. The result is that for a while at > least, your emulated look and feel is an even more obvious imposter with an > even more uneasy experience for the user. > > > Indeed. I?m not really a fan of reimplementing something that?s already > there anyway. It should be possible to use the native facilities via > appropriate APIs. > > Thirdly, building such emulated look and feels is a *lot* of work (much > more than you would think). > > > Tell me about it :-) I spent a long time trying to create a Platform > abstraction for Swing which would allow applications to be moved from > platform to platform and adopt the native look and feel. The along came > JavaFX. But we missed out on the chance of developing a platform > abstraction there too. > > My reasoning is: why bother? Why not build a "JavaFX look and feel" (akin > to something like Nimubs in Swing) that simply doesn't even try to look > native? Then you know for sure your app looks and behaves identically on > all devices and there is no hint of "imposter-ness?. > > > The answer to this question is relatively simple: Metal. Metal, you will > recall, was the one-size-fits-all look for Swing. And it was deleted> and was a major reason for the failure of Swing (and thus Java) on > the desktop. > > Ultimately, all cross-platform looks suffer from the same problem: they > don?t look right on any platform and often terrible on others. And ignoring > the feel of the target platform is the ultimate sin: users don?t understand > what the app is doing or why but often cannot articulate their feelings > because there?s no *observable* problem, only a ?feelable" one. And so > another Java desktop app dies the death... > > These days, many apps do not look 100% native and may have their own > controls or look and feel in general. Why not channel all that massive > effort in constructing an emulated native look and feel into simply making > JavaFX better overall? > > > Agreed. Let?s define a platform abstraction? > > Steve > > > From hang.vo at oracle.com Mon Dec 9 12:48:13 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 09 Dec 2013 20:48:13 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Fix for RT-34710 Ensemble8: Gesture Events sample name and description is confusing Message-ID: <20131209204838.656F962B90@hg.openjdk.java.net> Changeset: d337fbc19887 Author: Alexander Kouznetsov Date: 2013-12-09 12:37 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/d337fbc19887 Ensemble8: Fix for RT-34710 Ensemble8: Gesture Events sample name and description is confusing ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java From swpalmer at gmail.com Mon Dec 9 12:49:47 2013 From: swpalmer at gmail.com (Scott Palmer) Date: Mon, 9 Dec 2013 15:49:47 -0500 Subject: Look and feel mechanism? In-Reply-To: References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> <529D8A84-4066-4379-8C2E-59255FD147B9@winnall.ch> Message-ID: <8643BAA2-09DC-49A5-963C-C0C0E4259649@gmail.com> I see the point of he higher-level abstraction, but I think we need more control over the user experience than that for most cases. If not simply for aesthetics, there are times when I know I want a combobox vs. a spinner vs. a list with a single selection model. What we need are more of what we already have with things like: MenuBar.useSystemMenuBarProperty() or in Swing, MouseEvent.isPopupTrigger() Consider for example the standard shortcut for Undo. CTRL-Z on Windows, Command-Z o Mac. That?s easy, Mac uses Command where Windows uses CTRL. But what about Redo? CTRL-Y on Windows, Command-Shift-Z on Mac. Developers have to know these things and code for them explicitly. Where is the abstraction in the Java APIs? Scott On Dec 9, 2013, at 3:03 PM, Felix Bembrick wrote: > I am with you on the "design pattern" approach you refer to which is > basically a higher level of abstraction than say one which actually > specifies which widget types to use. > > But who is this "someone who loves the target platform" and how and when do > they get to hook-in the actual widgets? > > While I agree JavaFX certainly has the ability to implement the high-level > abstraction layer (as does pretty much any programming language, how > (physically speaking) is someone going to link this with an actual > selection of widgets on each OS? Isn't *that* the whole problem here? > > Felix > > > > On 10 December 2013 06:50, Stephen Winnall wrote: > >> Just to take a completely different tack: I have a sneaking suspicion that >> the whole approach to UI design is wrong. Aside from the platform >> abstraction thing, I wonder whether we shouldn?t be approaching UIs from a >> design pattern perspective. The application programmer is the wrong person >> to decide whether to implement a pop-up menu, a combobox or a selection >> list: all the programmer needs to specify is ?get me one or more elements >> from this list?, and someone who loves the target platform (even Windows >> ;-) ) should instantiate the appropriate widget for that platform. >> >> JavaFX gives us the capability to do this. >> >> I think we tend to think of ourselves as clones of Leonardo da Vinci, >> capable of programming and design, when the truth is somewhat different, >> the more so when we?re implementing stuff for platforms we secretly >> despise? But now I?m ranting, sorry. >> >> To get back to cross-platform looks. People are used to them because of >> WWW and browser interfaces. But the desktop has no competitive advantage >> over the browser idiom if it doesn?t do the user experience better. It?s a >> question of quality as opposed to 80:20 in my view. It?s look AND feel. >> >> Steve >> >> On 9 Dec 2013, at 18:42, Felix Bembrick wrote: >> >> Agreed that Quaqua did a great job and lets not lose sight of the fact >> that I am totally praising the efforts of everyone who has worked in this >> frustrating and tedious area of UI development/support. I just think the >> obvious talents of those people could be utilised for a purpose less likely >> to drive them crazy! >> >> Yes, Metal was an unabridged disaster but did you ever see Substance? I >> thought that looked great on all platforms. And today there is also Cezanne >> which isn't too shabby. >> >> What's really needed is, as you say, some kind of platform abstraction >> that handles all the OS specific details and then you code to use it. >> Ideally this abstraction would result in the use of actual native widgets >> but how you would apply all the features that come with Node to those >> widgets I have no idea... >> >> On 9 Dec 2013, at 22:49, Stephen Winnall wrote: >> >> On 9 Dec 2013, at 03:18, Felix Bembrick wrote: >> >> @Stephen, you are absolutely right about this. But such an approach (and >> pretty much *any* approach) to "emulated" native look and feels is fraught >> with difficulties and complexities. >> >> Firstly, it will *never* be possible to completely emulate the native look >> and feel. And, even if the differences are subtle, there is the very real >> risk that the end user will have a very uneasy feeling using such a look >> and feel. At times it will even seem like an imposter. >> >> >> Agreed, though Quaqua did quite a good (and unobtrusive) job for the look >> on Swing on Mac OS X. >> >> Secondly, you will be forever playing catchup as each new major release >> (and also even each minor update) changes one or more of the behaviours >> that you have so carefully emulated. The result is that for a while at >> least, your emulated look and feel is an even more obvious imposter with an >> even more uneasy experience for the user. >> >> >> Indeed. I?m not really a fan of reimplementing something that?s already >> there anyway. It should be possible to use the native facilities via >> appropriate APIs. >> >> Thirdly, building such emulated look and feels is a *lot* of work (much >> more than you would think). >> >> >> Tell me about it :-) I spent a long time trying to create a Platform >> abstraction for Swing which would allow applications to be moved from >> platform to platform and adopt the native look and feel. The along came >> JavaFX. But we missed out on the chance of developing a platform >> abstraction there too. >> >> My reasoning is: why bother? Why not build a "JavaFX look and feel" (akin >> to something like Nimubs in Swing) that simply doesn't even try to look >> native? Then you know for sure your app looks and behaves identically on >> all devices and there is no hint of "imposter-ness?. >> >> >> The answer to this question is relatively simple: Metal. Metal, you will >> recall, was the one-size-fits-all look for Swing. And it was > deleted> and was a major reason for the failure of Swing (and thus Java) on >> the desktop. >> >> Ultimately, all cross-platform looks suffer from the same problem: they >> don?t look right on any platform and often terrible on others. And ignoring >> the feel of the target platform is the ultimate sin: users don?t understand >> what the app is doing or why but often cannot articulate their feelings >> because there?s no *observable* problem, only a ?feelable" one. And so >> another Java desktop app dies the death... >> >> These days, many apps do not look 100% native and may have their own >> controls or look and feel in general. Why not channel all that massive >> effort in constructing an emulated native look and feel into simply making >> JavaFX better overall? >> >> >> Agreed. Let?s define a platform abstraction? >> >> Steve >> >> >> From steve at winnall.ch Mon Dec 9 12:57:24 2013 From: steve at winnall.ch (Stephen Winnall) Date: Mon, 9 Dec 2013 21:57:24 +0100 Subject: Look and feel mechanism? In-Reply-To: References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> <529D8A84-4066-4379-8C2E-59255FD147B9@winnall.ch> Message-ID: <8C0A11E7-FEC6-485F-9D36-0FD28FFD3950@winnall.ch> > I am with you on the "design pattern" approach you refer to which is basically a higher level of abstraction than say one which actually specifies which widget types to use. > > But who is this "someone who loves the target platform" and how and when do they get to hook-in the actual widgets? > > While I agree JavaFX certainly has the ability to implement the high-level abstraction layer (as does pretty much any programming language, how (physically speaking) is someone going to link this with an actual selection of widgets on each OS? Isn't *that* the whole problem here? That?s JavaFX, CSS and FXML, with the native platform shining though thanks to the platform API. Steve From hang.vo at oracle.com Mon Dec 9 13:03:24 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 09 Dec 2013 21:03:24 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Fix for RT-34713 Ensemble8: TreeTableView sample is bad in editing: edited values disappear Message-ID: <20131209210345.CA86C62B91@hg.openjdk.java.net> Changeset: 3bdcd01853bf Author: Alexander Kouznetsov Date: 2013-12-09 12:52 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/3bdcd01853bf Ensemble8: Fix for RT-34713 Ensemble8: TreeTableView sample is bad in editing: edited values disappear + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/Data.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/Inventory.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/Part.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/TreeTableViewApp.java From pedro.duquevieira at gmail.com Mon Dec 9 13:10:04 2013 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Mon, 9 Dec 2013 21:10:04 +0000 Subject: Look and feel mechanism? In-Reply-To: References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> <529D8A84-4066-4379-8C2E-59255FD147B9@winnall.ch> Message-ID: @Felix: Thank you for the kind words (although I don't consider myself a rock star :-) ). As you mentioned I said I didn't want to make a iOS 7 native look and feel, I said it because I consider it broken as well as many other influential designers do. Broken in the sense that it has various wrong design decisions. As for the discussion of native look and feels, I think a cross platform look and feel that goes for the least common denominator and doesn't violate any of the platforms look and feel guidelines is the best way to go. As was already said having a native look and feel for each platform is a ton of work, even if the framework does provide one (as Felix said, most often is not even 80% identical) you still have to adapt the application for each platform if you go this way. The real problem is the "feel" part, each platform has a different standard set of controls, consider for example windows 8 which for desktop app almost always substitutes menus for a ribbon. If you go this way you better, as was already said, go with the platforms set of tools to create apps, instead of using java/javafx. Modena is an excellent cross platform look and feel that looks great, something we never had in swing, at least not out of the box in the framework. And I think this is the best way to go. As for mobile, I think the same should be done: create a cross platform look and feel. When developers choose java for this it often is because they lake the necessary resources to build a native app for each system. A good cross platform look and feel will speed up development and time of delivery. I don't think you have to go native to have a great designed app, there are various examples on mobile of great apps that don't use the standard looking platform controls. There are even apps that go as far as use almost only gestures with almost no controls. Checkout "Clear", a critically acclaimed app for its design, that almost doesn't use controls: http://realmacsoftware.com/clear/ or "Paper" also an app that is recognized by many as having an excellent design that also doesn't use standard native controls: http://www.fiftythree.com/ On Mon, Dec 9, 2013 at 8:03 PM, Felix Bembrick wrote: > I am with you on the "design pattern" approach you refer to which is > basically a higher level of abstraction than say one which actually > specifies which widget types to use. > > But who is this "someone who loves the target platform" and how and when > do they get to hook-in the actual widgets? > > While I agree JavaFX certainly has the ability to implement the high-level > abstraction layer (as does pretty much any programming language, how > (physically speaking) is someone going to link this with an actual > selection of widgets on each OS? Isn't *that* the whole problem here? > > Felix > > > > On 10 December 2013 06:50, Stephen Winnall wrote: > >> Just to take a completely different tack: I have a sneaking suspicion >> that the whole approach to UI design is wrong. Aside from the platform >> abstraction thing, I wonder whether we shouldn?t be approaching UIs from a >> design pattern perspective. The application programmer is the wrong person >> to decide whether to implement a pop-up menu, a combobox or a selection >> list: all the programmer needs to specify is ?get me one or more elements >> from this list?, and someone who loves the target platform (even Windows >> ;-) ) should instantiate the appropriate widget for that platform. >> >> JavaFX gives us the capability to do this. >> >> I think we tend to think of ourselves as clones of Leonardo da Vinci, >> capable of programming and design, when the truth is somewhat different, >> the more so when we?re implementing stuff for platforms we secretly >> despise? But now I?m ranting, sorry. >> >> To get back to cross-platform looks. People are used to them because of >> WWW and browser interfaces. But the desktop has no competitive advantage >> over the browser idiom if it doesn?t do the user experience better. It?s a >> question of quality as opposed to 80:20 in my view. It?s look AND feel. >> >> Steve >> >> On 9 Dec 2013, at 18:42, Felix Bembrick wrote: >> >> Agreed that Quaqua did a great job and lets not lose sight of the fact >> that I am totally praising the efforts of everyone who has worked in this >> frustrating and tedious area of UI development/support. I just think the >> obvious talents of those people could be utilised for a purpose less likely >> to drive them crazy! >> >> Yes, Metal was an unabridged disaster but did you ever see Substance? I >> thought that looked great on all platforms. And today there is also Cezanne >> which isn't too shabby. >> >> What's really needed is, as you say, some kind of platform abstraction >> that handles all the OS specific details and then you code to use it. >> Ideally this abstraction would result in the use of actual native widgets >> but how you would apply all the features that come with Node to those >> widgets I have no idea... >> >> On 9 Dec 2013, at 22:49, Stephen Winnall wrote: >> >> On 9 Dec 2013, at 03:18, Felix Bembrick wrote: >> >> @Stephen, you are absolutely right about this. But such an approach (and >> pretty much *any* approach) to "emulated" native look and feels is fraught >> with difficulties and complexities. >> >> Firstly, it will *never* be possible to completely emulate the native >> look and feel. And, even if the differences are subtle, there is the very >> real risk that the end user will have a very uneasy feeling using such a >> look and feel. At times it will even seem like an imposter. >> >> >> Agreed, though Quaqua did quite a good (and unobtrusive) job for the look >> on Swing on Mac OS X. >> >> Secondly, you will be forever playing catchup as each new major release >> (and also even each minor update) changes one or more of the behaviours >> that you have so carefully emulated. The result is that for a while at >> least, your emulated look and feel is an even more obvious imposter with an >> even more uneasy experience for the user. >> >> >> Indeed. I?m not really a fan of reimplementing something that?s already >> there anyway. It should be possible to use the native facilities via >> appropriate APIs. >> >> Thirdly, building such emulated look and feels is a *lot* of work (much >> more than you would think). >> >> >> Tell me about it :-) I spent a long time trying to create a Platform >> abstraction for Swing which would allow applications to be moved from >> platform to platform and adopt the native look and feel. The along came >> JavaFX. But we missed out on the chance of developing a platform >> abstraction there too. >> >> My reasoning is: why bother? Why not build a "JavaFX look and feel" >> (akin to something like Nimubs in Swing) that simply doesn't even try to >> look native? Then you know for sure your app looks and behaves identically >> on all devices and there is no hint of "imposter-ness?. >> >> >> The answer to this question is relatively simple: Metal. Metal, you will >> recall, was the one-size-fits-all look for Swing. And it was > deleted> and was a major reason for the failure of Swing (and thus Java) on >> the desktop. >> >> Ultimately, all cross-platform looks suffer from the same problem: they >> don?t look right on any platform and often terrible on others. And ignoring >> the feel of the target platform is the ultimate sin: users don?t understand >> what the app is doing or why but often cannot articulate their feelings >> because there?s no *observable* problem, only a ?feelable" one. And so >> another Java desktop app dies the death... >> >> These days, many apps do not look 100% native and may have their own >> controls or look and feel in general. Why not channel all that massive >> effort in constructing an emulated native look and feel into simply making >> JavaFX better overall? >> >> >> Agreed. Let?s define a platform abstraction? >> >> Steve >> >> >> > -- Pedro Duque Vieira From felix.bembrick at gmail.com Mon Dec 9 13:14:07 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Tue, 10 Dec 2013 08:14:07 +1100 Subject: Look and feel mechanism? In-Reply-To: <8643BAA2-09DC-49A5-963C-C0C0E4259649@gmail.com> References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> <529D8A84-4066-4379-8C2E-59255FD147B9@winnall.ch> <8643BAA2-09DC-49A5-963C-C0C0E4259649@gmail.com> Message-ID: Scott, I think the take-away here is that there simply aren't the features "out of the box" in JavaFX/Java (even with CSS, skins, FXML) to implement the best platform/UI abstraction and, given the various and vastly differing opinions of how this layer should work or look, I doubt that any "official" solution will ever be provided by Oracle. I guess that we all need to do what works for ourselves in this area which is admittedly unfortunate and undesirable... On 10 December 2013 07:49, Scott Palmer wrote: > I see the point of he higher-level abstraction, but I think we need more > control over the user experience than that for most cases. If not simply > for aesthetics, there are times when I know I want a combobox vs. a spinner > vs. a list with a single selection model. > > What we need are more of what we already have with things like: > > MenuBar.useSystemMenuBarProperty() > > or in Swing, MouseEvent.isPopupTrigger() > > Consider for example the standard shortcut for Undo. CTRL-Z on Windows, > Command-Z o Mac. That?s easy, Mac uses Command where Windows uses CTRL. > But what about Redo? CTRL-Y on Windows, Command-Shift-Z on Mac. > > Developers have to know these things and code for them explicitly. Where > is the abstraction in the Java APIs? > > Scott > > > On Dec 9, 2013, at 3:03 PM, Felix Bembrick > wrote: > > > I am with you on the "design pattern" approach you refer to which is > > basically a higher level of abstraction than say one which actually > > specifies which widget types to use. > > > > But who is this "someone who loves the target platform" and how and when > do > > they get to hook-in the actual widgets? > > > > While I agree JavaFX certainly has the ability to implement the > high-level > > abstraction layer (as does pretty much any programming language, how > > (physically speaking) is someone going to link this with an actual > > selection of widgets on each OS? Isn't *that* the whole problem here? > > > > Felix > > > > > > > > On 10 December 2013 06:50, Stephen Winnall wrote: > > > >> Just to take a completely different tack: I have a sneaking suspicion > that > >> the whole approach to UI design is wrong. Aside from the platform > >> abstraction thing, I wonder whether we shouldn?t be approaching UIs > from a > >> design pattern perspective. The application programmer is the wrong > person > >> to decide whether to implement a pop-up menu, a combobox or a selection > >> list: all the programmer needs to specify is ?get me one or more > elements > >> from this list?, and someone who loves the target platform (even Windows > >> ;-) ) should instantiate the appropriate widget for that platform. > >> > >> JavaFX gives us the capability to do this. > >> > >> I think we tend to think of ourselves as clones of Leonardo da Vinci, > >> capable of programming and design, when the truth is somewhat different, > >> the more so when we?re implementing stuff for platforms we secretly > >> despise? But now I?m ranting, sorry. > >> > >> To get back to cross-platform looks. People are used to them because of > >> WWW and browser interfaces. But the desktop has no competitive advantage > >> over the browser idiom if it doesn?t do the user experience better. > It?s a > >> question of quality as opposed to 80:20 in my view. It?s look AND feel. > >> > >> Steve > >> > >> On 9 Dec 2013, at 18:42, Felix Bembrick > wrote: > >> > >> Agreed that Quaqua did a great job and lets not lose sight of the fact > >> that I am totally praising the efforts of everyone who has worked in > this > >> frustrating and tedious area of UI development/support. I just think the > >> obvious talents of those people could be utilised for a purpose less > likely > >> to drive them crazy! > >> > >> Yes, Metal was an unabridged disaster but did you ever see Substance? I > >> thought that looked great on all platforms. And today there is also > Cezanne > >> which isn't too shabby. > >> > >> What's really needed is, as you say, some kind of platform abstraction > >> that handles all the OS specific details and then you code to use it. > >> Ideally this abstraction would result in the use of actual native > widgets > >> but how you would apply all the features that come with Node to those > >> widgets I have no idea... > >> > >> On 9 Dec 2013, at 22:49, Stephen Winnall wrote: > >> > >> On 9 Dec 2013, at 03:18, Felix Bembrick > wrote: > >> > >> @Stephen, you are absolutely right about this. But such an approach > (and > >> pretty much *any* approach) to "emulated" native look and feels is > fraught > >> with difficulties and complexities. > >> > >> Firstly, it will *never* be possible to completely emulate the native > look > >> and feel. And, even if the differences are subtle, there is the very > real > >> risk that the end user will have a very uneasy feeling using such a look > >> and feel. At times it will even seem like an imposter. > >> > >> > >> Agreed, though Quaqua did quite a good (and unobtrusive) job for the > look > >> on Swing on Mac OS X. > >> > >> Secondly, you will be forever playing catchup as each new major release > >> (and also even each minor update) changes one or more of the behaviours > >> that you have so carefully emulated. The result is that for a while at > >> least, your emulated look and feel is an even more obvious imposter > with an > >> even more uneasy experience for the user. > >> > >> > >> Indeed. I?m not really a fan of reimplementing something that?s already > >> there anyway. It should be possible to use the native facilities via > >> appropriate APIs. > >> > >> Thirdly, building such emulated look and feels is a *lot* of work (much > >> more than you would think). > >> > >> > >> Tell me about it :-) I spent a long time trying to create a Platform > >> abstraction for Swing which would allow applications to be moved from > >> platform to platform and adopt the native look and feel. The along came > >> JavaFX. But we missed out on the chance of developing a platform > >> abstraction there too. > >> > >> My reasoning is: why bother? Why not build a "JavaFX look and feel" > (akin > >> to something like Nimubs in Swing) that simply doesn't even try to look > >> native? Then you know for sure your app looks and behaves identically > on > >> all devices and there is no hint of "imposter-ness?. > >> > >> > >> The answer to this question is relatively simple: Metal. Metal, you will > >> recall, was the one-size-fits-all look for Swing. And it was >> deleted> and was a major reason for the failure of Swing (and thus > Java) on > >> the desktop. > >> > >> Ultimately, all cross-platform looks suffer from the same problem: they > >> don?t look right on any platform and often terrible on others. And > ignoring > >> the feel of the target platform is the ultimate sin: users don?t > understand > >> what the app is doing or why but often cannot articulate their feelings > >> because there?s no *observable* problem, only a ?feelable" one. And so > >> another Java desktop app dies the death... > >> > >> These days, many apps do not look 100% native and may have their own > >> controls or look and feel in general. Why not channel all that massive > >> effort in constructing an emulated native look and feel into simply > making > >> JavaFX better overall? > >> > >> > >> Agreed. Let?s define a platform abstraction? > >> > >> Steve > >> > >> > >> > > From hang.vo at oracle.com Mon Dec 9 13:32:46 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 09 Dec 2013 21:32:46 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Fix for RT-34769 Ensemble8: TableCellFactoryApp sample needs cleanup Message-ID: <20131209213302.3E15462B94@hg.openjdk.java.net> Changeset: a5d957304de7 Author: Alexander Kouznetsov Date: 2013-12-09 13:18 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/a5d957304de7 Ensemble8: Fix for RT-34769 Ensemble8: TableCellFactoryApp sample needs cleanup ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/Person.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java From hang.vo at oracle.com Mon Dec 9 13:47:55 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 09 Dec 2013 21:47:55 +0000 Subject: hg: openjfx/8/graphics/rt: 2 new changesets Message-ID: <20131209214827.9684062B96@hg.openjdk.java.net> Changeset: 2883ec7be017 Author: Alexander Kouznetsov Date: 2013-12-09 13:36 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/2883ec7be017 Ensemble8: Fix for RT-34448 HTML Editor in Ensemble8 is not completely visible ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java Changeset: 98ffb00297f5 Author: Alexander Kouznetsov Date: 2013-12-09 13:45 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/98ffb00297f5 Ensemble8: Fix for RT-30482 Ensemble8: no format checking for X and Y values in charts ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/XYDataVisualizer.java From hang.vo at oracle.com Mon Dec 9 13:17:45 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 09 Dec 2013 21:17:45 +0000 Subject: hg: openjfx/8/graphics/rt: 2 new changesets Message-ID: <20131209211816.2877062B92@hg.openjdk.java.net> Changeset: 53cb68c02d07 Author: John Yoon Date: 2013-12-09 12:38 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/53cb68c02d07 [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/pathtransition/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/pathtransition/preview at 2x.png Changeset: a7f21c31ef3e Author: Alexander Kouznetsov Date: 2013-12-09 13:16 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/a7f21c31ef3e Ensemble8: Fix for RT-34785 Ensemble8: Multi-touch sample is not found using Search ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchApp.java From hang.vo at oracle.com Mon Dec 9 14:32:51 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 09 Dec 2013 22:32:51 +0000 Subject: hg: openjfx/8/graphics/rt: [Samples Only][RT-33754] Ensemble Icons Message-ID: <20131209223309.BACCB62B97@hg.openjdk.java.net> Changeset: bee5e52e68ae Author: John Yoon Date: 2013-12-09 14:28 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/bee5e52e68ae [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview at 2x.png From hang.vo at oracle.com Mon Dec 9 15:33:04 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 09 Dec 2013 23:33:04 +0000 Subject: hg: openjfx/8/graphics/rt: 2 new changesets Message-ID: <20131209233337.449BF62BA1@hg.openjdk.java.net> Changeset: 57153bcef81f Author: kcr Date: 2013-12-09 15:15 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/57153bcef81f RT-34389: [doc] cssref.html copyright is incorrect Contributed-by: Tom Schindl ! apps/samples/Ensemble8/build.xml ! apps/samples/Ensemble8/nbproject/project.properties Changeset: c7d6f188d1d3 Author: kcr Date: 2013-12-09 15:17 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/c7d6f188d1d3 RT-19968: Document that Platform.runLater must not be called before FX is initialized ! modules/graphics/src/main/java/javafx/application/Platform.java From kevin.rushforth at oracle.com Mon Dec 9 15:42:36 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 09 Dec 2013 15:42:36 -0800 Subject: 8 post-commit review request: RT-19968: Document that Platform.runLater must not be called before FX is initialized Message-ID: <52A6556C.8000202@oracle.com> Please review the following javadoc change (post-commit). https://javafx-jira.kenai.com/browse/RT-19968 -- Kevin From swpalmer at gmail.com Mon Dec 9 15:49:58 2013 From: swpalmer at gmail.com (Scott Palmer) Date: Mon, 9 Dec 2013 18:49:58 -0500 Subject: Look and feel mechanism? In-Reply-To: References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> <529D8A84-4066-4379-8C2E-59255FD147B9@winnall.ch> <8643BAA2-09DC-49A5-963C-C0C0E4259649@gmail.com> Message-ID: Well there is the option of doing some sort of application support library in an external project first. Much like the ControlsFX stuff. If it works out, some aspects can be pulled into the JavaFX runtime at a later date. Scott On Dec 9, 2013 4:14 PM, "Felix Bembrick" wrote: > Scott, I think the take-away here is that there simply aren't the features > "out of the box" in JavaFX/Java (even with CSS, skins, FXML) to implement > the best platform/UI abstraction and, given the various and vastly > differing opinions of how this layer should work or look, I doubt that any > "official" solution will ever be provided by Oracle. > > I guess that we all need to do what works for ourselves in this area which > is admittedly unfortunate and undesirable... > > > On 10 December 2013 07:49, Scott Palmer wrote: > >> I see the point of he higher-level abstraction, but I think we need more >> control over the user experience than that for most cases. If not simply >> for aesthetics, there are times when I know I want a combobox vs. a spinner >> vs. a list with a single selection model. >> >> What we need are more of what we already have with things like: >> >> MenuBar.useSystemMenuBarProperty() >> >> or in Swing, MouseEvent.isPopupTrigger() >> >> Consider for example the standard shortcut for Undo. CTRL-Z on Windows, >> Command-Z o Mac. That?s easy, Mac uses Command where Windows uses CTRL. >> But what about Redo? CTRL-Y on Windows, Command-Shift-Z on Mac. >> >> Developers have to know these things and code for them explicitly. Where >> is the abstraction in the Java APIs? >> >> Scott >> >> >> On Dec 9, 2013, at 3:03 PM, Felix Bembrick >> wrote: >> >> > I am with you on the "design pattern" approach you refer to which is >> > basically a higher level of abstraction than say one which actually >> > specifies which widget types to use. >> > >> > But who is this "someone who loves the target platform" and how and >> when do >> > they get to hook-in the actual widgets? >> > >> > While I agree JavaFX certainly has the ability to implement the >> high-level >> > abstraction layer (as does pretty much any programming language, how >> > (physically speaking) is someone going to link this with an actual >> > selection of widgets on each OS? Isn't *that* the whole problem here? >> > >> > Felix >> > >> > >> > >> > On 10 December 2013 06:50, Stephen Winnall wrote: >> > >> >> Just to take a completely different tack: I have a sneaking suspicion >> that >> >> the whole approach to UI design is wrong. Aside from the platform >> >> abstraction thing, I wonder whether we shouldn?t be approaching UIs >> from a >> >> design pattern perspective. The application programmer is the wrong >> person >> >> to decide whether to implement a pop-up menu, a combobox or a selection >> >> list: all the programmer needs to specify is ?get me one or more >> elements >> >> from this list?, and someone who loves the target platform (even >> Windows >> >> ;-) ) should instantiate the appropriate widget for that platform. >> >> >> >> JavaFX gives us the capability to do this. >> >> >> >> I think we tend to think of ourselves as clones of Leonardo da Vinci, >> >> capable of programming and design, when the truth is somewhat >> different, >> >> the more so when we?re implementing stuff for platforms we secretly >> >> despise? But now I?m ranting, sorry. >> >> >> >> To get back to cross-platform looks. People are used to them because of >> >> WWW and browser interfaces. But the desktop has no competitive >> advantage >> >> over the browser idiom if it doesn?t do the user experience better. >> It?s a >> >> question of quality as opposed to 80:20 in my view. It?s look AND feel. >> >> >> >> Steve >> >> >> >> On 9 Dec 2013, at 18:42, Felix Bembrick >> wrote: >> >> >> >> Agreed that Quaqua did a great job and lets not lose sight of the fact >> >> that I am totally praising the efforts of everyone who has worked in >> this >> >> frustrating and tedious area of UI development/support. I just think >> the >> >> obvious talents of those people could be utilised for a purpose less >> likely >> >> to drive them crazy! >> >> >> >> Yes, Metal was an unabridged disaster but did you ever see Substance? I >> >> thought that looked great on all platforms. And today there is also >> Cezanne >> >> which isn't too shabby. >> >> >> >> What's really needed is, as you say, some kind of platform abstraction >> >> that handles all the OS specific details and then you code to use it. >> >> Ideally this abstraction would result in the use of actual native >> widgets >> >> but how you would apply all the features that come with Node to those >> >> widgets I have no idea... >> >> >> >> On 9 Dec 2013, at 22:49, Stephen Winnall wrote: >> >> >> >> On 9 Dec 2013, at 03:18, Felix Bembrick >> wrote: >> >> >> >> @Stephen, you are absolutely right about this. But such an approach >> (and >> >> pretty much *any* approach) to "emulated" native look and feels is >> fraught >> >> with difficulties and complexities. >> >> >> >> Firstly, it will *never* be possible to completely emulate the native >> look >> >> and feel. And, even if the differences are subtle, there is the very >> real >> >> risk that the end user will have a very uneasy feeling using such a >> look >> >> and feel. At times it will even seem like an imposter. >> >> >> >> >> >> Agreed, though Quaqua did quite a good (and unobtrusive) job for the >> look >> >> on Swing on Mac OS X. >> >> >> >> Secondly, you will be forever playing catchup as each new major release >> >> (and also even each minor update) changes one or more of the behaviours >> >> that you have so carefully emulated. The result is that for a while at >> >> least, your emulated look and feel is an even more obvious imposter >> with an >> >> even more uneasy experience for the user. >> >> >> >> >> >> Indeed. I?m not really a fan of reimplementing something that?s already >> >> there anyway. It should be possible to use the native facilities via >> >> appropriate APIs. >> >> >> >> Thirdly, building such emulated look and feels is a *lot* of work (much >> >> more than you would think). >> >> >> >> >> >> Tell me about it :-) I spent a long time trying to create a Platform >> >> abstraction for Swing which would allow applications to be moved from >> >> platform to platform and adopt the native look and feel. The along came >> >> JavaFX. But we missed out on the chance of developing a platform >> >> abstraction there too. >> >> >> >> My reasoning is: why bother? Why not build a "JavaFX look and feel" >> (akin >> >> to something like Nimubs in Swing) that simply doesn't even try to look >> >> native? Then you know for sure your app looks and behaves identically >> on >> >> all devices and there is no hint of "imposter-ness?. >> >> >> >> >> >> The answer to this question is relatively simple: Metal. Metal, you >> will >> >> recall, was the one-size-fits-all look for Swing. And it was > >> deleted> and was a major reason for the failure of Swing (and thus >> Java) on >> >> the desktop. >> >> >> >> Ultimately, all cross-platform looks suffer from the same problem: they >> >> don?t look right on any platform and often terrible on others. And >> ignoring >> >> the feel of the target platform is the ultimate sin: users don?t >> understand >> >> what the app is doing or why but often cannot articulate their feelings >> >> because there?s no *observable* problem, only a ?feelable" one. And so >> >> another Java desktop app dies the death... >> >> >> >> These days, many apps do not look 100% native and may have their own >> >> controls or look and feel in general. Why not channel all that massive >> >> effort in constructing an emulated native look and feel into simply >> making >> >> JavaFX better overall? >> >> >> >> >> >> Agreed. Let?s define a platform abstraction? >> >> >> >> Steve >> >> >> >> >> >> >> >> > From felix.bembrick at gmail.com Mon Dec 9 15:56:20 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Tue, 10 Dec 2013 10:56:20 +1100 Subject: Look and feel mechanism? In-Reply-To: References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> <529D8A84-4066-4379-8C2E-59255FD147B9@winnall.ch> <8643BAA2-09DC-49A5-963C-C0C0E4259649@gmail.com> Message-ID: Yes, I think that's the best approach. I am working on some aspects of this internally and hopefully next year I can contribute some parts of that :-) Felix On 10 December 2013 10:49, Scott Palmer wrote: > Well there is the option of doing some sort of application support library > in an external project first. Much like the ControlsFX stuff. > > If it works out, some aspects can be pulled into the JavaFX runtime at a > later date. > > Scott > On Dec 9, 2013 4:14 PM, "Felix Bembrick" wrote: > >> Scott, I think the take-away here is that there simply aren't the >> features "out of the box" in JavaFX/Java (even with CSS, skins, FXML) to >> implement the best platform/UI abstraction and, given the various and >> vastly differing opinions of how this layer should work or look, I doubt >> that any "official" solution will ever be provided by Oracle. >> >> I guess that we all need to do what works for ourselves in this area >> which is admittedly unfortunate and undesirable... >> >> >> On 10 December 2013 07:49, Scott Palmer wrote: >> >>> I see the point of he higher-level abstraction, but I think we need more >>> control over the user experience than that for most cases. If not simply >>> for aesthetics, there are times when I know I want a combobox vs. a spinner >>> vs. a list with a single selection model. >>> >>> What we need are more of what we already have with things like: >>> >>> MenuBar.useSystemMenuBarProperty() >>> >>> or in Swing, MouseEvent.isPopupTrigger() >>> >>> Consider for example the standard shortcut for Undo. CTRL-Z on Windows, >>> Command-Z o Mac. That?s easy, Mac uses Command where Windows uses CTRL. >>> But what about Redo? CTRL-Y on Windows, Command-Shift-Z on Mac. >>> >>> Developers have to know these things and code for them explicitly. >>> Where is the abstraction in the Java APIs? >>> >>> Scott >>> >>> >>> On Dec 9, 2013, at 3:03 PM, Felix Bembrick >>> wrote: >>> >>> > I am with you on the "design pattern" approach you refer to which is >>> > basically a higher level of abstraction than say one which actually >>> > specifies which widget types to use. >>> > >>> > But who is this "someone who loves the target platform" and how and >>> when do >>> > they get to hook-in the actual widgets? >>> > >>> > While I agree JavaFX certainly has the ability to implement the >>> high-level >>> > abstraction layer (as does pretty much any programming language, how >>> > (physically speaking) is someone going to link this with an actual >>> > selection of widgets on each OS? Isn't *that* the whole problem here? >>> > >>> > Felix >>> > >>> > >>> > >>> > On 10 December 2013 06:50, Stephen Winnall wrote: >>> > >>> >> Just to take a completely different tack: I have a sneaking suspicion >>> that >>> >> the whole approach to UI design is wrong. Aside from the platform >>> >> abstraction thing, I wonder whether we shouldn?t be approaching UIs >>> from a >>> >> design pattern perspective. The application programmer is the wrong >>> person >>> >> to decide whether to implement a pop-up menu, a combobox or a >>> selection >>> >> list: all the programmer needs to specify is ?get me one or more >>> elements >>> >> from this list?, and someone who loves the target platform (even >>> Windows >>> >> ;-) ) should instantiate the appropriate widget for that platform. >>> >> >>> >> JavaFX gives us the capability to do this. >>> >> >>> >> I think we tend to think of ourselves as clones of Leonardo da Vinci, >>> >> capable of programming and design, when the truth is somewhat >>> different, >>> >> the more so when we?re implementing stuff for platforms we secretly >>> >> despise? But now I?m ranting, sorry. >>> >> >>> >> To get back to cross-platform looks. People are used to them because >>> of >>> >> WWW and browser interfaces. But the desktop has no competitive >>> advantage >>> >> over the browser idiom if it doesn?t do the user experience better. >>> It?s a >>> >> question of quality as opposed to 80:20 in my view. It?s look AND >>> feel. >>> >> >>> >> Steve >>> >> >>> >> On 9 Dec 2013, at 18:42, Felix Bembrick >>> wrote: >>> >> >>> >> Agreed that Quaqua did a great job and lets not lose sight of the fact >>> >> that I am totally praising the efforts of everyone who has worked in >>> this >>> >> frustrating and tedious area of UI development/support. I just think >>> the >>> >> obvious talents of those people could be utilised for a purpose less >>> likely >>> >> to drive them crazy! >>> >> >>> >> Yes, Metal was an unabridged disaster but did you ever see Substance? >>> I >>> >> thought that looked great on all platforms. And today there is also >>> Cezanne >>> >> which isn't too shabby. >>> >> >>> >> What's really needed is, as you say, some kind of platform abstraction >>> >> that handles all the OS specific details and then you code to use it. >>> >> Ideally this abstraction would result in the use of actual native >>> widgets >>> >> but how you would apply all the features that come with Node to those >>> >> widgets I have no idea... >>> >> >>> >> On 9 Dec 2013, at 22:49, Stephen Winnall wrote: >>> >> >>> >> On 9 Dec 2013, at 03:18, Felix Bembrick >>> wrote: >>> >> >>> >> @Stephen, you are absolutely right about this. But such an approach >>> (and >>> >> pretty much *any* approach) to "emulated" native look and feels is >>> fraught >>> >> with difficulties and complexities. >>> >> >>> >> Firstly, it will *never* be possible to completely emulate the native >>> look >>> >> and feel. And, even if the differences are subtle, there is the very >>> real >>> >> risk that the end user will have a very uneasy feeling using such a >>> look >>> >> and feel. At times it will even seem like an imposter. >>> >> >>> >> >>> >> Agreed, though Quaqua did quite a good (and unobtrusive) job for the >>> look >>> >> on Swing on Mac OS X. >>> >> >>> >> Secondly, you will be forever playing catchup as each new major >>> release >>> >> (and also even each minor update) changes one or more of the >>> behaviours >>> >> that you have so carefully emulated. The result is that for a while >>> at >>> >> least, your emulated look and feel is an even more obvious imposter >>> with an >>> >> even more uneasy experience for the user. >>> >> >>> >> >>> >> Indeed. I?m not really a fan of reimplementing something that?s >>> already >>> >> there anyway. It should be possible to use the native facilities via >>> >> appropriate APIs. >>> >> >>> >> Thirdly, building such emulated look and feels is a *lot* of work >>> (much >>> >> more than you would think). >>> >> >>> >> >>> >> Tell me about it :-) I spent a long time trying to create a Platform >>> >> abstraction for Swing which would allow applications to be moved from >>> >> platform to platform and adopt the native look and feel. The along >>> came >>> >> JavaFX. But we missed out on the chance of developing a platform >>> >> abstraction there too. >>> >> >>> >> My reasoning is: why bother? Why not build a "JavaFX look and feel" >>> (akin >>> >> to something like Nimubs in Swing) that simply doesn't even try to >>> look >>> >> native? Then you know for sure your app looks and behaves >>> identically on >>> >> all devices and there is no hint of "imposter-ness?. >>> >> >>> >> >>> >> The answer to this question is relatively simple: Metal. Metal, you >>> will >>> >> recall, was the one-size-fits-all look for Swing. And it was >>> >> >> deleted> and was a major reason for the failure of Swing (and thus >>> Java) on >>> >> the desktop. >>> >> >>> >> Ultimately, all cross-platform looks suffer from the same problem: >>> they >>> >> don?t look right on any platform and often terrible on others. And >>> ignoring >>> >> the feel of the target platform is the ultimate sin: users don?t >>> understand >>> >> what the app is doing or why but often cannot articulate their >>> feelings >>> >> because there?s no *observable* problem, only a ?feelable" one. And so >>> >> another Java desktop app dies the death... >>> >> >>> >> These days, many apps do not look 100% native and may have their own >>> >> controls or look and feel in general. Why not channel all that >>> massive >>> >> effort in constructing an emulated native look and feel into simply >>> making >>> >> JavaFX better overall? >>> >> >>> >> >>> >> Agreed. Let?s define a platform abstraction? >>> >> >>> >> Steve >>> >> >>> >> >>> >> >>> >>> >> From hang.vo at oracle.com Mon Dec 9 16:04:03 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 00:04:03 +0000 Subject: hg: openjfx/8u-dev/rt: 9 new changesets Message-ID: <20131210000644.6A09962BA2@hg.openjdk.java.net> Changeset: 1428f17dbbf5 Author: jgiles Date: 2013-12-09 12:32 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/1428f17dbbf5 RT-18439: [TableView, TreeTableView] Shift-Up/Down behaves weirdly in multi-cell selection mode ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableViewBehaviorBase.java ! modules/controls/src/test/java/javafx/scene/control/TableViewKeyInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewKeyInputTest.java Changeset: 452c90d6ed4d Author: jgiles Date: 2013-12-09 13:27 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/452c90d6ed4d RT-34649: [ListView, TableView, TreeTableView] don't allow to deselect item in single selection mode on ctrl+click RT-34203: [Controls, TreeView] Unselected cell is not focused in tree view ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/ListCellBehavior.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableCellBehaviorBase.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TreeCellBehavior.java ! modules/controls/src/test/java/javafx/scene/control/ListViewMouseInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TableViewMouseInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewMouseInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeViewMouseInputTest.java Changeset: c6e5f6f267bb Author: jgiles Date: 2013-12-09 14:04 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/c6e5f6f267bb RT-34694: Incorrect item is selected on TreeItem's list changing. ! modules/controls/src/main/java/javafx/scene/control/TreeTableView.java ! modules/controls/src/main/java/javafx/scene/control/TreeView.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeViewTest.java Changeset: dd24954207a1 Author: Martin Sladecek Date: 2013-12-09 11:22 +0100 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/dd24954207a1 RT-34142 GridPane.addRow/addColumn methods should account for colSpan/rowSpan values Reviewed by: jgiles ! modules/graphics/src/main/java/javafx/scene/layout/GridPane.java ! modules/graphics/src/test/java/javafx/scene/layout/GridPaneTest.java Changeset: 5093e6568dc4 Author: Martin Sladecek Date: 2013-12-09 12:49 +0100 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/5093e6568dc4 RT-34126 GridPane prevents layouting ! modules/graphics/src/main/java/javafx/scene/layout/GridPane.java Changeset: c6bea95383c4 Author: jgiles Date: 2013-12-10 07:59 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/c6bea95383c4 RT-34777: Unit test failures in TableView tests ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableHeaderRow.java Changeset: f8e124c626d7 Author: Seeon Birger Date: 2013-12-09 21:24 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/f8e124c626d7 Fix RT-33529: EGLFB: holding the backspace key down doesnt work on virtual keyboard ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/FXVKSkin.java Changeset: a434b613d697 Author: mv157916 Date: 2013-12-06 11:27 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/a434b613d697 RT-34731: Update the JDK 8 build number to b119 in rt/build.properties file in the JavaFX 8 Master forest. ! build.properties Changeset: e0ca5674399b Author: kcr Date: 2013-12-09 15:52 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/e0ca5674399b Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt From jonathan.giles at oracle.com Mon Dec 9 16:11:48 2013 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Tue, 10 Dec 2013 13:11:48 +1300 Subject: Look and feel mechanism? In-Reply-To: References: <52A4FA20.3040605@oracle.com> <0AEF1B6E-EB3F-419B-9018-377EE131774B@oracle.com> <56C4B683-D8F1-4EC9-B11D-6108E226BD77@winnall.ch> <529D8A84-4066-4379-8C2E-59255FD147B9@winnall.ch> <8643BAA2-09DC-49A5-963C-C0C0E4259649@gmail.com> Message-ID: <52A65C44.109@oracle.com> This is my preferred approach. There is no need for the vast bulk of the work to be initiated within OpenJFX, and a third party project for touch / mobile devices, much like there are for JavaFX on the desktop, is the natural starting place to explore ideas. If I had unlimited time and resources, I would start up a ControlsFX project for Android / iOS, but I just don't think I have the bandwidth to do that along with everything else. Maybe that might change in the future, but I encourage those with more time to consider a project (or projects) of this nature. -- Jonathan On 10/12/2013 12:49 p.m., Scott Palmer wrote: > Well there is the option of doing some sort of application support library > in an external project first. Much like the ControlsFX stuff. > > If it works out, some aspects can be pulled into the JavaFX runtime at a > later date. > > Scott > From John_Smith at symantec.com Mon Dec 9 17:12:06 2013 From: John_Smith at symantec.com (John Smith) Date: Mon, 9 Dec 2013 17:12:06 -0800 Subject: 8 post-commit review request: RT-19968: Document that Platform.runLater must not be called before FX is initialized In-Reply-To: <52A6556C.8000202@oracle.com> References: <52A6556C.8000202@oracle.com> Message-ID: <411E73D23DEC4C46BA48F2B6D8BF3D22168DA6751D@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> The comments around application runtime initialization seem like they belong more properly in the application lifecycle javadoc for the Application class rather than on the Platform.runLater method specifically, though I do see how the runtime initialization cuts across multiple classes (Application/JFXPanel/FXCanvas, etc), so perhaps it is OK having the description where it is (lacking some better place to put it). Useful information though, thanks for including it. + *For standard JavaFX applications that extend + * {@see Application}, and use either the Java launcher or one of the + * launch methods in the Application class to launch the application, + * the FX runtime is initialized by the launcher before the Application + * class is loaded. + * For Swing applications that use JFXPanel to display FX content, the FX + * runtime is initialized when the first JFXPanel instance is constructed. + * For SWT application that use FXCanvas to display FX content, the FX + * runtime is initialized when the first FXCanvas instance is constructed. -----Original Message----- From: openjfx-dev-bounces at openjdk.java.net [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Kevin Rushforth Sent: Monday, December 09, 2013 3:43 PM To: Anthony Petrov Cc: openjfx-dev at openjdk.java.net Subject: 8 post-commit review request: RT-19968: Document that Platform.runLater must not be called before FX is initialized Please review the following javadoc change (post-commit). https://javafx-jira.kenai.com/browse/RT-19968 -- Kevin From hang.vo at oracle.com Mon Dec 9 17:33:25 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 01:33:25 +0000 Subject: hg: openjfx/8/graphics/rt: [Samples Only][RT-33754] Ensemble Icons Message-ID: <20131210013345.74A0D62BA3@hg.openjdk.java.net> Changeset: ac015a4a85b7 Author: John Yoon Date: 2013-12-09 17:26 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/ac015a4a85b7 [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/audio/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/audio/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/chart/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/chart/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/curvefitted/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/curvefitted/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/stacked/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/stacked/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/audio/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/audio/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/chart/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/chart/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/horizontal/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/horizontal/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/image/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/image/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/stacked/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/stacked/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/category/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/category/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/chart/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/chart/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/stock/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/stock/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/chart/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/chart/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/drilldown/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/drilldown/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/animated/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/animated/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/chart/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/chart/preview at 2x.png From kevin.rushforth at oracle.com Mon Dec 9 17:41:40 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 09 Dec 2013 17:41:40 -0800 Subject: 8 post-commit review request: RT-19968: Document that Platform.runLater must not be called before FX is initialized In-Reply-To: <411E73D23DEC4C46BA48F2B6D8BF3D22168DA6751D@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> References: <52A6556C.8000202@oracle.com> <411E73D23DEC4C46BA48F2B6D8BF3D22168DA6751D@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> Message-ID: <52A67154.8080209@oracle.com> (note that review comments should go into the JIRA) Hi John, You raise a good point about possibly moving the runtime initialization section. Perhaps it's worth a follow-up JIRA for FX 8u20 or 9 to address this. One possibility is to have most of the documentation in the Application class, and then refer to it from Platform, JFXPanel, and FXCanvas. -- Kevin John Smith wrote: > The comments around application runtime initialization seem like they belong more properly in the application lifecycle javadoc for the Application class rather than on the Platform.runLater method specifically, though I do see how the runtime initialization cuts across multiple classes (Application/JFXPanel/FXCanvas, etc), so perhaps it is OK having the description where it is (lacking some better place to put it). Useful information though, thanks for including it. > > + *For standard JavaFX applications that extend > + * {@see Application}, and use either the Java launcher or one of the > + * launch methods in the Application class to launch the application, > + * the FX runtime is initialized by the launcher before the Application > + * class is loaded. > + * For Swing applications that use JFXPanel to display FX content, the FX > + * runtime is initialized when the first JFXPanel instance is constructed. > + * For SWT application that use FXCanvas to display FX content, the FX > + * runtime is initialized when the first FXCanvas instance is constructed. > > -----Original Message----- > From: openjfx-dev-bounces at openjdk.java.net [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Kevin Rushforth > Sent: Monday, December 09, 2013 3:43 PM > To: Anthony Petrov > Cc: openjfx-dev at openjdk.java.net > Subject: 8 post-commit review request: RT-19968: Document that Platform.runLater must not be called before FX is initialized > > Please review the following javadoc change (post-commit). > > https://javafx-jira.kenai.com/browse/RT-19968 > > -- Kevin > > From kevin.rushforth at oracle.com Mon Dec 9 17:58:18 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 09 Dec 2013 17:58:18 -0800 Subject: 8 review request: RT-32512: Fix URL for JavaFX API docs license terms link Message-ID: <52A6753A.80706@oracle.com> Mong, Please review the following (in the JIRA). https://javafx-jira.kenai.com/browse/RT-32512 Thanks. -- Kevin From steve.x.northover at oracle.com Mon Dec 9 18:14:37 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Mon, 09 Dec 2013 21:14:37 -0500 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> <52A5E0BA.1010800@oracle.com> <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> <52A6041C.9080208@oracle.com> Message-ID: <52A6790D.2050007@oracle.com> At one point, I was very interested in seeing this happen but there wasn't the band width and resources. Steve On 2013-12-09 1:00 PM, Felix Bembrick wrote: > What can we expect from the JavaFX team in this regard in the future? I know we have talked about mixing lightweight and heavyweight controls in the same context but is it going to happen? Is this planned for JFX9 perhaps? Is it *really* even feasible? > >> On 10 Dec 2013, at 4:55, Stephen F Northover wrote: >> >> Today, you can only exercise the choice by writing native code and you face heavyweight / lightweight issues depending on the platform and API. >> >> Steve >> >>> On 2013-12-09 12:31 PM, Felix Bembrick wrote: >>> Stephen, I thoroughly agree that JavaFX is by far the best choice for non-native apps/widgets which is precisely my point. They are the kind of apps perfect for using JavaFX. >>> >>> But you refer to giving people the choice to go native where appropriate. How can I exercise that choice? Where is the support for native widgets in JavaFX? >>> >>> And isn't the real Holy Grail being able to mix native and non-native widgets in the same app with all features of Node being available to every widget, with all the effects and transforms, all the CSS/styling and with all the performance? >>> >>> Could JavaFX ever be such a toolkit? >>> >>>> On 10 Dec 2013, at 2:24, Stephen F Northover wrote: >>>> >>>> Here are my thoughts on the matter. Give people the choice of whether to use native or non-native components. In some applications, everything will be non-native. In others, only the main content area will be non-native and the rest will be native. In some mobile applications, perhaps the preference pages will be native and other parts will not. >>>> >>>> JavaFX is the best choice for non-native widgets and we are committed to making it the best toolkit all around. >>>> >>>> Steve >>>> >>>>> On 2013-12-09 9:49 AM, Scott Palmer wrote: >>>>> I agree that perfect sync with native look and feels is not what is required and not worth the effort. I do think though that major concepts in the platform's look and feel should (must!) be followed or the user experience is ruined. >>>>> >>>>> The example of the order of the ok and cancel buttons has been brought up already. But that isn't even the most important one. >>>>> >>>>> Things like shortcut keys. CTRL-C to copy on windows, Command-C to copy on Mac. Standard menu layouts, right-click behaviour and standard context menus. They just have to be in the right place. That they look different doesn't matter as much. And this doesn't mean that you can't try new ideas for UI. But basic things that users expect to work should still work. E.g. Command-Q on OS X better quit the app :-) >>>>> >>>>> As noted already with my reference to Office and browsers.. Fully native apps can be non-compliant with the platforms look and feel. So this isn't really a Java-specific issue. >>>>> >>>>> Scott >>>>> >>>>>> On Dec 9, 2013, at 4:24 AM, Felix Bembrick wrote: >>>>>> >>>>>> Spoiler: This is something I have become intensely passionate about so this is likely to be a long post... >>>>>> >>>>>> OK, so this (hijacked) thread started out as a discussion of options in JavaFX for implementing "Look and Feel". I think everyone agrees that even with CSS and skins, JavaFX lacks the built-in ability to define a true Look *and* Feel. Further to this, there has been discussion on Twitter and elsewhere regarding *native* Look and Feel and the merits of attempting such an animal with JavaFX. >>>>>> >>>>>> It is on this topic that I would like to add my 2 bits (as I am known to do)! I was going to use my blog http://justmy2bits.com but decided I would be much more likely to be able to engage fellow JavaFX developers in a positive, polite and respectful conversation here. >>>>>> >>>>>> First, anyone who may follow me on Twitter, in this forum or when I post in other forums (anyone?) will probably be a little bit confused as to where I actually stand on this issue. Well, this stems from the fact that I have been giving confusing (if not conflicting) input into various threads on this topic for quite a while. >>>>>> >>>>>> Why? >>>>>> >>>>>> Well, because until very recently, I myself was completely torn on the subject of native Look and Feel. In fact, I seemed to oscillate on an almost daily basis from thinking it's a great, achievable idea to dismissing such an idea on various grounds. I am swaying so much because I have so much riding on successful ports of JavaFX to iOS and Android and because those ports depend heavily on resolving this issue once and for all. >>>>>> >>>>>> Now I have had something of an epiphany and reached a conclusion. I now do not believe that pouring large (massive?) amounts of resources into the painstaking task of building a fully compliant, fully performant native Look and Feel is justifiable or worth the effort. And let's be clear about this: it is a *lot* of effort! >>>>>> >>>>>> But before I proceed I just want to say categorically how much I admire the thoroughly awesome work/efforts of the likes of Pedro DV, Claudine Zillmann, Hendrik Ebbers et. al. in (trying ever so hard) to bring native Look and Feel to various OS/platforms with JavaFX. I cannot put in words how much I am in awe of the commitment, the attention to detail, the technical prowess, the artistry and the drive of these fantastic people. Their work will undoubtedly be extremely useful to many developers worldwide. >>>>>> >>>>>> I want to make all that *perfectly clear* because now I am going to explain why I (probably) will not be one of those people and (hopefully) do it with the utmost respect for the aforementioned rock stars :-) >>>>>> >>>>>> Right, so back to the issue of whether to or not to implement or use a native Look and Feel. Some of the following comments have already been made by me on other networks and in other forums so apologies if it seems a bit repetitive to some. >>>>>> >>>>>> At first glance, the idea of a native Look and Feel seems almost like the proverbial Holy Grail. I mean, if such a thing were truly possible and viable, who wouldn't want one? You still have your single codebase across all platforms and you just just plug-in the particular native Look and Feel for your target platform and voila! World domination will surely soon follow! >>>>>> >>>>>> Well, not quite. It's a great idea but I am going out on a limb to claim that it has *never* worked. Ever! And by "work" I mean so that your "not-so-native" app looks and feels (which includes all aspects of behaviour, not just appearance) *exactly* like a true native app and *no one* could tell you that it *wasn't* a native app. >>>>>> >>>>>> Yes, I know there are masses now screaming at their monitors who will undoubtedly cite the numerous success stories of Swing apps or maybe even Qt or some other cross-platform UI toolkit and maybe my standards/criteria are harsher than others but I stand by my claim that this has *never ever* really, really, really worked. >>>>>> >>>>>> OK, so why not? >>>>>> >>>>>> Here's my first point: I postulate that such a noble goal is not actually achievable. It is not actually achievable for a number of reasons. >>>>>> >>>>>> It is not actually achievable because, in most cases, we do not have access to the code that implements the native controls on each OS so, at best, we are "guessing" when we try to emulate all aspects of their appearance and behaviour. Try as we may, we will never get *every* control exactly right and I firmly believe that anything that purports to be something else needs to be *identical*. >>>>>> >>>>>> It is not actually achievable because just as you feel you have reached an acceptable level of "compliance" (which I again wager is never 100%), the goal posts will move. That is, the OS vendor will release an update and even the minor ones can change either the appearance or behaviour of controls, sometimes in subtle ways, sometimes in not so subtle ways. Either way, there is then going to be a period of time where you are playing a futile game of catch-up and during that time your "native" controls will be surely exposed for the impostors they are. >>>>>> >>>>>> It is not actually achievable because the same control on one OS can look and feel/behave quite differently on another OS which leads to very poor levels of reuse. >>>>>> >>>>>> It is not actually achievable because many controls simply can't be emulated in using Java/JavaFX most likely because they have exclusive access to native system or OS calls that are not accessible to Java or because the expected levels of performance or "snappiness" cannot be achieved using Java by any means. Even with JNA or JNI you would be left scratching your head in many cases. >>>>>> >>>>>> And, it is not actually achievable because it's simply too much work to get anywhere near to perfection! We are talking *massive* amounts of effort and very few people have either the talent, the eye, the attention to detail or the patience to see such a project right through to the end where *all* controls are covered. The rock stars I mentioned earlier are the exceptions of course. There's clearly zero point in emulating *some* of the controls only; you need the *full set* or it's just not viable. >>>>>> >>>>>> Finally, and to look at it another way, what do we get even if some super-human delivers us a native Look and Feel for every possible platform? Well, a massive maintenance nightmare for a start! This super-human would basically be spending all their super time and using up all their super powers just keeping such libraries current. >>>>>> >>>>>> So, if you are still with me, why bother? Just consider if all those rock stars (and super heroes) concentrated all their super efforts into either improving the features, stability, performance or appearance of JavaFX itself? Just think what we could achieve! >>>>>> >>>>>> And on the why bother theme, why bother to devote all that time and effort, spend all those millions, tear out all that hair and hit all those roadblocks when the very thing we are trying to achieve is already available? >>>>>> >>>>>> Yes, that's right, if you really, really, really want to build a native app then why don't you just build a native app? There are numerous tools, languages, IDEs, toolchains and libraries that enable you to build awesome *true* native apps! I just don't think JavaFX is one of them :-) >>>>>> >>>>>> And it doesn't have to be one of those toolkits because JavaFX can be used to build an entirely different class of application and I now strongly believe that this is the kind of app we should be concentrating on. That class (or classes) of app is one that is not so heavily dependent on the native Look and Feel and doesn't need to be. There are probably hundreds of thousands of apps that are like this. They are everywhere and JavaFX is *perfect* for them! >>>>>> >>>>>> Scott Palmer has argued that this approach is not valid (and sorry Scott if am inaccurately paraphrasing you). He cites examples such as Chrome, Firefox and even MS Office as proof that this approach does not work. However, my response to that would be to say that just because these are examples of where the developers got it seriously wrong, they do not prove that this approach can't work and isn't working all over the marketplace. >>>>>> >>>>>> There is no need to develop crappy, mistake ridden software by using a toolkit such as JavaFX in a way that does not attempt to emulate the native Look and Feel and the fact that even big companies like Google *still* clearly get it horribly wrong doesn't imply that we *all* have to be so ineffective. >>>>>> >>>>>> Part of my newly-found aversion to emulated native Look and Feel comes from my many years of both developing and using Swing applications. Sure, I know there are *some* (handful?) successful Swing apps, most notably those developed with the NetBeans RCP, but in general Swing has failed to have any penetration into serious commercial software. Why? Well, there are several reasons (and a lot are due to Java itself) but, for me, I was never satisfied with the so-called native Look and Feel options that come with Swing. I have been (and still am) very critical of the Windows Look and Feel in Swing in particular because, even today, there is a vast gulf between an actual native Windows application and a Swing application with this Look and Feel. So much so that I still want to almost knock my monitor off the desk when I am using an application developed in this way. For me, this is not acceptable and such an application could never be released as a serious commercial product. >>>>>> >>>>>> And that's pretty much what this all boils down to: developing serious commercial software. >>>>>> >>>>>> If you are interested in developing something else then these lengthy comments (am I *still* going?) probably do not apply to you :-) >>>>>> >>>>>> So to summarise, I argue that it is not possible to develop serious commercial software using emulated Look and Feel in JavaFX or in *any* UI toolkit. I *strongly* recommend that we all work together to make JavaFX as good as it can be (which is absolutely awesome) by focusing on the core product, the API, the performance, the feature set, the stability *and* the supported platforms rather than throw good money after bad on a *wonderful* goal that ultimately can never be reached... >>>>>> >>>>>> Just my 2 bits, >>>>>> >>>>>> Felix >>>>>> >>>>>> P.S. I surely hope I have not offended any/all those who either disagree with the main points or who still believe that native Look and Feel is viable. I remind you all that I am on my knees bowing with respect to the rock stars I referred to and anyone else working on similar projects. Absolutely no offence is intended, I am merely expressing my (passionate) feelings on this subject. >>>>>> >>>>>> >>>>>>> On 9 December 2013 19:10, Felix Bembrick wrote: >>>>>>> >>>>>>> >>>>>>> >>>>>>>> On 9 December 2013 16:10, Scott Palmer wrote: >>>>>>>> >>>>>>>> >>>>>>>>> On Dec 8, 2013, at 9:18 PM, Felix Bembrick wrote: >>>>>>>> >>>>>>>>> Firstly, it will *never* be possible to completely emulate the native look >>>>>>>>> and feel. >>>>>>>> Sure it is. Though it may never be practical, for many of the reasons you have given. >>>>>>>> >>>>>>>>> My reasoning is: why bother? >>>>>>>> Because it matters. As computer literate developers, we often don't realize what trips other people up. I get so frustrated with apps these days because they have become hard to use simply because the developers tried to define their own look and feel. For example, Chrome and Firefox... Or Microsoft Office... >>>>>>>> Where did the title bar go in chrome? >>>>>>>> Where have all the menus gone in Chrome, Firefox andOffice? I can find them, but when I have to play tech support over the phone to my parents these changes are massive problems. I ask my dad to move he window by dragging the title bar (please don't ask why he doesn't know to do this himself after decades of computer use) and he says "there is no title bar"... I the remember that yes, chrome did that... They got rid of a standard concept in the OS' windowing system and screed the end users. >>>>>>>> >>>>>>>> These apps became harder to use because of this "innovation" in the UI. >>>>>>>> >>>>>>>> Contrast this with applications on OS X where getting the UI right has always been an important priority for developers. Because adhering to the system look and feel has always been strongly encouraged the system is much easier to use. >>>>>>>> >>>>>>>>> These days, many apps do not look 100% native and may have their own >>>>>>>>> controls or look and feel in general. >>>>>>>> Yes, but to what end? They are now more difficult to use. >>>>>>>> >>>>>>>>> Why not channel all that massive >>>>>>>>> effort in constructing an emulated native look and feel into simply making >>>>>>>>> JavaFX better overall? >>>>>>>> But I agree here. The general look isn't the main issue.. E.g. little variations in color and minor tweaks to a few pixels here and there don't really matter. What does matter is when you change the order of buttons, like Okay & Cancel which have standard places that are different between Mac and Windows, or you move the About menu item from the Application menu on an OS X app to the help menu! because that is where you find it on Windows. Those things matter. >>>>>>>> >>>>>>>> >>>>>>>> Scott >>>>>>>> >>>>>>>>> Felix >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On 9 December 2013 12:35, Pedro Duque Vieira wrote: >>>>>>>>> >>>>>>>>>> Thanks! >>>>>>>>>> >>>>>>>>>> @Jasper: Yes, that's very interesting! Forgot that was possible to do in >>>>>>>>>> CSS. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall wrote: >>>>>>>>>>> >>>>>>>>>>> It may be possible to change the LOOK with CSS, but not the FEEL, which >>>>>>>>>> is >>>>>>>>>>> where Java apps have traditionally failed big time. >>>>>>>>>>> >>>>>>>>>>> Some things that I don?t think can be changed with CSS: >>>>>>>>>>> >>>>>>>>>>> 1) texts >>>>>>>>>>> 2) order of buttons >>>>>>>>>>> 3) escape characters for shortcuts >>>>>>>>>>> 4) menus >>>>>>>>>>> 5) system-level stuff (double-clicking on files, dropping files on >>>>>>>>>>> applications, ?) >>>>>>>>>>> 6) filesystem conventions >>>>>>>>>>> 7) ... >>>>>>>>>>> >>>>>>>>>>> I think FXML can fix some of these, but not all. So it seems to me that a >>>>>>>>>>> LaF in JFX will consist of at least: >>>>>>>>>>> >>>>>>>>>>> - one or more CSS files >>>>>>>>>>> - one or more FXML files >>>>>>>>>>> - some plumbing at the system level >>>>>>>>>>> >>>>>>>>>>> It would be nice to have a set of proper LaFs for each major platform >>>>>>>>>> with >>>>>>>>>>> an appropriate common API. >>>>>>>>>>> >>>>>>>>>>> Steve >>>>>>>>>>> >>>>>>>>>>>> On 9 Dec 2013, at 00:20, Jasper Potts wrote: >>>>>>>>>>>> >>>>>>>>>>>> You can set skin classes from CSS so should be able to do everything >>>>>>>>>> you >>>>>>>>>>> could with Swing and more. With just a CSS file and skins as and when >>>>>>>>>>> needed. >>>>>>>>>>>> Jasper >>>>>>>>>>>> >>>>>>>>>>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles >>>>>>>>>> wrote: >>>>>>>>>>>>> At present there are no plans to introduce any further API or >>>>>>>>>>>>> functionality in this area, but if there is something you are wanting >>>>>>>>>>>>> then you should file feature requests in Jira. >>>>>>>>>>>>> >>>>>>>>>>>>> -- Jonathan >>>>>>>>>>>>> >>>>>>>>>>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>> >>>>>>>>>>>>>> Is there any Look and Feel mechanism in place, like the one in Swing? >>>>>>>>>>> That >>>>>>>>>>>>>> doesn't appear to exist.. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Are there any plans to add one? You can only do so much with CSS... >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks in advance, best regards, >>>>>>>>>> -- >>>>>>>>>> Pedro Duque Vieira >> From hang.vo at oracle.com Mon Dec 9 18:16:55 2013 From: hang.vo at oracle.com (Mong Hang Vo) Date: Mon, 09 Dec 2013 18:16:55 -0800 Subject: 8 review request: RT-32512: Fix URL for JavaFX API docs license terms link In-Reply-To: <52A6753A.80706@oracle.com> References: <52A6753A.80706@oracle.com> Message-ID: <52A67997.8010903@oracle.com> Kevin, Looks great. Approved. Thanks, Mong On 12/9/2013 5:58 PM, Kevin Rushforth wrote: > Mong, > > Please review the following (in the JIRA). > > https://javafx-jira.kenai.com/browse/RT-32512 > > Thanks. > > -- Kevin > From hang.vo at oracle.com Mon Dec 9 18:33:21 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 02:33:21 +0000 Subject: hg: openjfx/8/graphics/rt: RT-32512: Fix URL for JavaFX API docs license terms link Message-ID: <20131210023337.4BB2662BA8@hg.openjdk.java.net> Changeset: c818e4054cc7 Author: kcr Date: 2013-12-09 18:29 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/c818e4054cc7 RT-32512: Fix URL for JavaFX API docs license terms link Reviewed-by: mtvo ! apps/samples/Ensemble8/build.xml ! build.properties ! modules/fxml/src/main/docs/javafx/fxml/doc-files/introduction_to_fxml.html ! modules/graphics/src/main/docs/javafx/scene/doc-files/cssref.html From kevin.rushforth at oracle.com Mon Dec 9 18:51:54 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 09 Dec 2013 18:51:54 -0800 Subject: 8 review request: RT-21569: Document that applications should avoid flooding FX with Platform.runLater calls Message-ID: <52A681CA.8040608@oracle.com> Please review the following: https://javafx-jira.kenai.com/browse/RT-21569 -- Kevin From hang.vo at oracle.com Mon Dec 9 19:03:22 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 03:03:22 +0000 Subject: hg: openjfx/8/graphics/rt: 2 new changesets Message-ID: <20131210030352.CF90262BAA@hg.openjdk.java.net> Changeset: a09aab639ad0 Author: kcr Date: 2013-12-09 18:52 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/a09aab639ad0 RT-34522: Update javafxpackager man pages for JDK/FX 8 Contributed-by: Nancy Hildebrandt - modules/fxpackager/src/main/man/html/javafxpackager.1.html ! modules/fxpackager/src/main/man/man1/javafxpackager.1 Changeset: f1d3a11f6cc4 Author: John Yoon Date: 2013-12-09 19:00 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/f1d3a11f6cc4 [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview at 2x.png From hang.vo at oracle.com Mon Dec 9 18:18:03 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 02:18:03 +0000 Subject: hg: openjfx/8/graphics/rt: 2 new changesets Message-ID: <20131210021837.4F39962BA4@hg.openjdk.java.net> Changeset: d7a20d89aaf4 Author: Alexander Kouznetsov Date: 2013-12-09 18:04 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/d7a20d89aaf4 Ensemble8: Fix for RT-34735 Ensemble8 startup time depends on networking and could be too long ! apps/samples/Ensemble8/src/app/java/ensemble/EnsembleApp.java Changeset: 7a5bed4ab9d8 Author: Alexander Kouznetsov Date: 2013-12-09 18:11 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/7a5bed4ab9d8 Ensemble8: Removed builders from EnsembleApp.java. Code cleanup. ! apps/samples/Ensemble8/src/app/java/ensemble/EnsembleApp.java From hang.vo at oracle.com Mon Dec 9 20:03:30 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 04:03:30 +0000 Subject: hg: openjfx/8/graphics/rt: [Samples Only][RT-33754] Ensemble Icons Message-ID: <20131210040354.EE42662BAB@hg.openjdk.java.net> Changeset: 58f12825ecac Author: John Yoon Date: 2013-12-09 19:57 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/58f12825ecac [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/accordion/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/accordion/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/colorbutton/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/colorbutton/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/graphicbutton/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/graphicbutton/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/pillbutton/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/pillbutton/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/checkbox/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/checkbox/preview at 2x.png From hang.vo at oracle.com Mon Dec 9 20:33:37 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 04:33:37 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Fix for RT-34006 Simplify Ensemble8 categories Message-ID: <20131210043355.4204F62BAC@hg.openjdk.java.net> Changeset: 8f0a6f77ec8f Author: Alexander Kouznetsov Date: 2013-12-09 20:19 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/8f0a6f77ec8f Ensemble8: Fix for RT-34006 Simplify Ensemble8 categories ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdt + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdx + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fnm + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.frq + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.nrm + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.prx + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tii + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tis - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fdt - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fdx - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fnm - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.frq - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.nrm - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.prx - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.tii - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.tis ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/listAll.txt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments.gen + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_1 - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_3 + apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/TimelineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timeline/TimelineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timelineevents/TimelineEventsApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timelineevents/TimelineEventsApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/FireworksApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/Particle.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/SanFranciscoFireworks.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bubble/BubbleChartApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bubble/chart/BubbleChartApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/Candle.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/CandleStickChart.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/CandleStickChartApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/CandleStickExtraValues.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/TooltipContent.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/Candle.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChart.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickExtraValues.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/TooltipContent.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/DailySales.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/GetDailySalesService.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/GetDailySalesTask.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/DailySales.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/GetDailySalesTask.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/TaskApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/accordion/AccordionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/checkbox/CheckBoxApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/htmleditor/HTMLEditorApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/splitpane/HiddenSplitPaneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/splitpane/hiddensplitpane/HiddenSplitPaneApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/TabPaneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/tabpane/TabPaneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/Person.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tableview/Person.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tableview/TableViewApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tablecellfactory/Person.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tablecellfactory/TableCellFactoryApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tableview/Person.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tableview/TableViewApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/bidi/BidiApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textflow/TextFlowApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/togglebutton/ToggleButtonApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/webview/WebViewApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/Authenticator.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/FXMLLoginDemoApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/LoginController.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/ProfileController.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/User.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Ball.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsPane.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsScreen.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Constants.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Ball.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Bat.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Bonus.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Brick.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/BrickBreakerApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Config.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Level.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/LevelData.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Splash.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Utils.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Calculator.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/CalculatorApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Key.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Util.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/colorfulcircles/ColorfulCirclesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Clock.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Digit.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/DigitalClockApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelf.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelfApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/PerspectiveImage.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/dropshadow/DropShadowApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/gaussianblur/GaussianBlurApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/innershadow/InnerShadowApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/reflection/ReflectionApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/sepiatone/SepiaToneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/gauge/SpeedGaugeApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imagecreation/ImageCreationApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageoperator/ImageOperationApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageproperties/ImagePropertiesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/color/ColorApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/radialgradient/RadialGradientApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Desk.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Piece.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/PuzzlePiecesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/arc/ArcApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/circle/CircleApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/cubiccurve/CubicCurveApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/ellipse/EllipseApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/line/LineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/path/PathApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polygon/PolygonApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polyline/PolylineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/quadcurve/QuadCurveApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/rectangle/RectangleApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Dial.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/DigitalClock.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchButton.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Watch.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/Ball.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/BallsPane.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/BallsScreen.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/BouncingBallsApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/Constants.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Ball.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Bat.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Bonus.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Brick.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/BrickBreakerApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Config.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Level.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/LevelData.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Splash.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Utils.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/Calculator.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/CalculatorApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/Key.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/Util.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/canvas/FireworksApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/canvas/Particle.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/canvas/SanFranciscoFireworks.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/colorfulcircles/ColorfulCirclesApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/digitalclock/Clock.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/digitalclock/Digit.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/digitalclock/DigitalClockApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/displayshelf/DisplayShelf.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/displayshelf/DisplayShelfApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/displayshelf/PerspectiveImage.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/dropshadow/DropShadowApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/gaussianblur/GaussianBlurApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/innershadow/InnerShadowApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/reflection/ReflectionApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/sepiatone/SepiaToneApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/gauge/SpeedGaugeApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/images/imagecreation/ImageCreationApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/images/imageoperator/ImageOperationApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/images/imageproperties/ImagePropertiesApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/paints/color/ColorApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/paints/lineargradient/LinearGradientApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/paints/radialgradient/RadialGradientApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/puzzle/Desk.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/puzzle/Piece.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/puzzle/PuzzlePiecesApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/arc/ArcApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/circle/CircleApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/cubiccurve/CubicCurveApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/ellipse/EllipseApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/line/LineApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/path/PathApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/polygon/PolygonApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/polyline/PolylineApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/quadcurve/QuadCurveApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/rectangle/RectangleApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/Dial.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/DigitalClock.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/StopWatchApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/StopWatchButton.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/Watch.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/stringbinding/StringBindingApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/changelistener/ChangeListenerApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/service/DailySales.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/service/GetDailySalesService.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/service/GetDailySalesTask.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/service/ServiceApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/task/DailySales.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/task/GetDailySalesTask.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/task/TaskApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/Authenticator.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/FXMLLoginDemoApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/LoginController.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/ProfileController.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/User.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/observablelist/ObservableListApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/stringbinding/StringBindingApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/ProcessListener.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SampleTableModel.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SwingInterop.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SwingInteropApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SwingInteropService.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SwingInteropTask.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/borderpane/BorderPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/flowpane/FlowPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/tilepane/TilePaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/audioclip/AudioClipApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/advancedstage/AdvancedStageApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/customnode/CustomNodeApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/customnode/MyNode.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/CustomNodeApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/MyNode.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/nodeproperties/NodePropertiesApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/nodeproperties/NodePropertiesApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/StageApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/advancedstage/AdvancedStageApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/stage/StageApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/ProcessListener.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SampleTableModel.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInterop.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropService.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropTask.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/text/bidi/BidiApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/text/textflow/TextFlowApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/webview/WebViewApp.java + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timelineevents/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timelineevents/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/candlestick/CandleStickChart.css + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/candlestick/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/candlestick/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/CandleStickChart.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/htmleditor/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/htmleditor/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/HiddenSplitPane.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/HiddenSplitPane.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tab_16.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/tab_16.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tablecellfactory/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tablecellfactory/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tableview/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tableview/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tablecellfactory/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tablecellfactory/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tableview/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tableview/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/bidi/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/bidi/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textflow/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textflow/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/webview/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/webview/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Login.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Login.fxml - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Profile.fxml - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/bouncingballs/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/bouncingballs/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/brickbreaker/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/brickbreaker/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/calc/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/calc/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/colorfulcircles/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/colorfulcircles/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/digitalclock/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/digitalclock/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/DisplayShelf.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/dropshadow/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/dropshadow/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/gaussianblur/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/gaussianblur/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/innershadow/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/innershadow/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/reflection/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/reflection/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/sepiatone/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/sepiatone/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/gauge/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/gauge/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imagecreation/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imagecreation/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageoperator/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageoperator/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageproperties/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageproperties/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/color/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/color/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/lineargradient/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/lineargradient/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/radialgradient/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/radialgradient/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/puzzle/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/puzzle/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/arc/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/arc/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/circle/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/circle/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/cubiccurve/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/cubiccurve/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/ellipse/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/ellipse/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/line/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/line/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/path/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/path/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polygon/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polygon/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polyline/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polyline/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/quadcurve/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/quadcurve/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/rectangle/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/rectangle/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/stopwatch/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/stopwatch/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/bouncingballs/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/bouncingballs/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/brickbreaker/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/brickbreaker/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/calc/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/calc/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/canvas/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/canvas/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/colorfulcircles/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/colorfulcircles/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/digitalclock/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/digitalclock/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/displayshelf/DisplayShelf.css + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/displayshelf/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/displayshelf/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/dropshadow/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/dropshadow/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/gaussianblur/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/gaussianblur/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/innershadow/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/innershadow/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/reflection/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/reflection/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/sepiatone/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/sepiatone/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/gauge/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/gauge/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/images/imagecreation/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/images/imagecreation/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/images/imageoperator/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/images/imageoperator/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/images/imageproperties/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/images/imageproperties/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/paints/color/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/paints/color/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/paints/lineargradient/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/paints/lineargradient/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/paints/radialgradient/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/paints/radialgradient/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/puzzle/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/puzzle/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/arc/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/arc/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/circle/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/circle/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/cubiccurve/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/cubiccurve/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/ellipse/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/ellipse/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/line/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/line/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/path/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/path/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/polygon/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/polygon/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/polyline/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/polyline/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/quadcurve/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/quadcurve/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/rectangle/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/rectangle/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/stopwatch/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/stopwatch/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/changelistener/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/changelistener/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/stringbinding/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/stringbinding/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/changelistener/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/changelistener/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/collections/observablelist/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/collections/observablelist/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/concurrency/service/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/concurrency/service/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/concurrency/task/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/concurrency/task/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/fxml/Login.css + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/fxml/Login.fxml + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/fxml/Profile.fxml + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/fxml/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/fxml/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/observablelist/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/observablelist/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/stringbinding/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/stringbinding/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/swing/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/swing/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/advancedstage/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/advancedstage/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/customnode/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/customnode/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/customnode/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/customnode/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/nodeproperties/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/nodeproperties/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/nodeproperties/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/nodeproperties/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/advancedstage/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/advancedstage/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/stage/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/stage/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/swing/swinginterop/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/swing/swinginterop/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/bidi/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/bidi/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/textflow/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/textflow/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/htmleditor/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/htmleditor/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/webview/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/webview/preview at 2x.png From hang.vo at oracle.com Mon Dec 9 20:48:01 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 04:48:01 +0000 Subject: hg: openjfx/8/graphics/rt: 2 new changesets Message-ID: <20131210044833.2D90E62BAD@hg.openjdk.java.net> Changeset: 0d24fac99293 Author: Alexander Kouznetsov Date: 2013-12-09 20:36 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/0d24fac99293 Ensemble8: Part #2 of fix for RT-34006 Simplify Ensemble8 categories ! apps/samples/Ensemble8/src/app/java/ensemble/SamplePopoverTreeList.java Changeset: 674968d9c3b6 Author: Alexander Kouznetsov Date: 2013-12-09 20:44 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/674968d9c3b6 Ensemble8: Fix for RT-34716 Ensemble8: xAxis label playground warning ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChartApp.java From hang.vo at oracle.com Mon Dec 9 21:33:00 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 05:33:00 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Fix for RT-33532 Ensemble8: alternative column and row fill visible options doesn't work Message-ID: <20131210053316.8EAD562BB2@hg.openjdk.java.net> Changeset: 9bbe05e11f94 Author: Alexander Kouznetsov Date: 2013-12-09 21:17 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/9bbe05e11f94 Ensemble8: Fix for RT-33532 Ensemble8: alternative column and row fill visible options doesn't work ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/chart/AreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/stacked/StackedAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/chart/BarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/horizontal/HorizontalBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/image/ImageBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/stacked/StackedBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bubble/BubbleChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/CandleStickChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/category/CategoryLineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/chart/LineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/chart/ScatterChartApp.java From hang.vo at oracle.com Mon Dec 9 21:17:59 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 05:17:59 +0000 Subject: hg: openjfx/8/graphics/rt: 2 new changesets Message-ID: <20131210051831.6325962BAE@hg.openjdk.java.net> Changeset: 5fc3e61b4f21 Author: Alexander Kouznetsov Date: 2013-12-09 21:04 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/5fc3e61b4f21 Ensemble8: Fix for RT-34714 Ensemble8: WebView sample limits its size ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/webview/WebViewApp.java Changeset: 50ed24bf65b7 Author: Alexander Kouznetsov Date: 2013-12-09 21:13 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/50ed24bf65b7 Ensemble8: Fix for RT-34786 Ensemble8: Multi-touch sample has bad size ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchApp.java From hang.vo at oracle.com Mon Dec 9 23:48:13 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 07:48:13 +0000 Subject: hg: openjfx/8/graphics/rt: Sync up SceneBuilder changes Message-ID: <20131210074831.D274B62BB4@hg.openjdk.java.net> Changeset: 6dfa55f03e62 Author: Yves Joan Date: 2013-12-10 08:36 +0100 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/6dfa55f03e62 Sync up SceneBuilder changes + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/CssPanelDelegate.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindowController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderApp.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderTest.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/AboutWindowController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanel.css ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanel.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanelController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBar.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBarController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBarController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanelController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Preferences.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordDocument.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordGlobal.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesWindowController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/BackgroundColor.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/BackgroundColorDialogController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBarController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorPlatform.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/DragController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/AbstractDragSource.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/DocumentDragSource.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/ExternalDragSource.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/LibraryDragSource.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/ContainerXYDropTarget.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/GridPaneDropTarget.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/SceneBuilderKit.properties ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DeleteObjectSelectionJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DuplicateSelectionJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/PasteJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/GridSnapshot.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/GridSnapshotItem.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertColumnConstraintsJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertColumnJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/MoveCellContentJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/MoveColumnContentJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/CompositeJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/AbstractDecoration.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanel.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/HudWindow.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/GridPaneDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneMosaic.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractCurveHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractNodeHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TabHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TableColumnHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TreeTableColumnHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/NodePring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/TabPring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/TableColumnPring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/TreeTableColumnPring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/ImageViewResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/rudder/ResizeRudder.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/HBoxTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/NodeTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/TabTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/TableColumnTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/TreeTableColumnTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/VBoxTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/SelectAndMoveGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/MovingGuideRenderer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/ResizingGuideRenderer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/EditModeController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/BoundsUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/LineEquation.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/Picker.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/RegionRectangle.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssContentMaker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanel.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/AbstractHierarchyPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeCell.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/InspectorPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AnchorPaneConstraintsEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AutoSuggestEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BooleanEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BoundedDoubleEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ControllerClassEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/CursorEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EnumEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/GenericEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/I18nStringEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ImageEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ImageEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/InsetsEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/PropertyEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/RotateEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StringAutoSuggestEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleClassEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StylesheetEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PaintPopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportDialog.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportDialog.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanel.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractFxmlPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/search/Search.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/ObjectSelectionGroup.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/Selection.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMObject.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/glossary/ControllerClass.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/BuiltinLibrary.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/util/JarExplorer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/Metadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ColumnConstraintsPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/DoublePropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/EnumerationPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/RowConstraintsPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/PaintPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/CssInternal.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/GridBounds.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPicker.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPicker.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPicker.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPickerController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/colorpicker/ColorPicker.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/colorpicker/ColorPicker.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/colorpicker/ColorPicker.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPicker.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPicker.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPicker.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/images/chequers.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/images/stop-indicator.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/rotator/RotatorControl.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/rotator/RotatorControl.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/rotator/RotatorControl.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/rotator/rotate-handle.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/slider/SliderControl.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/slider/SliderControl.java From hang.vo at oracle.com Tue Dec 10 00:04:31 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 08:04:31 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Fix for build failure. Message-ID: <20131210080446.F23CD62BB5@hg.openjdk.java.net> Changeset: 02682ee93895 Author: Alexander Kouznetsov Date: 2013-12-09 23:52 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/02682ee93895 Ensemble8: Fix for build failure. ! apps/samples/Ensemble8/build.xml From hang.vo at oracle.com Tue Dec 10 03:03:41 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 11:03:41 +0000 Subject: hg: openjfx/8/graphics/rt: 2 new changesets Message-ID: <20131210110445.8EB9862BBA@hg.openjdk.java.net> Changeset: 3ef2879ea737 Author: Alexander Kouznetsov Date: 2013-12-10 02:59 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/3ef2879ea737 Ensemble8: Fix for RT-34641 Create 3D sample that demonstrates all the features of PhongMaterial + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/sphere/Simple3DSphereApp.java + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/earth-d.jpg + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/earth-l.jpg + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/earth-n.jpg + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/earth-s.jpg + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/preview at 2x.png Changeset: 53fbe438d684 Author: Alexander Kouznetsov Date: 2013-12-10 03:01 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/53fbe438d684 Ensemble8: Fix for RT-34787 Ensemble8: Rebuild SamplesAll java and search index for Ensemble8 ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdx ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.frq ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.nrm ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.prx ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tii ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tis ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/listAll.txt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_1 From lehmann at media-interactive.de Tue Dec 10 04:21:20 2013 From: lehmann at media-interactive.de (Werner Lehmann) Date: Tue, 10 Dec 2013 13:21:20 +0100 Subject: Reloading stylesheets Message-ID: <52A70740.4010906@media-interactive.de> Hi, is there a way to reload previously loaded stylesheets (in FX2)? Currently I have to restart the application each time I am changing the css. It would be nice to just close and reopen that window instead to see the new styles. I'd like to unload css automatically when closing a window - in debug mode - in order to avoid the application restart. Or, even better, define a hotkey to update css immediately. Much like shift+ctrl+8 for ScenicView (only works in FX2 as far as I know). Rgds Werner From tom.schindl at bestsolution.at Tue Dec 10 04:30:56 2013 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Tue, 10 Dec 2013 13:30:56 +0100 Subject: Reloading stylesheets In-Reply-To: <52A70740.4010906@media-interactive.de> References: <52A70740.4010906@media-interactive.de> Message-ID: <52A70980.7030009@bestsolution.at> There is internal API: com.sun.javafx.css.StyleManager.getInstance().reloadStylesheets(scene); which is GONE in FX8 (but there it is not needed anyways) if you want to support both platforms you need to use reflection to call it. In e(fx)clipse preview I do: > if( isJavaFX2() ) { > ReflectiveInvoke.onStyleManagerClass(scene); > } where the reflective vode looks like: > public static void onStyleManagerClass(Scene s) throws Exception { > /* > * com.sun.javafx.css.StyleManager.getInstance().reloadStylesheets(scene); > */ > Class cl = Class.forName("com.sun.javafx.css.StyleManager"); > Method m1 = cl.getMethod("getInstance"); > Object o1 = m1.invoke(null); > > Method m2 = cl.getMethod("reloadStylesheets", Scene.class); > m2.invoke(o1, s); > } Tom On 10.12.13 13:21, Werner Lehmann wrote: > Hi, > > is there a way to reload previously loaded stylesheets (in FX2)? > > Currently I have to restart the application each time I am changing the > css. It would be nice to just close and reopen that window instead to > see the new styles. I'd like to unload css automatically when closing a > window - in debug mode - in order to avoid the application restart. > > Or, even better, define a hotkey to update css immediately. Much like > shift+ctrl+8 for ScenicView (only works in FX2 as far as I know). > > Rgds > Werner From swpalmer at gmail.com Tue Dec 10 04:41:36 2013 From: swpalmer at gmail.com (Scott Palmer) Date: Tue, 10 Dec 2013 07:41:36 -0500 Subject: Reloading stylesheets In-Reply-To: <52A70740.4010906@media-interactive.de> References: <52A70740.4010906@media-interactive.de> Message-ID: Have you tried simply removing and re-adding the stylesheet to the scene? Scott On Tue, Dec 10, 2013 at 7:21 AM, Werner Lehmann < lehmann at media-interactive.de> wrote: > Hi, > > is there a way to reload previously loaded stylesheets (in FX2)? > > Currently I have to restart the application each time I am changing the > css. It would be nice to just close and reopen that window instead to see > the new styles. I'd like to unload css automatically when closing a window > - in debug mode - in order to avoid the application restart. > > Or, even better, define a hotkey to update css immediately. Much like > shift+ctrl+8 for ScenicView (only works in FX2 as far as I know). > > Rgds > Werner > From tom.schindl at bestsolution.at Tue Dec 10 04:46:20 2013 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Tue, 10 Dec 2013 13:46:20 +0100 Subject: Reloading stylesheets In-Reply-To: References: <52A70740.4010906@media-interactive.de> Message-ID: <52A70D1C.2070706@bestsolution.at> That doesn't work in 2.x because the CSS is cached on a scene base! A trick that could work is to load the CSS with an URL like this like: my.css?timestamp=123456789 but I have not tried that and don't know if this would work. Tom On 10.12.13 13:41, Scott Palmer wrote: > Have you tried simply removing and re-adding the stylesheet to the scene? > > Scott > > > On Tue, Dec 10, 2013 at 7:21 AM, Werner Lehmann < > lehmann at media-interactive.de> wrote: > >> Hi, >> >> is there a way to reload previously loaded stylesheets (in FX2)? >> >> Currently I have to restart the application each time I am changing the >> css. It would be nice to just close and reopen that window instead to see >> the new styles. I'd like to unload css automatically when closing a window >> - in debug mode - in order to avoid the application restart. >> >> Or, even better, define a hotkey to update css immediately. Much like >> shift+ctrl+8 for ScenicView (only works in FX2 as far as I know). >> >> Rgds >> Werner >> From swpalmer at gmail.com Tue Dec 10 04:52:27 2013 From: swpalmer at gmail.com (Scott Palmer) Date: Tue, 10 Dec 2013 07:52:27 -0500 Subject: Reloading stylesheets In-Reply-To: <52A70D1C.2070706@bestsolution.at> References: <52A70740.4010906@media-interactive.de> <52A70D1C.2070706@bestsolution.at> Message-ID: Hmm.. I'll have to take a look at what I was doing, because I had something that appeared to work with 2.x and I'm pretty sure I wasn't using internal APIs. Perhaps it was only working by chance. Scott On Tue, Dec 10, 2013 at 7:46 AM, Tom Schindl wrote: > That doesn't work in 2.x because the CSS is cached on a scene base! A > trick that could work is to load the CSS with an URL like this like: > > my.css?timestamp=123456789 > > but I have not tried that and don't know if this would work. > > Tom > > On 10.12.13 13:41, Scott Palmer wrote: > > Have you tried simply removing and re-adding the stylesheet to the scene? > > > > Scott > > > > > > On Tue, Dec 10, 2013 at 7:21 AM, Werner Lehmann < > > lehmann at media-interactive.de> wrote: > > > >> Hi, > >> > >> is there a way to reload previously loaded stylesheets (in FX2)? > >> > >> Currently I have to restart the application each time I am changing the > >> css. It would be nice to just close and reopen that window instead to > see > >> the new styles. I'd like to unload css automatically when closing a > window > >> - in debug mode - in order to avoid the application restart. > >> > >> Or, even better, define a hotkey to update css immediately. Much like > >> shift+ctrl+8 for ScenicView (only works in FX2 as far as I know). > >> > >> Rgds > >> Werner > >> > > From lehmann at media-interactive.de Tue Dec 10 05:02:43 2013 From: lehmann at media-interactive.de (Werner Lehmann) Date: Tue, 10 Dec 2013 14:02:43 +0100 Subject: Reloading stylesheets In-Reply-To: <52A70980.7030009@bestsolution.at> References: <52A70740.4010906@media-interactive.de> <52A70980.7030009@bestsolution.at> Message-ID: <52A710F3.6090604@media-interactive.de> Thanks, Tom. Somehow it does not work for me. Any idea? Basically this is what I am doing: Parent root = ... root.getStyleSheets().add(...stylesheets...) Scene scene = new Scene(root) StyleManager.getInstance().reloadStylesheets(scene) Then I show the scene in a JFXPanel, change and save the stylesheet in Eclipse, and reopen the window which repeats all of the above. But the css changes are not reflected until I restart the application. On 10.12.2013 13:30, Tom Schindl wrote: > com.sun.javafx.css.StyleManager.getInstance().reloadStylesheets(scene); From tom.schindl at bestsolution.at Tue Dec 10 05:10:37 2013 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Tue, 10 Dec 2013 14:10:37 +0100 Subject: Reloading stylesheets In-Reply-To: <52A710F3.6090604@media-interactive.de> References: <52A70740.4010906@media-interactive.de> <52A70980.7030009@bestsolution.at> <52A710F3.6090604@media-interactive.de> Message-ID: <52A712CD.30705@bestsolution.at> My code does: > // Force CSS-Reloading > if( isJavaFX2() ) { > ReflectiveInvoke.onStyleManagerClass(scene); > } > > scene.getStylesheets().clear(); > scene.getStylesheets().addAll(contentData.cssFiles); A difference I see is that your stylesheets are on the Root-Container whereas mine are directly on the Scene. Tom On 10.12.13 14:02, Werner Lehmann wrote: > Thanks, Tom. Somehow it does not work for me. Any idea? > > Basically this is what I am doing: > > Parent root = ... > root.getStyleSheets().add(...stylesheets...) > Scene scene = new Scene(root) > StyleManager.getInstance().reloadStylesheets(scene) > > Then I show the scene in a JFXPanel, change and save the stylesheet in > Eclipse, and reopen the window which repeats all of the above. But the > css changes are not reflected until I restart the application. > > On 10.12.2013 13:30, Tom Schindl wrote: >> com.sun.javafx.css.StyleManager.getInstance().reloadStylesheets(scene); From anthony.petrov at oracle.com Tue Dec 10 05:32:58 2013 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Tue, 10 Dec 2013 17:32:58 +0400 Subject: [8] Review request for RT-34784: [TextField, PasswordField, TextArea] Selected text is removed on focus leaving Message-ID: <52A7180A.3080905@oracle.com> Hi Petr, Alexander, Please review a fix for https://javafx-jira.kenai.com/browse/RT-34784 -- best regards, Anthony From lehmann at media-interactive.de Tue Dec 10 07:10:49 2013 From: lehmann at media-interactive.de (Werner Lehmann) Date: Tue, 10 Dec 2013 16:10:49 +0100 Subject: Reloading stylesheets In-Reply-To: <52A712CD.30705@bestsolution.at> References: <52A70740.4010906@media-interactive.de> <52A70980.7030009@bestsolution.at> <52A710F3.6090604@media-interactive.de> <52A712CD.30705@bestsolution.at> Message-ID: <52A72EF9.40804@media-interactive.de> Got it. The key was to move the stylesheets from the root node to the scene before reloading them: scene.styleSheets.clear scene.styleSheets.addAll(root.styleSheets) root.styleSheets.clear styleManager.reload(scene) The hotkey also works now: shift+ctrl+7 reloads CSS while the scene is visible. This works by using a custom scene, overriding impl_processKeyEvent. Even better would be automatic change-detection (in debug mode only) but I don't have time to do this now. Previously you said that reloading is not needed on FX8... does this work out of the box then? Werner On 10.12.2013 14:10, Tom Schindl wrote: > My code does: > >> // Force CSS-Reloading >> if( isJavaFX2() ) { >> ReflectiveInvoke.onStyleManagerClass(scene); >> } >> >> scene.getStylesheets().clear(); >> scene.getStylesheets().addAll(contentData.cssFiles); > > A difference I see is that your stylesheets are on the Root-Container > whereas mine are directly on the Scene. > > Tom From martin.sladecek at oracle.com Tue Dec 10 07:13:50 2013 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Tue, 10 Dec 2013 16:13:50 +0100 Subject: Review request: RT-34586,Gtk: MenuButton in MenuButton context on Linux doesn't work Message-ID: <52A72FAE.2090209@oracle.com> Anthony, Alexander, please review the following: JIRA: https://javafx-jira.kenai.com/browse/RT-34586 Webrev: http://cr.openjdk.java.net/~msladecek/rt-34586/webrev.00/ Thanks, -Martin From tom.schindl at bestsolution.at Tue Dec 10 07:15:07 2013 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Tue, 10 Dec 2013 16:15:07 +0100 Subject: Reloading stylesheets In-Reply-To: <52A72EF9.40804@media-interactive.de> References: <52A70740.4010906@media-interactive.de> <52A70980.7030009@bestsolution.at> <52A710F3.6090604@media-interactive.de> <52A712CD.30705@bestsolution.at> <52A72EF9.40804@media-interactive.de> Message-ID: <52A72FFB.6060002@bestsolution.at> No on FX8 you need to remove and readd them! So the only thing different is that you omit the reload-call on FX8. Tom On 10.12.13 16:10, Werner Lehmann wrote: > Got it. The key was to move the stylesheets from the root node to the > scene before reloading them: > > scene.styleSheets.clear > scene.styleSheets.addAll(root.styleSheets) > root.styleSheets.clear > styleManager.reload(scene) > > The hotkey also works now: shift+ctrl+7 reloads CSS while the scene is > visible. This works by using a custom scene, overriding > impl_processKeyEvent. Even better would be automatic change-detection > (in debug mode only) but I don't have time to do this now. Previously > you said that reloading is not needed on FX8... does this work out of > the box then? > > Werner > > On 10.12.2013 14:10, Tom Schindl wrote: >> My code does: >> >>> // Force CSS-Reloading >>> if( isJavaFX2() ) { >>> ReflectiveInvoke.onStyleManagerClass(scene); >>> } >>> >>> scene.getStylesheets().clear(); >>> scene.getStylesheets().addAll(contentData.cssFiles); >> >> A difference I see is that your stylesheets are on the Root-Container >> whereas mine are directly on the Scene. >> >> Tom From lehmann at media-interactive.de Tue Dec 10 07:30:02 2013 From: lehmann at media-interactive.de (Werner Lehmann) Date: Tue, 10 Dec 2013 16:30:02 +0100 Subject: Reloading stylesheets In-Reply-To: <52A72FFB.6060002@bestsolution.at> References: <52A70740.4010906@media-interactive.de> <52A70980.7030009@bestsolution.at> <52A710F3.6090604@media-interactive.de> <52A712CD.30705@bestsolution.at> <52A72EF9.40804@media-interactive.de> <52A72FFB.6060002@bestsolution.at> Message-ID: <52A7337A.7090005@media-interactive.de> Interesting. Assuming the stylesheets are still cached, how would it know when to reload and not use the cached sheet? Or has sheet processing been optimized so much that caching is not necessary anymore... On 10.12.2013 16:15, Tom Schindl wrote: > No on FX8 you need to remove and readd them! So the only thing different > is that you omit the reload-call on FX8. From hang.vo at oracle.com Tue Dec 10 08:03:39 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 16:03:39 +0000 Subject: hg: openjfx/8/graphics/rt: [Samples Only][RT-33754] Ensemble Icons Message-ID: <20131210160412.C932962BBC@hg.openjdk.java.net> Changeset: cbc187e97bb8 Author: John Yoon Date: 2013-12-10 07:56 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/cbc187e97bb8 [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/choicebox/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/choicebox/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/colorpicker/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/colorpicker/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/datepicker/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/datepicker/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/htmleditor/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/htmleditor/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/hyperlink/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/hyperlink/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/horizontallistview/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/horizontallistview/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/listviewcellfactory/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/listviewcellfactory/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/simplelistview/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/simplelistview/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/menu/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/menu/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/pagination/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/pagination/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressbar/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressbar/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressindicator/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressindicator/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/radiobutton/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/radiobutton/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/scrollbar/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/scrollbar/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tablecellfactory/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tablecellfactory/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tableview/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tableview/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/advancedlabel/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/advancedlabel/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/bidi/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/bidi/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/insettext/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/insettext/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/searchbox/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/searchbox/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/simplelabel/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/simplelabel/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textfield/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textfield/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textflow/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textflow/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textvalidator/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textvalidator/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/togglebutton/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/togglebutton/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/styledtoolbar/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/styledtoolbar/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/toolbar/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/toolbar/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treetableview/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treetableview/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treeview/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treeview/preview at 2x.png From david.grieve at oracle.com Tue Dec 10 08:09:38 2013 From: david.grieve at oracle.com (David Grieve) Date: Tue, 10 Dec 2013 11:09:38 -0500 Subject: Reloading stylesheets In-Reply-To: <52A7337A.7090005@media-interactive.de> References: <52A70740.4010906@media-interactive.de> <52A70980.7030009@bestsolution.at> <52A710F3.6090604@media-interactive.de> <52A712CD.30705@bestsolution.at> <52A72EF9.40804@media-interactive.de> <52A72FFB.6060002@bestsolution.at> <52A7337A.7090005@media-interactive.de> Message-ID: The way it works in 8.0 is that there is a cache of loaded stylesheets. When a scene or parent adds a stylesheet, the stylesheet is added to the cache. Any other scene or parent that uses the same stylesheet will get the one from cache. If a scene or parent later removes the stylesheet, the stylesheet is removed from the cache and the css style cache for any scene or parent that referenced that stylesheet is cleared (since the set of styles may have changed). Any scene or parent that referenced the now removed stylesheet is told to reapply its styles. Since the stylesheet is no longer in cache, it will be re-parsed (or reloaded if there is a binary version of the stylesheet) when it is called for by a scene or parent. The way it worked in 2.x was an abomination. On Dec 10, 2013, at 10:30 AM, Werner Lehmann wrote: > Interesting. Assuming the stylesheets are still cached, how would it know when to reload and not use the cached sheet? Or has sheet processing been optimized so much that caching is not necessary anymore... > > On 10.12.2013 16:15, Tom Schindl wrote: >> No on FX8 you need to remove and readd them! So the only thing different >> is that you omit the reload-call on FX8. From hang.vo at oracle.com Tue Dec 10 08:33:13 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 16:33:13 +0000 Subject: hg: openjfx/8/graphics/rt: [Samples Only][RT-33754] Ensemble Icons Message-ID: <20131210163331.2299262BBD@hg.openjdk.java.net> Changeset: 7624a41f79ce Author: John Yoon Date: 2013-12-10 08:21 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/7624a41f79ce [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cube/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cube/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cubesystem/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cubesystem/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/simple3dbox/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/simple3dbox/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/xylophone/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/xylophone/preview at 2x.png From lehmann at media-interactive.de Tue Dec 10 09:03:55 2013 From: lehmann at media-interactive.de (Werner Lehmann) Date: Tue, 10 Dec 2013 18:03:55 +0100 Subject: Reloading stylesheets In-Reply-To: References: <52A70740.4010906@media-interactive.de> <52A70980.7030009@bestsolution.at> <52A710F3.6090604@media-interactive.de> <52A712CD.30705@bestsolution.at> <52A72EF9.40804@media-interactive.de> <52A72FFB.6060002@bestsolution.at> <52A7337A.7090005@media-interactive.de> Message-ID: <52A7497B.5070900@media-interactive.de> Makes sense. Thanks! On 10.12.2013 17:09, David Grieve wrote: > The way it works in 8.0 is that there is a cache of loaded stylesheets. [...] From anthony.petrov at oracle.com Tue Dec 10 09:25:43 2013 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Tue, 10 Dec 2013 21:25:43 +0400 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: <52A6790D.2050007@oracle.com> References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> <52A5E0BA.1010800@oracle.com> <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> <52A6041C.9080208@oracle.com> <52A6790D.2050007@oracle.com> Message-ID: <52A74E97.6050707@oracle.com> We have implemented HW/LW components mixing for AWT/Swing in the past [1]. However, the feature is very limited (no transparency support, etc.), and the limitations come from native system capabilities that can't be worked around easily. Do we really want something limited like this in FX? [1] http://www.oracle.com/technetwork/articles/java/mixing-components-433992.html -- best regards, Anthony On 12/10/2013 06:14 AM, Stephen F Northover wrote: > At one point, I was very interested in seeing this happen but there > wasn't the band width and resources. > > Steve > > On 2013-12-09 1:00 PM, Felix Bembrick wrote: >> What can we expect from the JavaFX team in this regard in the future? >> I know we have talked about mixing lightweight and heavyweight >> controls in the same context but is it going to happen? Is this >> planned for JFX9 perhaps? Is it *really* even feasible? >> >>> On 10 Dec 2013, at 4:55, Stephen F Northover >>> wrote: >>> >>> Today, you can only exercise the choice by writing native code and >>> you face heavyweight / lightweight issues depending on the platform >>> and API. >>> >>> Steve >>> >>>> On 2013-12-09 12:31 PM, Felix Bembrick wrote: >>>> Stephen, I thoroughly agree that JavaFX is by far the best choice >>>> for non-native apps/widgets which is precisely my point. They are >>>> the kind of apps perfect for using JavaFX. >>>> >>>> But you refer to giving people the choice to go native where >>>> appropriate. How can I exercise that choice? Where is the support >>>> for native widgets in JavaFX? >>>> >>>> And isn't the real Holy Grail being able to mix native and >>>> non-native widgets in the same app with all features of Node being >>>> available to every widget, with all the effects and transforms, all >>>> the CSS/styling and with all the performance? >>>> >>>> Could JavaFX ever be such a toolkit? >>>> >>>>> On 10 Dec 2013, at 2:24, Stephen F Northover >>>>> wrote: >>>>> >>>>> Here are my thoughts on the matter. Give people the choice of >>>>> whether to use native or non-native components. In some >>>>> applications, everything will be non-native. In others, only the >>>>> main content area will be non-native and the rest will be native. >>>>> In some mobile applications, perhaps the preference pages will be >>>>> native and other parts will not. >>>>> >>>>> JavaFX is the best choice for non-native widgets and we are >>>>> committed to making it the best toolkit all around. >>>>> >>>>> Steve >>>>> >>>>>> On 2013-12-09 9:49 AM, Scott Palmer wrote: >>>>>> I agree that perfect sync with native look and feels is not what >>>>>> is required and not worth the effort. I do think though that >>>>>> major concepts in the platform's look and feel should (must!) be >>>>>> followed or the user experience is ruined. >>>>>> >>>>>> The example of the order of the ok and cancel buttons has been >>>>>> brought up already. But that isn't even the most important one. >>>>>> >>>>>> Things like shortcut keys. CTRL-C to copy on windows, Command-C to >>>>>> copy on Mac. Standard menu layouts, right-click behaviour and >>>>>> standard context menus. They just have to be in the right place. >>>>>> That they look different doesn't matter as much. And this doesn't >>>>>> mean that you can't try new ideas for UI. But basic things that >>>>>> users expect to work should still work. E.g. Command-Q on OS X >>>>>> better quit the app :-) >>>>>> >>>>>> As noted already with my reference to Office and browsers.. Fully >>>>>> native apps can be non-compliant with the platforms look and >>>>>> feel. So this isn't really a Java-specific issue. >>>>>> >>>>>> Scott >>>>>> >>>>>>> On Dec 9, 2013, at 4:24 AM, Felix Bembrick >>>>>>> wrote: >>>>>>> >>>>>>> Spoiler: This is something I have become intensely passionate >>>>>>> about so this is likely to be a long post... >>>>>>> >>>>>>> OK, so this (hijacked) thread started out as a discussion of >>>>>>> options in JavaFX for implementing "Look and Feel". I think >>>>>>> everyone agrees that even with CSS and skins, JavaFX lacks the >>>>>>> built-in ability to define a true Look *and* Feel. Further to >>>>>>> this, there has been discussion on Twitter and elsewhere >>>>>>> regarding *native* Look and Feel and the merits of attempting >>>>>>> such an animal with JavaFX. >>>>>>> >>>>>>> It is on this topic that I would like to add my 2 bits (as I am >>>>>>> known to do)! I was going to use my blog http://justmy2bits.com >>>>>>> but decided I would be much more likely to be able to engage >>>>>>> fellow JavaFX developers in a positive, polite and respectful >>>>>>> conversation here. >>>>>>> >>>>>>> First, anyone who may follow me on Twitter, in this forum or when >>>>>>> I post in other forums (anyone?) will probably be a little bit >>>>>>> confused as to where I actually stand on this issue. Well, this >>>>>>> stems from the fact that I have been giving confusing (if not >>>>>>> conflicting) input into various threads on this topic for quite a >>>>>>> while. >>>>>>> >>>>>>> Why? >>>>>>> >>>>>>> Well, because until very recently, I myself was completely torn >>>>>>> on the subject of native Look and Feel. In fact, I seemed to >>>>>>> oscillate on an almost daily basis from thinking it's a great, >>>>>>> achievable idea to dismissing such an idea on various grounds. I >>>>>>> am swaying so much because I have so much riding on successful >>>>>>> ports of JavaFX to iOS and Android and because those ports depend >>>>>>> heavily on resolving this issue once and for all. >>>>>>> >>>>>>> Now I have had something of an epiphany and reached a >>>>>>> conclusion. I now do not believe that pouring large (massive?) >>>>>>> amounts of resources into the painstaking task of building a >>>>>>> fully compliant, fully performant native Look and Feel is >>>>>>> justifiable or worth the effort. And let's be clear about this: >>>>>>> it is a *lot* of effort! >>>>>>> >>>>>>> But before I proceed I just want to say categorically how much I >>>>>>> admire the thoroughly awesome work/efforts of the likes of Pedro >>>>>>> DV, Claudine Zillmann, Hendrik Ebbers et. al. in (trying ever so >>>>>>> hard) to bring native Look and Feel to various OS/platforms with >>>>>>> JavaFX. I cannot put in words how much I am in awe of the >>>>>>> commitment, the attention to detail, the technical prowess, the >>>>>>> artistry and the drive of these fantastic people. Their work >>>>>>> will undoubtedly be extremely useful to many developers worldwide. >>>>>>> >>>>>>> I want to make all that *perfectly clear* because now I am going >>>>>>> to explain why I (probably) will not be one of those people and >>>>>>> (hopefully) do it with the utmost respect for the aforementioned >>>>>>> rock stars :-) >>>>>>> >>>>>>> Right, so back to the issue of whether to or not to implement or >>>>>>> use a native Look and Feel. Some of the following comments have >>>>>>> already been made by me on other networks and in other forums so >>>>>>> apologies if it seems a bit repetitive to some. >>>>>>> >>>>>>> At first glance, the idea of a native Look and Feel seems almost >>>>>>> like the proverbial Holy Grail. I mean, if such a thing were >>>>>>> truly possible and viable, who wouldn't want one? You still have >>>>>>> your single codebase across all platforms and you just just >>>>>>> plug-in the particular native Look and Feel for your target >>>>>>> platform and voila! World domination will surely soon follow! >>>>>>> >>>>>>> Well, not quite. It's a great idea but I am going out on a limb >>>>>>> to claim that it has *never* worked. Ever! And by "work" I mean >>>>>>> so that your "not-so-native" app looks and feels (which includes >>>>>>> all aspects of behaviour, not just appearance) *exactly* like a >>>>>>> true native app and *no one* could tell you that it *wasn't* a >>>>>>> native app. >>>>>>> >>>>>>> Yes, I know there are masses now screaming at their monitors who >>>>>>> will undoubtedly cite the numerous success stories of Swing apps >>>>>>> or maybe even Qt or some other cross-platform UI toolkit and >>>>>>> maybe my standards/criteria are harsher than others but I stand >>>>>>> by my claim that this has *never ever* really, really, really >>>>>>> worked. >>>>>>> >>>>>>> OK, so why not? >>>>>>> >>>>>>> Here's my first point: I postulate that such a noble goal is not >>>>>>> actually achievable. It is not actually achievable for a number >>>>>>> of reasons. >>>>>>> >>>>>>> It is not actually achievable because, in most cases, we do not >>>>>>> have access to the code that implements the native controls on >>>>>>> each OS so, at best, we are "guessing" when we try to emulate all >>>>>>> aspects of their appearance and behaviour. Try as we may, we >>>>>>> will never get *every* control exactly right and I firmly believe >>>>>>> that anything that purports to be something else needs to be >>>>>>> *identical*. >>>>>>> >>>>>>> It is not actually achievable because just as you feel you have >>>>>>> reached an acceptable level of "compliance" (which I again wager >>>>>>> is never 100%), the goal posts will move. That is, the OS vendor >>>>>>> will release an update and even the minor ones can change either >>>>>>> the appearance or behaviour of controls, sometimes in subtle >>>>>>> ways, sometimes in not so subtle ways. Either way, there is then >>>>>>> going to be a period of time where you are playing a futile game >>>>>>> of catch-up and during that time your "native" controls will be >>>>>>> surely exposed for the impostors they are. >>>>>>> >>>>>>> It is not actually achievable because the same control on one OS >>>>>>> can look and feel/behave quite differently on another OS which >>>>>>> leads to very poor levels of reuse. >>>>>>> >>>>>>> It is not actually achievable because many controls simply can't >>>>>>> be emulated in using Java/JavaFX most likely because they have >>>>>>> exclusive access to native system or OS calls that are not >>>>>>> accessible to Java or because the expected levels of performance >>>>>>> or "snappiness" cannot be achieved using Java by any means. Even >>>>>>> with JNA or JNI you would be left scratching your head in many >>>>>>> cases. >>>>>>> >>>>>>> And, it is not actually achievable because it's simply too much >>>>>>> work to get anywhere near to perfection! We are talking >>>>>>> *massive* amounts of effort and very few people have either the >>>>>>> talent, the eye, the attention to detail or the patience to see >>>>>>> such a project right through to the end where *all* controls are >>>>>>> covered. The rock stars I mentioned earlier are the exceptions >>>>>>> of course. There's clearly zero point in emulating *some* of the >>>>>>> controls only; you need the *full set* or it's just not viable. >>>>>>> >>>>>>> Finally, and to look at it another way, what do we get even if >>>>>>> some super-human delivers us a native Look and Feel for every >>>>>>> possible platform? Well, a massive maintenance nightmare for a >>>>>>> start! This super-human would basically be spending all their >>>>>>> super time and using up all their super powers just keeping such >>>>>>> libraries current. >>>>>>> >>>>>>> So, if you are still with me, why bother? Just consider if all >>>>>>> those rock stars (and super heroes) concentrated all their super >>>>>>> efforts into either improving the features, stability, >>>>>>> performance or appearance of JavaFX itself? Just think what we >>>>>>> could achieve! >>>>>>> >>>>>>> And on the why bother theme, why bother to devote all that time >>>>>>> and effort, spend all those millions, tear out all that hair and >>>>>>> hit all those roadblocks when the very thing we are trying to >>>>>>> achieve is already available? >>>>>>> >>>>>>> Yes, that's right, if you really, really, really want to build a >>>>>>> native app then why don't you just build a native app? There are >>>>>>> numerous tools, languages, IDEs, toolchains and libraries that >>>>>>> enable you to build awesome *true* native apps! I just don't >>>>>>> think JavaFX is one of them :-) >>>>>>> >>>>>>> And it doesn't have to be one of those toolkits because JavaFX >>>>>>> can be used to build an entirely different class of application >>>>>>> and I now strongly believe that this is the kind of app we should >>>>>>> be concentrating on. That class (or classes) of app is one that >>>>>>> is not so heavily dependent on the native Look and Feel and >>>>>>> doesn't need to be. There are probably hundreds of thousands of >>>>>>> apps that are like this. They are everywhere and JavaFX is >>>>>>> *perfect* for them! >>>>>>> >>>>>>> Scott Palmer has argued that this approach is not valid (and >>>>>>> sorry Scott if am inaccurately paraphrasing you). He cites >>>>>>> examples such as Chrome, Firefox and even MS Office as proof that >>>>>>> this approach does not work. However, my response to that would >>>>>>> be to say that just because these are examples of where the >>>>>>> developers got it seriously wrong, they do not prove that this >>>>>>> approach can't work and isn't working all over the marketplace. >>>>>>> >>>>>>> There is no need to develop crappy, mistake ridden software by >>>>>>> using a toolkit such as JavaFX in a way that does not attempt to >>>>>>> emulate the native Look and Feel and the fact that even big >>>>>>> companies like Google *still* clearly get it horribly wrong >>>>>>> doesn't imply that we *all* have to be so ineffective. >>>>>>> >>>>>>> Part of my newly-found aversion to emulated native Look and Feel >>>>>>> comes from my many years of both developing and using Swing >>>>>>> applications. Sure, I know there are *some* (handful?) >>>>>>> successful Swing apps, most notably those developed with the >>>>>>> NetBeans RCP, but in general Swing has failed to have any >>>>>>> penetration into serious commercial software. Why? Well, there >>>>>>> are several reasons (and a lot are due to Java itself) but, for >>>>>>> me, I was never satisfied with the so-called native Look and Feel >>>>>>> options that come with Swing. I have been (and still am) very >>>>>>> critical of the Windows Look and Feel in Swing in particular >>>>>>> because, even today, there is a vast gulf between an actual >>>>>>> native Windows application and a Swing application with this Look >>>>>>> and Feel. So much so that I still want to almost knock my >>>>>>> monitor off the desk when I am using an application developed in >>>>>>> this way. For me, this is not acceptable and such an application >>>>>>> could never be released as a serious commercial product. >>>>>>> >>>>>>> And that's pretty much what this all boils down to: developing >>>>>>> serious commercial software. >>>>>>> >>>>>>> If you are interested in developing something else then these >>>>>>> lengthy comments (am I *still* going?) probably do not apply to >>>>>>> you :-) >>>>>>> >>>>>>> So to summarise, I argue that it is not possible to develop >>>>>>> serious commercial software using emulated Look and Feel in >>>>>>> JavaFX or in *any* UI toolkit. I *strongly* recommend that we >>>>>>> all work together to make JavaFX as good as it can be (which is >>>>>>> absolutely awesome) by focusing on the core product, the API, the >>>>>>> performance, the feature set, the stability *and* the supported >>>>>>> platforms rather than throw good money after bad on a *wonderful* >>>>>>> goal that ultimately can never be reached... >>>>>>> >>>>>>> Just my 2 bits, >>>>>>> >>>>>>> Felix >>>>>>> >>>>>>> P.S. I surely hope I have not offended any/all those who either >>>>>>> disagree with the main points or who still believe that native >>>>>>> Look and Feel is viable. I remind you all that I am on my knees >>>>>>> bowing with respect to the rock stars I referred to and anyone >>>>>>> else working on similar projects. Absolutely no offence is >>>>>>> intended, I am merely expressing my (passionate) feelings on this >>>>>>> subject. >>>>>>> >>>>>>> >>>>>>>> On 9 December 2013 19:10, Felix Bembrick >>>>>>>> wrote: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> On 9 December 2013 16:10, Scott Palmer wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>>> On Dec 8, 2013, at 9:18 PM, Felix Bembrick >>>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Firstly, it will *never* be possible to completely emulate the >>>>>>>>>> native look >>>>>>>>>> and feel. >>>>>>>>> Sure it is. Though it may never be practical, for many of the >>>>>>>>> reasons you have given. >>>>>>>>> >>>>>>>>>> My reasoning is: why bother? >>>>>>>>> Because it matters. As computer literate developers, we often >>>>>>>>> don't realize what trips other people up. I get so frustrated >>>>>>>>> with apps these days because they have become hard to use >>>>>>>>> simply because the developers tried to define their own look >>>>>>>>> and feel. For example, Chrome and Firefox... Or Microsoft >>>>>>>>> Office... >>>>>>>>> Where did the title bar go in chrome? >>>>>>>>> Where have all the menus gone in Chrome, Firefox andOffice? I >>>>>>>>> can find them, but when I have to play tech support over the >>>>>>>>> phone to my parents these changes are massive problems. I ask >>>>>>>>> my dad to move he window by dragging the title bar (please >>>>>>>>> don't ask why he doesn't know to do this himself after decades >>>>>>>>> of computer use) and he says "there is no title bar"... I the >>>>>>>>> remember that yes, chrome did that... They got rid of a >>>>>>>>> standard concept in the OS' windowing system and screed the end >>>>>>>>> users. >>>>>>>>> >>>>>>>>> These apps became harder to use because of this "innovation" in >>>>>>>>> the UI. >>>>>>>>> >>>>>>>>> Contrast this with applications on OS X where getting the UI >>>>>>>>> right has always been an important priority for developers. >>>>>>>>> Because adhering to the system look and feel has always been >>>>>>>>> strongly encouraged the system is much easier to use. >>>>>>>>> >>>>>>>>>> These days, many apps do not look 100% native and may have >>>>>>>>>> their own >>>>>>>>>> controls or look and feel in general. >>>>>>>>> Yes, but to what end? They are now more difficult to use. >>>>>>>>> >>>>>>>>>> Why not channel all that massive >>>>>>>>>> effort in constructing an emulated native look and feel into >>>>>>>>>> simply making >>>>>>>>>> JavaFX better overall? >>>>>>>>> But I agree here. The general look isn't the main issue.. E.g. >>>>>>>>> little variations in color and minor tweaks to a few pixels >>>>>>>>> here and there don't really matter. What does matter is when >>>>>>>>> you change the order of buttons, like Okay & Cancel which have >>>>>>>>> standard places that are different between Mac and Windows, or >>>>>>>>> you move the About menu item from the Application menu on an OS >>>>>>>>> X app to the help menu! because that is where you find it on >>>>>>>>> Windows. Those things matter. >>>>>>>>> >>>>>>>>> >>>>>>>>> Scott >>>>>>>>> >>>>>>>>>> Felix >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 9 December 2013 12:35, Pedro Duque Vieira >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Thanks! >>>>>>>>>>> >>>>>>>>>>> @Jasper: Yes, that's very interesting! Forgot that was >>>>>>>>>>> possible to do in >>>>>>>>>>> CSS. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>> It may be possible to change the LOOK with CSS, but not the >>>>>>>>>>>> FEEL, which >>>>>>>>>>> is >>>>>>>>>>>> where Java apps have traditionally failed big time. >>>>>>>>>>>> >>>>>>>>>>>> Some things that I don?t think can be changed with CSS: >>>>>>>>>>>> >>>>>>>>>>>> 1) texts >>>>>>>>>>>> 2) order of buttons >>>>>>>>>>>> 3) escape characters for shortcuts >>>>>>>>>>>> 4) menus >>>>>>>>>>>> 5) system-level stuff (double-clicking on files, dropping >>>>>>>>>>>> files on >>>>>>>>>>>> applications, ?) >>>>>>>>>>>> 6) filesystem conventions >>>>>>>>>>>> 7) ... >>>>>>>>>>>> >>>>>>>>>>>> I think FXML can fix some of these, but not all. So it seems >>>>>>>>>>>> to me that a >>>>>>>>>>>> LaF in JFX will consist of at least: >>>>>>>>>>>> >>>>>>>>>>>> - one or more CSS files >>>>>>>>>>>> - one or more FXML files >>>>>>>>>>>> - some plumbing at the system level >>>>>>>>>>>> >>>>>>>>>>>> It would be nice to have a set of proper LaFs for each major >>>>>>>>>>>> platform >>>>>>>>>>> with >>>>>>>>>>>> an appropriate common API. >>>>>>>>>>>> >>>>>>>>>>>> Steve >>>>>>>>>>>> >>>>>>>>>>>>> On 9 Dec 2013, at 00:20, Jasper Potts >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> You can set skin classes from CSS so should be able to do >>>>>>>>>>>>> everything >>>>>>>>>>> you >>>>>>>>>>>> could with Swing and more. With just a CSS file and skins as >>>>>>>>>>>> and when >>>>>>>>>>>> needed. >>>>>>>>>>>>> Jasper >>>>>>>>>>>>> >>>>>>>>>>>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles >>>>>>>>>>>>>> >>>>>>>>>>> wrote: >>>>>>>>>>>>>> At present there are no plans to introduce any further API or >>>>>>>>>>>>>> functionality in this area, but if there is something you >>>>>>>>>>>>>> are wanting >>>>>>>>>>>>>> then you should file feature requests in Jira. >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- Jonathan >>>>>>>>>>>>>> >>>>>>>>>>>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >>>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Is there any Look and Feel mechanism in place, like the >>>>>>>>>>>>>>> one in Swing? >>>>>>>>>>>> That >>>>>>>>>>>>>>> doesn't appear to exist.. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Are there any plans to add one? You can only do so much >>>>>>>>>>>>>>> with CSS... >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thanks in advance, best regards, >>>>>>>>>>> -- >>>>>>>>>>> Pedro Duque Vieira >>> > > From phidias51 at gmail.com Tue Dec 10 09:39:11 2013 From: phidias51 at gmail.com (Mark Fortner) Date: Tue, 10 Dec 2013 09:39:11 -0800 Subject: Fwd: Reloading stylesheets In-Reply-To: <52A7497B.5070900@media-interactive.de> References: <52A70740.4010906@media-interactive.de> <52A70980.7030009@bestsolution.at> <52A710F3.6090604@media-interactive.de> <52A712CD.30705@bestsolution.at> <52A72EF9.40804@media-interactive.de> <52A72FFB.6060002@bestsolution.at> <52A7337A.7090005@media-interactive.de> <52A7497B.5070900@media-interactive.de> Message-ID: It would be nice if there were some documentation for how to get around the memory leak in stylesheets in 7x (since most of us won't be upgrading to 8 until it's actually released). And in general if there were some performance guidelines for JavaFX that would be really helpful. There was some mention of when (and when not) to use *Platform.runLater*. Avoiding memory leaks in multi-threaded code, guidelines for threadpool tuning so that apps stay responsive, etc. The Best Practices document provides a start but more details would be useful. Cheers, Mark ---------- Forwarded message ---------- From: Werner Lehmann Date: Tue, Dec 10, 2013 at 9:03 AM Subject: Re: Reloading stylesheets To: Cc: "openjfx-dev at openjdk.java.net" Makes sense. Thanks! On 10.12.2013 17:09, David Grieve wrote: > The way it works in 8.0 is that there is a cache of loaded stylesheets. > [...] > From hang.vo at oracle.com Tue Dec 10 09:47:59 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 17:47:59 +0000 Subject: hg: openjfx/8/graphics/rt: [Samples Only][RT-33754] Ensemble Icons Message-ID: <20131210174819.0C36562BC1@hg.openjdk.java.net> Changeset: 3852407693a0 Author: John Yoon Date: 2013-12-10 09:44 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/3852407693a0 [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/changelistener/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/changelistener/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/observablelist/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/observablelist/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/stringbinding/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/stringbinding/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/swing/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/swing/preview at 2x.png From steve.x.northover at oracle.com Tue Dec 10 10:20:06 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Tue, 10 Dec 2013 13:20:06 -0500 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: <52A74E97.6050707@oracle.com> References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> <52A5E0BA.1010800@oracle.com> <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> <52A6041C.9080208@oracle.com> <52A6790D.2050007@oracle.com> <52A74E97.6050707@oracle.com> Message-ID: <52A75B56.6030008@oracle.com> Yes, if it helps an application ship using the components and technology they need to make their product successful. In any case, this discussion is academic. Steve On 2013-12-10 12:25 PM, Anthony Petrov wrote: > We have implemented HW/LW components mixing for AWT/Swing in the past > [1]. However, the feature is very limited (no transparency support, > etc.), and the limitations come from native system capabilities that > can't be worked around easily. > > Do we really want something limited like this in FX? > > [1] > http://www.oracle.com/technetwork/articles/java/mixing-components-433992.html > > -- > best regards, > Anthony > > On 12/10/2013 06:14 AM, Stephen F Northover wrote: >> At one point, I was very interested in seeing this happen but there >> wasn't the band width and resources. >> >> Steve >> >> On 2013-12-09 1:00 PM, Felix Bembrick wrote: >>> What can we expect from the JavaFX team in this regard in the future? >>> I know we have talked about mixing lightweight and heavyweight >>> controls in the same context but is it going to happen? Is this >>> planned for JFX9 perhaps? Is it *really* even feasible? >>> >>>> On 10 Dec 2013, at 4:55, Stephen F Northover >>>> wrote: >>>> >>>> Today, you can only exercise the choice by writing native code and >>>> you face heavyweight / lightweight issues depending on the platform >>>> and API. >>>> >>>> Steve >>>> >>>>> On 2013-12-09 12:31 PM, Felix Bembrick wrote: >>>>> Stephen, I thoroughly agree that JavaFX is by far the best choice >>>>> for non-native apps/widgets which is precisely my point. They are >>>>> the kind of apps perfect for using JavaFX. >>>>> >>>>> But you refer to giving people the choice to go native where >>>>> appropriate. How can I exercise that choice? Where is the support >>>>> for native widgets in JavaFX? >>>>> >>>>> And isn't the real Holy Grail being able to mix native and >>>>> non-native widgets in the same app with all features of Node being >>>>> available to every widget, with all the effects and transforms, all >>>>> the CSS/styling and with all the performance? >>>>> >>>>> Could JavaFX ever be such a toolkit? >>>>> >>>>>> On 10 Dec 2013, at 2:24, Stephen F Northover >>>>>> wrote: >>>>>> >>>>>> Here are my thoughts on the matter. Give people the choice of >>>>>> whether to use native or non-native components. In some >>>>>> applications, everything will be non-native. In others, only the >>>>>> main content area will be non-native and the rest will be native. >>>>>> In some mobile applications, perhaps the preference pages will be >>>>>> native and other parts will not. >>>>>> >>>>>> JavaFX is the best choice for non-native widgets and we are >>>>>> committed to making it the best toolkit all around. >>>>>> >>>>>> Steve >>>>>> >>>>>>> On 2013-12-09 9:49 AM, Scott Palmer wrote: >>>>>>> I agree that perfect sync with native look and feels is not what >>>>>>> is required and not worth the effort. I do think though that >>>>>>> major concepts in the platform's look and feel should (must!) be >>>>>>> followed or the user experience is ruined. >>>>>>> >>>>>>> The example of the order of the ok and cancel buttons has been >>>>>>> brought up already. But that isn't even the most important one. >>>>>>> >>>>>>> Things like shortcut keys. CTRL-C to copy on windows, Command-C to >>>>>>> copy on Mac. Standard menu layouts, right-click behaviour and >>>>>>> standard context menus. They just have to be in the right place. >>>>>>> That they look different doesn't matter as much. And this doesn't >>>>>>> mean that you can't try new ideas for UI. But basic things that >>>>>>> users expect to work should still work. E.g. Command-Q on OS X >>>>>>> better quit the app :-) >>>>>>> >>>>>>> As noted already with my reference to Office and browsers.. Fully >>>>>>> native apps can be non-compliant with the platforms look and >>>>>>> feel. So this isn't really a Java-specific issue. >>>>>>> >>>>>>> Scott >>>>>>> >>>>>>>> On Dec 9, 2013, at 4:24 AM, Felix Bembrick >>>>>>>> wrote: >>>>>>>> >>>>>>>> Spoiler: This is something I have become intensely passionate >>>>>>>> about so this is likely to be a long post... >>>>>>>> >>>>>>>> OK, so this (hijacked) thread started out as a discussion of >>>>>>>> options in JavaFX for implementing "Look and Feel". I think >>>>>>>> everyone agrees that even with CSS and skins, JavaFX lacks the >>>>>>>> built-in ability to define a true Look *and* Feel. Further to >>>>>>>> this, there has been discussion on Twitter and elsewhere >>>>>>>> regarding *native* Look and Feel and the merits of attempting >>>>>>>> such an animal with JavaFX. >>>>>>>> >>>>>>>> It is on this topic that I would like to add my 2 bits (as I am >>>>>>>> known to do)! I was going to use my blog http://justmy2bits.com >>>>>>>> but decided I would be much more likely to be able to engage >>>>>>>> fellow JavaFX developers in a positive, polite and respectful >>>>>>>> conversation here. >>>>>>>> >>>>>>>> First, anyone who may follow me on Twitter, in this forum or when >>>>>>>> I post in other forums (anyone?) will probably be a little bit >>>>>>>> confused as to where I actually stand on this issue. Well, this >>>>>>>> stems from the fact that I have been giving confusing (if not >>>>>>>> conflicting) input into various threads on this topic for quite a >>>>>>>> while. >>>>>>>> >>>>>>>> Why? >>>>>>>> >>>>>>>> Well, because until very recently, I myself was completely torn >>>>>>>> on the subject of native Look and Feel. In fact, I seemed to >>>>>>>> oscillate on an almost daily basis from thinking it's a great, >>>>>>>> achievable idea to dismissing such an idea on various grounds. I >>>>>>>> am swaying so much because I have so much riding on successful >>>>>>>> ports of JavaFX to iOS and Android and because those ports depend >>>>>>>> heavily on resolving this issue once and for all. >>>>>>>> >>>>>>>> Now I have had something of an epiphany and reached a >>>>>>>> conclusion. I now do not believe that pouring large (massive?) >>>>>>>> amounts of resources into the painstaking task of building a >>>>>>>> fully compliant, fully performant native Look and Feel is >>>>>>>> justifiable or worth the effort. And let's be clear about this: >>>>>>>> it is a *lot* of effort! >>>>>>>> >>>>>>>> But before I proceed I just want to say categorically how much I >>>>>>>> admire the thoroughly awesome work/efforts of the likes of Pedro >>>>>>>> DV, Claudine Zillmann, Hendrik Ebbers et. al. in (trying ever so >>>>>>>> hard) to bring native Look and Feel to various OS/platforms with >>>>>>>> JavaFX. I cannot put in words how much I am in awe of the >>>>>>>> commitment, the attention to detail, the technical prowess, the >>>>>>>> artistry and the drive of these fantastic people. Their work >>>>>>>> will undoubtedly be extremely useful to many developers worldwide. >>>>>>>> >>>>>>>> I want to make all that *perfectly clear* because now I am going >>>>>>>> to explain why I (probably) will not be one of those people and >>>>>>>> (hopefully) do it with the utmost respect for the aforementioned >>>>>>>> rock stars :-) >>>>>>>> >>>>>>>> Right, so back to the issue of whether to or not to implement or >>>>>>>> use a native Look and Feel. Some of the following comments have >>>>>>>> already been made by me on other networks and in other forums so >>>>>>>> apologies if it seems a bit repetitive to some. >>>>>>>> >>>>>>>> At first glance, the idea of a native Look and Feel seems almost >>>>>>>> like the proverbial Holy Grail. I mean, if such a thing were >>>>>>>> truly possible and viable, who wouldn't want one? You still have >>>>>>>> your single codebase across all platforms and you just just >>>>>>>> plug-in the particular native Look and Feel for your target >>>>>>>> platform and voila! World domination will surely soon follow! >>>>>>>> >>>>>>>> Well, not quite. It's a great idea but I am going out on a limb >>>>>>>> to claim that it has *never* worked. Ever! And by "work" I mean >>>>>>>> so that your "not-so-native" app looks and feels (which includes >>>>>>>> all aspects of behaviour, not just appearance) *exactly* like a >>>>>>>> true native app and *no one* could tell you that it *wasn't* a >>>>>>>> native app. >>>>>>>> >>>>>>>> Yes, I know there are masses now screaming at their monitors who >>>>>>>> will undoubtedly cite the numerous success stories of Swing apps >>>>>>>> or maybe even Qt or some other cross-platform UI toolkit and >>>>>>>> maybe my standards/criteria are harsher than others but I stand >>>>>>>> by my claim that this has *never ever* really, really, really >>>>>>>> worked. >>>>>>>> >>>>>>>> OK, so why not? >>>>>>>> >>>>>>>> Here's my first point: I postulate that such a noble goal is not >>>>>>>> actually achievable. It is not actually achievable for a number >>>>>>>> of reasons. >>>>>>>> >>>>>>>> It is not actually achievable because, in most cases, we do not >>>>>>>> have access to the code that implements the native controls on >>>>>>>> each OS so, at best, we are "guessing" when we try to emulate all >>>>>>>> aspects of their appearance and behaviour. Try as we may, we >>>>>>>> will never get *every* control exactly right and I firmly believe >>>>>>>> that anything that purports to be something else needs to be >>>>>>>> *identical*. >>>>>>>> >>>>>>>> It is not actually achievable because just as you feel you have >>>>>>>> reached an acceptable level of "compliance" (which I again wager >>>>>>>> is never 100%), the goal posts will move. That is, the OS vendor >>>>>>>> will release an update and even the minor ones can change either >>>>>>>> the appearance or behaviour of controls, sometimes in subtle >>>>>>>> ways, sometimes in not so subtle ways. Either way, there is then >>>>>>>> going to be a period of time where you are playing a futile game >>>>>>>> of catch-up and during that time your "native" controls will be >>>>>>>> surely exposed for the impostors they are. >>>>>>>> >>>>>>>> It is not actually achievable because the same control on one OS >>>>>>>> can look and feel/behave quite differently on another OS which >>>>>>>> leads to very poor levels of reuse. >>>>>>>> >>>>>>>> It is not actually achievable because many controls simply can't >>>>>>>> be emulated in using Java/JavaFX most likely because they have >>>>>>>> exclusive access to native system or OS calls that are not >>>>>>>> accessible to Java or because the expected levels of performance >>>>>>>> or "snappiness" cannot be achieved using Java by any means. Even >>>>>>>> with JNA or JNI you would be left scratching your head in many >>>>>>>> cases. >>>>>>>> >>>>>>>> And, it is not actually achievable because it's simply too much >>>>>>>> work to get anywhere near to perfection! We are talking >>>>>>>> *massive* amounts of effort and very few people have either the >>>>>>>> talent, the eye, the attention to detail or the patience to see >>>>>>>> such a project right through to the end where *all* controls are >>>>>>>> covered. The rock stars I mentioned earlier are the exceptions >>>>>>>> of course. There's clearly zero point in emulating *some* of the >>>>>>>> controls only; you need the *full set* or it's just not viable. >>>>>>>> >>>>>>>> Finally, and to look at it another way, what do we get even if >>>>>>>> some super-human delivers us a native Look and Feel for every >>>>>>>> possible platform? Well, a massive maintenance nightmare for a >>>>>>>> start! This super-human would basically be spending all their >>>>>>>> super time and using up all their super powers just keeping such >>>>>>>> libraries current. >>>>>>>> >>>>>>>> So, if you are still with me, why bother? Just consider if all >>>>>>>> those rock stars (and super heroes) concentrated all their super >>>>>>>> efforts into either improving the features, stability, >>>>>>>> performance or appearance of JavaFX itself? Just think what we >>>>>>>> could achieve! >>>>>>>> >>>>>>>> And on the why bother theme, why bother to devote all that time >>>>>>>> and effort, spend all those millions, tear out all that hair and >>>>>>>> hit all those roadblocks when the very thing we are trying to >>>>>>>> achieve is already available? >>>>>>>> >>>>>>>> Yes, that's right, if you really, really, really want to build a >>>>>>>> native app then why don't you just build a native app? There are >>>>>>>> numerous tools, languages, IDEs, toolchains and libraries that >>>>>>>> enable you to build awesome *true* native apps! I just don't >>>>>>>> think JavaFX is one of them :-) >>>>>>>> >>>>>>>> And it doesn't have to be one of those toolkits because JavaFX >>>>>>>> can be used to build an entirely different class of application >>>>>>>> and I now strongly believe that this is the kind of app we should >>>>>>>> be concentrating on. That class (or classes) of app is one that >>>>>>>> is not so heavily dependent on the native Look and Feel and >>>>>>>> doesn't need to be. There are probably hundreds of thousands of >>>>>>>> apps that are like this. They are everywhere and JavaFX is >>>>>>>> *perfect* for them! >>>>>>>> >>>>>>>> Scott Palmer has argued that this approach is not valid (and >>>>>>>> sorry Scott if am inaccurately paraphrasing you). He cites >>>>>>>> examples such as Chrome, Firefox and even MS Office as proof that >>>>>>>> this approach does not work. However, my response to that would >>>>>>>> be to say that just because these are examples of where the >>>>>>>> developers got it seriously wrong, they do not prove that this >>>>>>>> approach can't work and isn't working all over the marketplace. >>>>>>>> >>>>>>>> There is no need to develop crappy, mistake ridden software by >>>>>>>> using a toolkit such as JavaFX in a way that does not attempt to >>>>>>>> emulate the native Look and Feel and the fact that even big >>>>>>>> companies like Google *still* clearly get it horribly wrong >>>>>>>> doesn't imply that we *all* have to be so ineffective. >>>>>>>> >>>>>>>> Part of my newly-found aversion to emulated native Look and Feel >>>>>>>> comes from my many years of both developing and using Swing >>>>>>>> applications. Sure, I know there are *some* (handful?) >>>>>>>> successful Swing apps, most notably those developed with the >>>>>>>> NetBeans RCP, but in general Swing has failed to have any >>>>>>>> penetration into serious commercial software. Why? Well, there >>>>>>>> are several reasons (and a lot are due to Java itself) but, for >>>>>>>> me, I was never satisfied with the so-called native Look and Feel >>>>>>>> options that come with Swing. I have been (and still am) very >>>>>>>> critical of the Windows Look and Feel in Swing in particular >>>>>>>> because, even today, there is a vast gulf between an actual >>>>>>>> native Windows application and a Swing application with this Look >>>>>>>> and Feel. So much so that I still want to almost knock my >>>>>>>> monitor off the desk when I am using an application developed in >>>>>>>> this way. For me, this is not acceptable and such an application >>>>>>>> could never be released as a serious commercial product. >>>>>>>> >>>>>>>> And that's pretty much what this all boils down to: developing >>>>>>>> serious commercial software. >>>>>>>> >>>>>>>> If you are interested in developing something else then these >>>>>>>> lengthy comments (am I *still* going?) probably do not apply to >>>>>>>> you :-) >>>>>>>> >>>>>>>> So to summarise, I argue that it is not possible to develop >>>>>>>> serious commercial software using emulated Look and Feel in >>>>>>>> JavaFX or in *any* UI toolkit. I *strongly* recommend that we >>>>>>>> all work together to make JavaFX as good as it can be (which is >>>>>>>> absolutely awesome) by focusing on the core product, the API, the >>>>>>>> performance, the feature set, the stability *and* the supported >>>>>>>> platforms rather than throw good money after bad on a *wonderful* >>>>>>>> goal that ultimately can never be reached... >>>>>>>> >>>>>>>> Just my 2 bits, >>>>>>>> >>>>>>>> Felix >>>>>>>> >>>>>>>> P.S. I surely hope I have not offended any/all those who either >>>>>>>> disagree with the main points or who still believe that native >>>>>>>> Look and Feel is viable. I remind you all that I am on my knees >>>>>>>> bowing with respect to the rock stars I referred to and anyone >>>>>>>> else working on similar projects. Absolutely no offence is >>>>>>>> intended, I am merely expressing my (passionate) feelings on this >>>>>>>> subject. >>>>>>>> >>>>>>>> >>>>>>>>> On 9 December 2013 19:10, Felix Bembrick >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> On 9 December 2013 16:10, Scott Palmer >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> On Dec 8, 2013, at 9:18 PM, Felix Bembrick >>>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Firstly, it will *never* be possible to completely emulate the >>>>>>>>>>> native look >>>>>>>>>>> and feel. >>>>>>>>>> Sure it is. Though it may never be practical, for many of the >>>>>>>>>> reasons you have given. >>>>>>>>>> >>>>>>>>>>> My reasoning is: why bother? >>>>>>>>>> Because it matters. As computer literate developers, we often >>>>>>>>>> don't realize what trips other people up. I get so frustrated >>>>>>>>>> with apps these days because they have become hard to use >>>>>>>>>> simply because the developers tried to define their own look >>>>>>>>>> and feel. For example, Chrome and Firefox... Or Microsoft >>>>>>>>>> Office... >>>>>>>>>> Where did the title bar go in chrome? >>>>>>>>>> Where have all the menus gone in Chrome, Firefox andOffice? I >>>>>>>>>> can find them, but when I have to play tech support over the >>>>>>>>>> phone to my parents these changes are massive problems. I ask >>>>>>>>>> my dad to move he window by dragging the title bar (please >>>>>>>>>> don't ask why he doesn't know to do this himself after decades >>>>>>>>>> of computer use) and he says "there is no title bar"... I the >>>>>>>>>> remember that yes, chrome did that... They got rid of a >>>>>>>>>> standard concept in the OS' windowing system and screed the end >>>>>>>>>> users. >>>>>>>>>> >>>>>>>>>> These apps became harder to use because of this "innovation" in >>>>>>>>>> the UI. >>>>>>>>>> >>>>>>>>>> Contrast this with applications on OS X where getting the UI >>>>>>>>>> right has always been an important priority for developers. >>>>>>>>>> Because adhering to the system look and feel has always been >>>>>>>>>> strongly encouraged the system is much easier to use. >>>>>>>>>> >>>>>>>>>>> These days, many apps do not look 100% native and may have >>>>>>>>>>> their own >>>>>>>>>>> controls or look and feel in general. >>>>>>>>>> Yes, but to what end? They are now more difficult to use. >>>>>>>>>> >>>>>>>>>>> Why not channel all that massive >>>>>>>>>>> effort in constructing an emulated native look and feel into >>>>>>>>>>> simply making >>>>>>>>>>> JavaFX better overall? >>>>>>>>>> But I agree here. The general look isn't the main issue.. E.g. >>>>>>>>>> little variations in color and minor tweaks to a few pixels >>>>>>>>>> here and there don't really matter. What does matter is when >>>>>>>>>> you change the order of buttons, like Okay & Cancel which have >>>>>>>>>> standard places that are different between Mac and Windows, or >>>>>>>>>> you move the About menu item from the Application menu on an OS >>>>>>>>>> X app to the help menu! because that is where you find it on >>>>>>>>>> Windows. Those things matter. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Scott >>>>>>>>>> >>>>>>>>>>> Felix >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On 9 December 2013 12:35, Pedro Duque Vieira >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> Thanks! >>>>>>>>>>>> >>>>>>>>>>>> @Jasper: Yes, that's very interesting! Forgot that was >>>>>>>>>>>> possible to do in >>>>>>>>>>>> CSS. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> It may be possible to change the LOOK with CSS, but not the >>>>>>>>>>>>> FEEL, which >>>>>>>>>>>> is >>>>>>>>>>>>> where Java apps have traditionally failed big time. >>>>>>>>>>>>> >>>>>>>>>>>>> Some things that I don?t think can be changed with CSS: >>>>>>>>>>>>> >>>>>>>>>>>>> 1) texts >>>>>>>>>>>>> 2) order of buttons >>>>>>>>>>>>> 3) escape characters for shortcuts >>>>>>>>>>>>> 4) menus >>>>>>>>>>>>> 5) system-level stuff (double-clicking on files, dropping >>>>>>>>>>>>> files on >>>>>>>>>>>>> applications, ?) >>>>>>>>>>>>> 6) filesystem conventions >>>>>>>>>>>>> 7) ... >>>>>>>>>>>>> >>>>>>>>>>>>> I think FXML can fix some of these, but not all. So it seems >>>>>>>>>>>>> to me that a >>>>>>>>>>>>> LaF in JFX will consist of at least: >>>>>>>>>>>>> >>>>>>>>>>>>> - one or more CSS files >>>>>>>>>>>>> - one or more FXML files >>>>>>>>>>>>> - some plumbing at the system level >>>>>>>>>>>>> >>>>>>>>>>>>> It would be nice to have a set of proper LaFs for each major >>>>>>>>>>>>> platform >>>>>>>>>>>> with >>>>>>>>>>>>> an appropriate common API. >>>>>>>>>>>>> >>>>>>>>>>>>> Steve >>>>>>>>>>>>> >>>>>>>>>>>>>> On 9 Dec 2013, at 00:20, Jasper Potts >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> You can set skin classes from CSS so should be able to do >>>>>>>>>>>>>> everything >>>>>>>>>>>> you >>>>>>>>>>>>> could with Swing and more. With just a CSS file and skins as >>>>>>>>>>>>> and when >>>>>>>>>>>>> needed. >>>>>>>>>>>>>> Jasper >>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles >>>>>>>>>>>>>>> >>>>>>>>>>>> wrote: >>>>>>>>>>>>>>> At present there are no plans to introduce any further >>>>>>>>>>>>>>> API or >>>>>>>>>>>>>>> functionality in this area, but if there is something you >>>>>>>>>>>>>>> are wanting >>>>>>>>>>>>>>> then you should file feature requests in Jira. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -- Jonathan >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >>>>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Is there any Look and Feel mechanism in place, like the >>>>>>>>>>>>>>>> one in Swing? >>>>>>>>>>>>> That >>>>>>>>>>>>>>>> doesn't appear to exist.. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Are there any plans to add one? You can only do so much >>>>>>>>>>>>>>>> with CSS... >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Thanks in advance, best regards, >>>>>>>>>>>> -- >>>>>>>>>>>> Pedro Duque Vieira >>>> >> >> From hang.vo at oracle.com Tue Dec 10 10:33:06 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 18:33:06 +0000 Subject: hg: openjfx/8/graphics/rt: [Samples Only][RT-33754] Ensemble Icons Message-ID: <20131210183331.242D662BCC@hg.openjdk.java.net> Changeset: 6a8c274547fa Author: John Yoon Date: 2013-12-10 10:26 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/6a8c274547fa [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/anchorpane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/anchorpane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/borderpane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/borderpane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/flowpane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/flowpane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/gridpane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/gridpane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/hbox/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/hbox/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/stackpane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/stackpane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/tilepane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/tilepane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/vbox/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/vbox/preview at 2x.png From felix.bembrick at gmail.com Tue Dec 10 10:35:25 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Wed, 11 Dec 2013 05:35:25 +1100 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: <52A75B56.6030008@oracle.com> References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> <52A5E0BA.1010800@oracle.com> <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> <52A6041C.9080208@oracle.com> <52A6790D.2050007@oracle.com> <52A74E97.6050707@oracle.com> <52A75B56.6030008@oracle.com> Message-ID: Stephen, why do you refer to this discussion as "academic"? Felix On 11 December 2013 05:20, Stephen F Northover wrote: > Yes, if it helps an application ship using the components and technology > they need to make their product successful. In any case, this discussion > is academic. > > Steve > > > On 2013-12-10 12:25 PM, Anthony Petrov wrote: > >> We have implemented HW/LW components mixing for AWT/Swing in the past >> [1]. However, the feature is very limited (no transparency support, etc.), >> and the limitations come from native system capabilities that can't be >> worked around easily. >> >> Do we really want something limited like this in FX? >> >> [1] http://www.oracle.com/technetwork/articles/java/ >> mixing-components-433992.html >> >> -- >> best regards, >> Anthony >> >> On 12/10/2013 06:14 AM, Stephen F Northover wrote: >> >>> At one point, I was very interested in seeing this happen but there >>> wasn't the band width and resources. >>> >>> Steve >>> >>> On 2013-12-09 1:00 PM, Felix Bembrick wrote: >>> >>>> What can we expect from the JavaFX team in this regard in the future? >>>> I know we have talked about mixing lightweight and heavyweight >>>> controls in the same context but is it going to happen? Is this >>>> planned for JFX9 perhaps? Is it *really* even feasible? >>>> >>>> On 10 Dec 2013, at 4:55, Stephen F Northover >>>>> wrote: >>>>> >>>>> Today, you can only exercise the choice by writing native code and >>>>> you face heavyweight / lightweight issues depending on the platform >>>>> and API. >>>>> >>>>> Steve >>>>> >>>>> On 2013-12-09 12:31 PM, Felix Bembrick wrote: >>>>>> Stephen, I thoroughly agree that JavaFX is by far the best choice >>>>>> for non-native apps/widgets which is precisely my point. They are >>>>>> the kind of apps perfect for using JavaFX. >>>>>> >>>>>> But you refer to giving people the choice to go native where >>>>>> appropriate. How can I exercise that choice? Where is the support >>>>>> for native widgets in JavaFX? >>>>>> >>>>>> And isn't the real Holy Grail being able to mix native and >>>>>> non-native widgets in the same app with all features of Node being >>>>>> available to every widget, with all the effects and transforms, all >>>>>> the CSS/styling and with all the performance? >>>>>> >>>>>> Could JavaFX ever be such a toolkit? >>>>>> >>>>>> On 10 Dec 2013, at 2:24, Stephen F Northover >>>>>>> wrote: >>>>>>> >>>>>>> Here are my thoughts on the matter. Give people the choice of >>>>>>> whether to use native or non-native components. In some >>>>>>> applications, everything will be non-native. In others, only the >>>>>>> main content area will be non-native and the rest will be native. >>>>>>> In some mobile applications, perhaps the preference pages will be >>>>>>> native and other parts will not. >>>>>>> >>>>>>> JavaFX is the best choice for non-native widgets and we are >>>>>>> committed to making it the best toolkit all around. >>>>>>> >>>>>>> Steve >>>>>>> >>>>>>> On 2013-12-09 9:49 AM, Scott Palmer wrote: >>>>>>>> I agree that perfect sync with native look and feels is not what >>>>>>>> is required and not worth the effort. I do think though that >>>>>>>> major concepts in the platform's look and feel should (must!) be >>>>>>>> followed or the user experience is ruined. >>>>>>>> >>>>>>>> The example of the order of the ok and cancel buttons has been >>>>>>>> brought up already. But that isn't even the most important one. >>>>>>>> >>>>>>>> Things like shortcut keys. CTRL-C to copy on windows, Command-C to >>>>>>>> copy on Mac. Standard menu layouts, right-click behaviour and >>>>>>>> standard context menus. They just have to be in the right place. >>>>>>>> That they look different doesn't matter as much. And this doesn't >>>>>>>> mean that you can't try new ideas for UI. But basic things that >>>>>>>> users expect to work should still work. E.g. Command-Q on OS X >>>>>>>> better quit the app :-) >>>>>>>> >>>>>>>> As noted already with my reference to Office and browsers.. Fully >>>>>>>> native apps can be non-compliant with the platforms look and >>>>>>>> feel. So this isn't really a Java-specific issue. >>>>>>>> >>>>>>>> Scott >>>>>>>> >>>>>>>> On Dec 9, 2013, at 4:24 AM, Felix Bembrick >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Spoiler: This is something I have become intensely passionate >>>>>>>>> about so this is likely to be a long post... >>>>>>>>> >>>>>>>>> OK, so this (hijacked) thread started out as a discussion of >>>>>>>>> options in JavaFX for implementing "Look and Feel". I think >>>>>>>>> everyone agrees that even with CSS and skins, JavaFX lacks the >>>>>>>>> built-in ability to define a true Look *and* Feel. Further to >>>>>>>>> this, there has been discussion on Twitter and elsewhere >>>>>>>>> regarding *native* Look and Feel and the merits of attempting >>>>>>>>> such an animal with JavaFX. >>>>>>>>> >>>>>>>>> It is on this topic that I would like to add my 2 bits (as I am >>>>>>>>> known to do)! I was going to use my blog http://justmy2bits.com >>>>>>>>> but decided I would be much more likely to be able to engage >>>>>>>>> fellow JavaFX developers in a positive, polite and respectful >>>>>>>>> conversation here. >>>>>>>>> >>>>>>>>> First, anyone who may follow me on Twitter, in this forum or when >>>>>>>>> I post in other forums (anyone?) will probably be a little bit >>>>>>>>> confused as to where I actually stand on this issue. Well, this >>>>>>>>> stems from the fact that I have been giving confusing (if not >>>>>>>>> conflicting) input into various threads on this topic for quite a >>>>>>>>> while. >>>>>>>>> >>>>>>>>> Why? >>>>>>>>> >>>>>>>>> Well, because until very recently, I myself was completely torn >>>>>>>>> on the subject of native Look and Feel. In fact, I seemed to >>>>>>>>> oscillate on an almost daily basis from thinking it's a great, >>>>>>>>> achievable idea to dismissing such an idea on various grounds. I >>>>>>>>> am swaying so much because I have so much riding on successful >>>>>>>>> ports of JavaFX to iOS and Android and because those ports depend >>>>>>>>> heavily on resolving this issue once and for all. >>>>>>>>> >>>>>>>>> Now I have had something of an epiphany and reached a >>>>>>>>> conclusion. I now do not believe that pouring large (massive?) >>>>>>>>> amounts of resources into the painstaking task of building a >>>>>>>>> fully compliant, fully performant native Look and Feel is >>>>>>>>> justifiable or worth the effort. And let's be clear about this: >>>>>>>>> it is a *lot* of effort! >>>>>>>>> >>>>>>>>> But before I proceed I just want to say categorically how much I >>>>>>>>> admire the thoroughly awesome work/efforts of the likes of Pedro >>>>>>>>> DV, Claudine Zillmann, Hendrik Ebbers et. al. in (trying ever so >>>>>>>>> hard) to bring native Look and Feel to various OS/platforms with >>>>>>>>> JavaFX. I cannot put in words how much I am in awe of the >>>>>>>>> commitment, the attention to detail, the technical prowess, the >>>>>>>>> artistry and the drive of these fantastic people. Their work >>>>>>>>> will undoubtedly be extremely useful to many developers worldwide. >>>>>>>>> >>>>>>>>> I want to make all that *perfectly clear* because now I am going >>>>>>>>> to explain why I (probably) will not be one of those people and >>>>>>>>> (hopefully) do it with the utmost respect for the aforementioned >>>>>>>>> rock stars :-) >>>>>>>>> >>>>>>>>> Right, so back to the issue of whether to or not to implement or >>>>>>>>> use a native Look and Feel. Some of the following comments have >>>>>>>>> already been made by me on other networks and in other forums so >>>>>>>>> apologies if it seems a bit repetitive to some. >>>>>>>>> >>>>>>>>> At first glance, the idea of a native Look and Feel seems almost >>>>>>>>> like the proverbial Holy Grail. I mean, if such a thing were >>>>>>>>> truly possible and viable, who wouldn't want one? You still have >>>>>>>>> your single codebase across all platforms and you just just >>>>>>>>> plug-in the particular native Look and Feel for your target >>>>>>>>> platform and voila! World domination will surely soon follow! >>>>>>>>> >>>>>>>>> Well, not quite. It's a great idea but I am going out on a limb >>>>>>>>> to claim that it has *never* worked. Ever! And by "work" I mean >>>>>>>>> so that your "not-so-native" app looks and feels (which includes >>>>>>>>> all aspects of behaviour, not just appearance) *exactly* like a >>>>>>>>> true native app and *no one* could tell you that it *wasn't* a >>>>>>>>> native app. >>>>>>>>> >>>>>>>>> Yes, I know there are masses now screaming at their monitors who >>>>>>>>> will undoubtedly cite the numerous success stories of Swing apps >>>>>>>>> or maybe even Qt or some other cross-platform UI toolkit and >>>>>>>>> maybe my standards/criteria are harsher than others but I stand >>>>>>>>> by my claim that this has *never ever* really, really, really >>>>>>>>> worked. >>>>>>>>> >>>>>>>>> OK, so why not? >>>>>>>>> >>>>>>>>> Here's my first point: I postulate that such a noble goal is not >>>>>>>>> actually achievable. It is not actually achievable for a number >>>>>>>>> of reasons. >>>>>>>>> >>>>>>>>> It is not actually achievable because, in most cases, we do not >>>>>>>>> have access to the code that implements the native controls on >>>>>>>>> each OS so, at best, we are "guessing" when we try to emulate all >>>>>>>>> aspects of their appearance and behaviour. Try as we may, we >>>>>>>>> will never get *every* control exactly right and I firmly believe >>>>>>>>> that anything that purports to be something else needs to be >>>>>>>>> *identical*. >>>>>>>>> >>>>>>>>> It is not actually achievable because just as you feel you have >>>>>>>>> reached an acceptable level of "compliance" (which I again wager >>>>>>>>> is never 100%), the goal posts will move. That is, the OS vendor >>>>>>>>> will release an update and even the minor ones can change either >>>>>>>>> the appearance or behaviour of controls, sometimes in subtle >>>>>>>>> ways, sometimes in not so subtle ways. Either way, there is then >>>>>>>>> going to be a period of time where you are playing a futile game >>>>>>>>> of catch-up and during that time your "native" controls will be >>>>>>>>> surely exposed for the impostors they are. >>>>>>>>> >>>>>>>>> It is not actually achievable because the same control on one OS >>>>>>>>> can look and feel/behave quite differently on another OS which >>>>>>>>> leads to very poor levels of reuse. >>>>>>>>> >>>>>>>>> It is not actually achievable because many controls simply can't >>>>>>>>> be emulated in using Java/JavaFX most likely because they have >>>>>>>>> exclusive access to native system or OS calls that are not >>>>>>>>> accessible to Java or because the expected levels of performance >>>>>>>>> or "snappiness" cannot be achieved using Java by any means. Even >>>>>>>>> with JNA or JNI you would be left scratching your head in many >>>>>>>>> cases. >>>>>>>>> >>>>>>>>> And, it is not actually achievable because it's simply too much >>>>>>>>> work to get anywhere near to perfection! We are talking >>>>>>>>> *massive* amounts of effort and very few people have either the >>>>>>>>> talent, the eye, the attention to detail or the patience to see >>>>>>>>> such a project right through to the end where *all* controls are >>>>>>>>> covered. The rock stars I mentioned earlier are the exceptions >>>>>>>>> of course. There's clearly zero point in emulating *some* of the >>>>>>>>> controls only; you need the *full set* or it's just not viable. >>>>>>>>> >>>>>>>>> Finally, and to look at it another way, what do we get even if >>>>>>>>> some super-human delivers us a native Look and Feel for every >>>>>>>>> possible platform? Well, a massive maintenance nightmare for a >>>>>>>>> start! This super-human would basically be spending all their >>>>>>>>> super time and using up all their super powers just keeping such >>>>>>>>> libraries current. >>>>>>>>> >>>>>>>>> So, if you are still with me, why bother? Just consider if all >>>>>>>>> those rock stars (and super heroes) concentrated all their super >>>>>>>>> efforts into either improving the features, stability, >>>>>>>>> performance or appearance of JavaFX itself? Just think what we >>>>>>>>> could achieve! >>>>>>>>> >>>>>>>>> And on the why bother theme, why bother to devote all that time >>>>>>>>> and effort, spend all those millions, tear out all that hair and >>>>>>>>> hit all those roadblocks when the very thing we are trying to >>>>>>>>> achieve is already available? >>>>>>>>> >>>>>>>>> Yes, that's right, if you really, really, really want to build a >>>>>>>>> native app then why don't you just build a native app? There are >>>>>>>>> numerous tools, languages, IDEs, toolchains and libraries that >>>>>>>>> enable you to build awesome *true* native apps! I just don't >>>>>>>>> think JavaFX is one of them :-) >>>>>>>>> >>>>>>>>> And it doesn't have to be one of those toolkits because JavaFX >>>>>>>>> can be used to build an entirely different class of application >>>>>>>>> and I now strongly believe that this is the kind of app we should >>>>>>>>> be concentrating on. That class (or classes) of app is one that >>>>>>>>> is not so heavily dependent on the native Look and Feel and >>>>>>>>> doesn't need to be. There are probably hundreds of thousands of >>>>>>>>> apps that are like this. They are everywhere and JavaFX is >>>>>>>>> *perfect* for them! >>>>>>>>> >>>>>>>>> Scott Palmer has argued that this approach is not valid (and >>>>>>>>> sorry Scott if am inaccurately paraphrasing you). He cites >>>>>>>>> examples such as Chrome, Firefox and even MS Office as proof that >>>>>>>>> this approach does not work. However, my response to that would >>>>>>>>> be to say that just because these are examples of where the >>>>>>>>> developers got it seriously wrong, they do not prove that this >>>>>>>>> approach can't work and isn't working all over the marketplace. >>>>>>>>> >>>>>>>>> There is no need to develop crappy, mistake ridden software by >>>>>>>>> using a toolkit such as JavaFX in a way that does not attempt to >>>>>>>>> emulate the native Look and Feel and the fact that even big >>>>>>>>> companies like Google *still* clearly get it horribly wrong >>>>>>>>> doesn't imply that we *all* have to be so ineffective. >>>>>>>>> >>>>>>>>> Part of my newly-found aversion to emulated native Look and Feel >>>>>>>>> comes from my many years of both developing and using Swing >>>>>>>>> applications. Sure, I know there are *some* (handful?) >>>>>>>>> successful Swing apps, most notably those developed with the >>>>>>>>> NetBeans RCP, but in general Swing has failed to have any >>>>>>>>> penetration into serious commercial software. Why? Well, there >>>>>>>>> are several reasons (and a lot are due to Java itself) but, for >>>>>>>>> me, I was never satisfied with the so-called native Look and Feel >>>>>>>>> options that come with Swing. I have been (and still am) very >>>>>>>>> critical of the Windows Look and Feel in Swing in particular >>>>>>>>> because, even today, there is a vast gulf between an actual >>>>>>>>> native Windows application and a Swing application with this Look >>>>>>>>> and Feel. So much so that I still want to almost knock my >>>>>>>>> monitor off the desk when I am using an application developed in >>>>>>>>> this way. For me, this is not acceptable and such an application >>>>>>>>> could never be released as a serious commercial product. >>>>>>>>> >>>>>>>>> And that's pretty much what this all boils down to: developing >>>>>>>>> serious commercial software. >>>>>>>>> >>>>>>>>> If you are interested in developing something else then these >>>>>>>>> lengthy comments (am I *still* going?) probably do not apply to >>>>>>>>> you :-) >>>>>>>>> >>>>>>>>> So to summarise, I argue that it is not possible to develop >>>>>>>>> serious commercial software using emulated Look and Feel in >>>>>>>>> JavaFX or in *any* UI toolkit. I *strongly* recommend that we >>>>>>>>> all work together to make JavaFX as good as it can be (which is >>>>>>>>> absolutely awesome) by focusing on the core product, the API, the >>>>>>>>> performance, the feature set, the stability *and* the supported >>>>>>>>> platforms rather than throw good money after bad on a *wonderful* >>>>>>>>> goal that ultimately can never be reached... >>>>>>>>> >>>>>>>>> Just my 2 bits, >>>>>>>>> >>>>>>>>> Felix >>>>>>>>> >>>>>>>>> P.S. I surely hope I have not offended any/all those who either >>>>>>>>> disagree with the main points or who still believe that native >>>>>>>>> Look and Feel is viable. I remind you all that I am on my knees >>>>>>>>> bowing with respect to the rock stars I referred to and anyone >>>>>>>>> else working on similar projects. Absolutely no offence is >>>>>>>>> intended, I am merely expressing my (passionate) feelings on this >>>>>>>>> subject. >>>>>>>>> >>>>>>>>> >>>>>>>>> On 9 December 2013 19:10, Felix Bembrick >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 9 December 2013 16:10, Scott Palmer >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Dec 8, 2013, at 9:18 PM, Felix Bembrick >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> Firstly, it will *never* be possible to completely emulate the >>>>>>>>>>>> native look >>>>>>>>>>>> and feel. >>>>>>>>>>>> >>>>>>>>>>> Sure it is. Though it may never be practical, for many of the >>>>>>>>>>> reasons you have given. >>>>>>>>>>> >>>>>>>>>>> My reasoning is: why bother? >>>>>>>>>>>> >>>>>>>>>>> Because it matters. As computer literate developers, we often >>>>>>>>>>> don't realize what trips other people up. I get so frustrated >>>>>>>>>>> with apps these days because they have become hard to use >>>>>>>>>>> simply because the developers tried to define their own look >>>>>>>>>>> and feel. For example, Chrome and Firefox... Or Microsoft >>>>>>>>>>> Office... >>>>>>>>>>> Where did the title bar go in chrome? >>>>>>>>>>> Where have all the menus gone in Chrome, Firefox andOffice? I >>>>>>>>>>> can find them, but when I have to play tech support over the >>>>>>>>>>> phone to my parents these changes are massive problems. I ask >>>>>>>>>>> my dad to move he window by dragging the title bar (please >>>>>>>>>>> don't ask why he doesn't know to do this himself after decades >>>>>>>>>>> of computer use) and he says "there is no title bar"... I the >>>>>>>>>>> remember that yes, chrome did that... They got rid of a >>>>>>>>>>> standard concept in the OS' windowing system and screed the end >>>>>>>>>>> users. >>>>>>>>>>> >>>>>>>>>>> These apps became harder to use because of this "innovation" in >>>>>>>>>>> the UI. >>>>>>>>>>> >>>>>>>>>>> Contrast this with applications on OS X where getting the UI >>>>>>>>>>> right has always been an important priority for developers. >>>>>>>>>>> Because adhering to the system look and feel has always been >>>>>>>>>>> strongly encouraged the system is much easier to use. >>>>>>>>>>> >>>>>>>>>>> These days, many apps do not look 100% native and may have >>>>>>>>>>>> their own >>>>>>>>>>>> controls or look and feel in general. >>>>>>>>>>>> >>>>>>>>>>> Yes, but to what end? They are now more difficult to use. >>>>>>>>>>> >>>>>>>>>>> Why not channel all that massive >>>>>>>>>>>> effort in constructing an emulated native look and feel into >>>>>>>>>>>> simply making >>>>>>>>>>>> JavaFX better overall? >>>>>>>>>>>> >>>>>>>>>>> But I agree here. The general look isn't the main issue.. E.g. >>>>>>>>>>> little variations in color and minor tweaks to a few pixels >>>>>>>>>>> here and there don't really matter. What does matter is when >>>>>>>>>>> you change the order of buttons, like Okay & Cancel which have >>>>>>>>>>> standard places that are different between Mac and Windows, or >>>>>>>>>>> you move the About menu item from the Application menu on an OS >>>>>>>>>>> X app to the help menu! because that is where you find it on >>>>>>>>>>> Windows. Those things matter. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Scott >>>>>>>>>>> >>>>>>>>>>> Felix >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 9 December 2013 12:35, Pedro Duque Vieira >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>> Thanks! >>>>>>>>>>>>> >>>>>>>>>>>>> @Jasper: Yes, that's very interesting! Forgot that was >>>>>>>>>>>>> possible to do in >>>>>>>>>>>>> CSS. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> It may be possible to change the LOOK with CSS, but not the >>>>>>>>>>>>>> FEEL, which >>>>>>>>>>>>>> >>>>>>>>>>>>> is >>>>>>>>>>>>> >>>>>>>>>>>>>> where Java apps have traditionally failed big time. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Some things that I don?t think can be changed with CSS: >>>>>>>>>>>>>> >>>>>>>>>>>>>> 1) texts >>>>>>>>>>>>>> 2) order of buttons >>>>>>>>>>>>>> 3) escape characters for shortcuts >>>>>>>>>>>>>> 4) menus >>>>>>>>>>>>>> 5) system-level stuff (double-clicking on files, dropping >>>>>>>>>>>>>> files on >>>>>>>>>>>>>> applications, ?) >>>>>>>>>>>>>> 6) filesystem conventions >>>>>>>>>>>>>> 7) ... >>>>>>>>>>>>>> >>>>>>>>>>>>>> I think FXML can fix some of these, but not all. So it seems >>>>>>>>>>>>>> to me that a >>>>>>>>>>>>>> LaF in JFX will consist of at least: >>>>>>>>>>>>>> >>>>>>>>>>>>>> - one or more CSS files >>>>>>>>>>>>>> - one or more FXML files >>>>>>>>>>>>>> - some plumbing at the system level >>>>>>>>>>>>>> >>>>>>>>>>>>>> It would be nice to have a set of proper LaFs for each major >>>>>>>>>>>>>> platform >>>>>>>>>>>>>> >>>>>>>>>>>>> with >>>>>>>>>>>>> >>>>>>>>>>>>>> an appropriate common API. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Steve >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 9 Dec 2013, at 00:20, Jasper Potts >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> You can set skin classes from CSS so should be able to do >>>>>>>>>>>>>>> everything >>>>>>>>>>>>>>> >>>>>>>>>>>>>> you >>>>>>>>>>>>> >>>>>>>>>>>>>> could with Swing and more. With just a CSS file and skins as >>>>>>>>>>>>>> and when >>>>>>>>>>>>>> needed. >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Jasper >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> At present there are no plans to introduce any further API or >>>>>>>>>>>>>>>> functionality in this area, but if there is something you >>>>>>>>>>>>>>>> are wanting >>>>>>>>>>>>>>>> then you should file feature requests in Jira. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -- Jonathan >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >>>>>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Is there any Look and Feel mechanism in place, like the >>>>>>>>>>>>>>>>> one in Swing? >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> That >>>>>>>>>>>>>> >>>>>>>>>>>>>>> doesn't appear to exist.. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Are there any plans to add one? You can only do so much >>>>>>>>>>>>>>>>> with CSS... >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Thanks in advance, best regards, >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -- >>>>>>>>>>>>> Pedro Duque Vieira >>>>>>>>>>>>> >>>>>>>>>>>> >>>>> >>> >>> > From hang.vo at oracle.com Tue Dec 10 10:18:02 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 18:18:02 +0000 Subject: hg: openjfx/8/graphics/rt: RT-21569: Document that applications should avoid flooding FX with Platform.runLater calls Message-ID: <20131210181824.CC40062BC6@hg.openjdk.java.net> Changeset: 2a14ca6aedf3 Author: kcr Date: 2013-12-10 10:03 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/2a14ca6aedf3 RT-21569: Document that applications should avoid flooding FX with Platform.runLater calls Reviewed-by: anthony ! modules/graphics/src/main/java/javafx/application/Platform.java From hang.vo at oracle.com Tue Dec 10 11:03:33 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 19:03:33 +0000 Subject: hg: openjfx/8/graphics/rt: [Samples Only][RT-33754] Ensemble Icons Message-ID: <20131210190350.4179662BCE@hg.openjdk.java.net> Changeset: 8a1e5a4a8a19 Author: John Yoon Date: 2013-12-10 10:49 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/8a1e5a4a8a19 [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/advancedmedia/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/advancedmedia/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/alphamediaplayer/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/alphamediaplayer/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/audioclip/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/audioclip/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/overlaymediaplayer/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/overlaymediaplayer/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/streamingmediaplayer/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/streamingmediaplayer/preview at 2x.png From steve.x.northover at oracle.com Tue Dec 10 11:57:49 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Tue, 10 Dec 2013 14:57:49 -0500 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> <52A5E0BA.1010800@oracle.com> <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> <52A6041C.9080208@oracle.com> <52A6790D.2050007@oracle.com> <52A74E97.6050707@oracle.com> <52A75B56.6030008@oracle.com> Message-ID: <52A7723D.50907@oracle.com> I was very interesting in heavyweight integration a while back but could not get anyone very enthusiastic about it. Steve On 2013-12-10 1:35 PM, Felix Bembrick wrote: > Stephen, why do you refer to this discussion as "academic"? > > Felix > > > > On 11 December 2013 05:20, Stephen F Northover > > > wrote: > > Yes, if it helps an application ship using the components and > technology they need to make their product successful. In any > case, this discussion is academic. > > Steve > > > On 2013-12-10 12:25 PM, Anthony Petrov wrote: > > We have implemented HW/LW components mixing for AWT/Swing in > the past [1]. However, the feature is very limited (no > transparency support, etc.), and the limitations come from > native system capabilities that can't be worked around easily. > > Do we really want something limited like this in FX? > > [1] > http://www.oracle.com/technetwork/articles/java/mixing-components-433992.html > > -- > best regards, > Anthony > > On 12/10/2013 06:14 AM, Stephen F Northover wrote: > > At one point, I was very interested in seeing this happen > but there > wasn't the band width and resources. > > Steve > > On 2013-12-09 1:00 PM, Felix Bembrick wrote: > > What can we expect from the JavaFX team in this regard > in the future? > I know we have talked about mixing lightweight and > heavyweight > controls in the same context but is it going to > happen? Is this > planned for JFX9 perhaps? Is it *really* even feasible? > > On 10 Dec 2013, at 4:55, Stephen F Northover > > wrote: > > Today, you can only exercise the choice by writing > native code and > you face heavyweight / lightweight issues > depending on the platform > and API. > > Steve > > On 2013-12-09 12:31 PM, Felix Bembrick wrote: > Stephen, I thoroughly agree that JavaFX is by > far the best choice > for non-native apps/widgets which is precisely > my point. They are > the kind of apps perfect for using JavaFX. > > But you refer to giving people the choice to > go native where > appropriate. How can I exercise that choice? > Where is the support > for native widgets in JavaFX? > > And isn't the real Holy Grail being able to > mix native and > non-native widgets in the same app with all > features of Node being > available to every widget, with all the > effects and transforms, all > the CSS/styling and with all the performance? > > Could JavaFX ever be such a toolkit? > > On 10 Dec 2013, at 2:24, Stephen F Northover > > wrote: > > Here are my thoughts on the matter. Give > people the choice of > whether to use native or non-native > components. In some > applications, everything will be > non-native. In others, only the > main content area will be non-native and > the rest will be native. > In some mobile applications, perhaps the > preference pages will be > native and other parts will not. > > JavaFX is the best choice for non-native > widgets and we are > committed to making it the best toolkit > all around. > > Steve > > On 2013-12-09 9:49 AM, Scott Palmer wrote: > I agree that perfect sync with native > look and feels is not what > is required and not worth the effort. > I do think though that > major concepts in the platform's look > and feel should (must!) be > followed or the user experience is ruined. > > The example of the order of the ok and > cancel buttons has been > brought up already. But that isn't > even the most important one. > > Things like shortcut keys. CTRL-C to > copy on windows, Command-C to > copy on Mac. Standard menu layouts, > right-click behaviour and > standard context menus. They just > have to be in the right place. > That they look different doesn't > matter as much. And this doesn't > mean that you can't try new ideas for > UI. But basic things that > users expect to work should still > work. E.g. Command-Q on OS X > better quit the app :-) > > As noted already with my reference to > Office and browsers.. Fully > native apps can be non-compliant with > the platforms look and > feel. So this isn't really a > Java-specific issue. > > Scott > > On Dec 9, 2013, at 4:24 AM, Felix > Bembrick > > > wrote: > > Spoiler: This is something I have > become intensely passionate > about so this is likely to be a > long post... > > OK, so this (hijacked) thread > started out as a discussion of > options in JavaFX for implementing > "Look and Feel". I think > everyone agrees that even with CSS > and skins, JavaFX lacks the > built-in ability to define a true > Look *and* Feel. Further to > this, there has been discussion on > Twitter and elsewhere > regarding *native* Look and Feel > and the merits of attempting > such an animal with JavaFX. > > It is on this topic that I would > like to add my 2 bits (as I am > known to do)! I was going to use > my blog http://justmy2bits.com > but decided I would be much more > likely to be able to engage > fellow JavaFX developers in a > positive, polite and respectful > conversation here. > > First, anyone who may follow me on > Twitter, in this forum or when > I post in other forums (anyone?) > will probably be a little bit > confused as to where I actually > stand on this issue. Well, this > stems from the fact that I have > been giving confusing (if not > conflicting) input into various > threads on this topic for quite a > while. > > Why? > > Well, because until very recently, > I myself was completely torn > on the subject of native Look and > Feel. In fact, I seemed to > oscillate on an almost daily basis > from thinking it's a great, > achievable idea to dismissing such > an idea on various grounds. I > am swaying so much because I have > so much riding on successful > ports of JavaFX to iOS and Android > and because those ports depend > heavily on resolving this issue > once and for all. > > Now I have had something of an > epiphany and reached a > conclusion. I now do not believe > that pouring large (massive?) > amounts of resources into the > painstaking task of building a > fully compliant, fully performant > native Look and Feel is > justifiable or worth the effort. > And let's be clear about this: > it is a *lot* of effort! > > But before I proceed I just want > to say categorically how much I > admire the thoroughly awesome > work/efforts of the likes of Pedro > DV, Claudine Zillmann, Hendrik > Ebbers et. al. in (trying ever so > hard) to bring native Look and > Feel to various OS/platforms with > JavaFX. I cannot put in words how > much I am in awe of the > commitment, the attention to > detail, the technical prowess, the > artistry and the drive of these > fantastic people. Their work > will undoubtedly be extremely > useful to many developers worldwide. > > I want to make all that *perfectly > clear* because now I am going > to explain why I (probably) will > not be one of those people and > (hopefully) do it with the utmost > respect for the aforementioned > rock stars :-) > > Right, so back to the issue of > whether to or not to implement or > use a native Look and Feel. Some > of the following comments have > already been made by me on other > networks and in other forums so > apologies if it seems a bit > repetitive to some. > > At first glance, the idea of a > native Look and Feel seems almost > like the proverbial Holy Grail. I > mean, if such a thing were > truly possible and viable, who > wouldn't want one? You still have > your single codebase across all > platforms and you just just > plug-in the particular native Look > and Feel for your target > platform and voila! World > domination will surely soon follow! > > Well, not quite. It's a great > idea but I am going out on a limb > to claim that it has *never* > worked. Ever! And by "work" I mean > so that your "not-so-native" app > looks and feels (which includes > all aspects of behaviour, not just > appearance) *exactly* like a > true native app and *no one* could > tell you that it *wasn't* a > native app. > > Yes, I know there are masses now > screaming at their monitors who > will undoubtedly cite the numerous > success stories of Swing apps > or maybe even Qt or some other > cross-platform UI toolkit and > maybe my standards/criteria are > harsher than others but I stand > by my claim that this has *never > ever* really, really, really > worked. > > OK, so why not? > > Here's my first point: I postulate > that such a noble goal is not > actually achievable. It is not > actually achievable for a number > of reasons. > > It is not actually achievable > because, in most cases, we do not > have access to the code that > implements the native controls on > each OS so, at best, we are > "guessing" when we try to emulate all > aspects of their appearance and > behaviour. Try as we may, we > will never get *every* control > exactly right and I firmly believe > that anything that purports to be > something else needs to be > *identical*. > > It is not actually achievable > because just as you feel you have > reached an acceptable level of > "compliance" (which I again wager > is never 100%), the goal posts > will move. That is, the OS vendor > will release an update and even > the minor ones can change either > the appearance or behaviour of > controls, sometimes in subtle > ways, sometimes in not so subtle > ways. Either way, there is then > going to be a period of time where > you are playing a futile game > of catch-up and during that time > your "native" controls will be > surely exposed for the impostors > they are. > > It is not actually achievable > because the same control on one OS > can look and feel/behave quite > differently on another OS which > leads to very poor levels of reuse. > > It is not actually achievable > because many controls simply can't > be emulated in using Java/JavaFX > most likely because they have > exclusive access to native system > or OS calls that are not > accessible to Java or because the > expected levels of performance > or "snappiness" cannot be achieved > using Java by any means. Even > with JNA or JNI you would be left > scratching your head in many > cases. > > And, it is not actually achievable > because it's simply too much > work to get anywhere near to > perfection! We are talking > *massive* amounts of effort and > very few people have either the > talent, the eye, the attention to > detail or the patience to see > such a project right through to > the end where *all* controls are > covered. The rock stars I > mentioned earlier are the exceptions > of course. There's clearly zero > point in emulating *some* of the > controls only; you need the *full > set* or it's just not viable. > > Finally, and to look at it another > way, what do we get even if > some super-human delivers us a > native Look and Feel for every > possible platform? Well, a > massive maintenance nightmare for a > start! This super-human would > basically be spending all their > super time and using up all their > super powers just keeping such > libraries current. > > So, if you are still with me, why > bother? Just consider if all > those rock stars (and super > heroes) concentrated all their super > efforts into either improving the > features, stability, > performance or appearance of > JavaFX itself? Just think what we > could achieve! > > And on the why bother theme, why > bother to devote all that time > and effort, spend all those > millions, tear out all that hair and > hit all those roadblocks when the > very thing we are trying to > achieve is already available? > > Yes, that's right, if you really, > really, really want to build a > native app then why don't you just > build a native app? There are > numerous tools, languages, IDEs, > toolchains and libraries that > enable you to build awesome *true* > native apps! I just don't > think JavaFX is one of them :-) > > And it doesn't have to be one of > those toolkits because JavaFX > can be used to build an entirely > different class of application > and I now strongly believe that > this is the kind of app we should > be concentrating on. That class > (or classes) of app is one that > is not so heavily dependent on the > native Look and Feel and > doesn't need to be. There are > probably hundreds of thousands of > apps that are like this. They are > everywhere and JavaFX is > *perfect* for them! > > Scott Palmer has argued that this > approach is not valid (and > sorry Scott if am inaccurately > paraphrasing you). He cites > examples such as Chrome, Firefox > and even MS Office as proof that > this approach does not work. > However, my response to that would > be to say that just because these > are examples of where the > developers got it seriously wrong, > they do not prove that this > approach can't work and isn't > working all over the marketplace. > > There is no need to develop > crappy, mistake ridden software by > using a toolkit such as JavaFX in > a way that does not attempt to > emulate the native Look and Feel > and the fact that even big > companies like Google *still* > clearly get it horribly wrong > doesn't imply that we *all* have > to be so ineffective. > > Part of my newly-found aversion to > emulated native Look and Feel > comes from my many years of both > developing and using Swing > applications. Sure, I know there > are *some* (handful?) > successful Swing apps, most > notably those developed with the > NetBeans RCP, but in general Swing > has failed to have any > penetration into serious > commercial software. Why? Well, there > are several reasons (and a lot are > due to Java itself) but, for > me, I was never satisfied with the > so-called native Look and Feel > options that come with Swing. I > have been (and still am) very > critical of the Windows Look and > Feel in Swing in particular > because, even today, there is a > vast gulf between an actual > native Windows application and a > Swing application with this Look > and Feel. So much so that I still > want to almost knock my > monitor off the desk when I am > using an application developed in > this way. For me, this is not > acceptable and such an application > could never be released as a > serious commercial product. > > And that's pretty much what this > all boils down to: developing > serious commercial software. > > If you are interested in > developing something else then these > lengthy comments (am I *still* > going?) probably do not apply to > you :-) > > So to summarise, I argue that it > is not possible to develop > serious commercial software using > emulated Look and Feel in > JavaFX or in *any* UI toolkit. I > *strongly* recommend that we > all work together to make JavaFX > as good as it can be (which is > absolutely awesome) by focusing on > the core product, the API, the > performance, the feature set, the > stability *and* the supported > platforms rather than throw good > money after bad on a *wonderful* > goal that ultimately can never be > reached... > > Just my 2 bits, > > Felix > > P.S. I surely hope I have not > offended any/all those who either > disagree with the main points or > who still believe that native > Look and Feel is viable. I remind > you all that I am on my knees > bowing with respect to the rock > stars I referred to and anyone > else working on similar projects. > Absolutely no offence is > intended, I am merely expressing > my (passionate) feelings on this > subject. > > > On 9 December 2013 19:10, > Felix Bembrick > > > wrote: > > > > On 9 December 2013 16:10, > Scott Palmer > > > wrote: > > > On Dec 8, 2013, at > 9:18 PM, Felix Bembrick > > > wrote: > > > > Firstly, it will > *never* be possible to > completely emulate the > native look > and feel. > > Sure it is. Though it may > never be practical, for > many of the > reasons you have given. > > My reasoning is: why > bother? > > Because it matters. As > computer literate > developers, we often > don't realize what trips > other people up. I get so > frustrated > with apps these days > because they have become > hard to use > simply because the > developers tried to define > their own look > and feel. For example, > Chrome and Firefox... Or > Microsoft > Office... > Where did the title bar go > in chrome? > Where have all the menus > gone in Chrome, Firefox > andOffice? I > can find them, but when I > have to play tech support > over the > phone to my parents these > changes are massive > problems. I ask > my dad to move he window > by dragging the title bar > (please > don't ask why he doesn't > know to do this himself > after decades > of computer use) and he > says "there is no title > bar"... I the > remember that yes, chrome > did that... They got rid of a > standard concept in the > OS' windowing system and > screed the end > users. > > These apps became harder > to use because of this > "innovation" in > the UI. > > Contrast this with > applications on OS X where > getting the UI > right has always been an > important priority for > developers. > Because adhering to the > system look and feel has > always been > strongly encouraged the > system is much easier to use. > > These days, many apps > do not look 100% > native and may have > their own > controls or look and > feel in general. > > Yes, but to what end? They > are now more difficult to use. > > Why not channel all > that massive > effort in constructing > an emulated native > look and feel into > simply making > JavaFX better overall? > > But I agree here. The > general look isn't the > main issue.. E.g. > little variations in color > and minor tweaks to a few > pixels > here and there don't > really matter. What does > matter is when > you change the order of > buttons, like Okay & > Cancel which have > standard places that are > different between Mac and > Windows, or > you move the About menu > item from the Application > menu on an OS > X app to the help menu! > because that is where you > find it on > Windows. Those things matter. > > > Scott > > Felix > > > > On 9 December 2013 > 12:35, Pedro Duque Vieira > >wrote: > > Thanks! > > @Jasper: Yes, > that's very > interesting! > Forgot that was > possible to do in > CSS. > > > On Mon, Dec 9, > 2013 at 12:15 > AM, Stephen > Winnall > > > wrote: > > It may be > possible to > change the > LOOK with CSS, > but not the > FEEL, which > > is > > where Java > apps have > traditionally > failed big time. > > Some things > that I don?t > think can be > changed with CSS: > > 1) texts > 2) order of > buttons > 3) escape > characters for > shortcuts > 4) menus > 5) > system-level > stuff > (double-clicking > on files, dropping > files on > applications, ?) > 6) filesystem > conventions > 7) ... > > I think FXML > can fix some > of these, but > not all. So it > seems > to me that a > LaF in JFX > will consist > of at least: > > - one > or more CSS files > - one > or more FXML files > - some > plumbing at > the system level > > It would be > nice to have a > set of proper > LaFs for each > major > platform > > with > > an appropriate > common API. > > Steve > > On 9 Dec > 2013, at > 00:20, > Jasper Potts > > > wrote: > > You can > set skin > classes > from CSS > so should > be able to do > everything > > you > > could with > Swing and > more. With > just a CSS > file and skins as > and when > needed. > > Jasper > > On Dec > 8, > 2013, > at > 3:00 > PM, > Jonathan > Giles > > > wrote: > > At > present there > are no > plans > to > introduce > any > further API > or > functionality > in > this > area, > but if > there > is > something > you > are > wanting > then > you > should > file > feature requests > in Jira. > > -- > Jonathan > > On > 9/12/2013 > 11:54 > a.m., > Pedro > Duque > Vieira > wrote: > Hi, > > Is > there > any Look > and Feel > mechanism > in > place, > like > the > one in > Swing? > > That > > doesn't > appear > to > exist.. > > Are there > any plans > to > add one? > You can > only > do > so > much > with > CSS... > > Thanks > in > advance, > best > regards, > > -- > Pedro Duque Vieira > > > > > > From felix.bembrick at gmail.com Tue Dec 10 12:03:10 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Wed, 11 Dec 2013 07:03:10 +1100 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: <52A7723D.50907@oracle.com> References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> <52A5E0BA.1010800@oracle.com> <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> <52A6041C.9080208@oracle.com> <52A6790D.2050007@oracle.com> <52A74E97.6050707@oracle.com> <52A75B56.6030008@oracle.com> <52A7723D.50907@oracle.com> Message-ID: Do you think it's either feasible or viable to the extent that a successful implementation would not have the limitations such as lack of transparency or be limited by the inability to apply Node transforms and functionality to native controls? I mean, such a large undertaking would only made sense if the end result gave us something we don't have now and that it worked well. Felix On 11 December 2013 06:57, Stephen F Northover wrote: > I was very interesting in heavyweight integration a while back but could > not get anyone very enthusiastic about it. > > Steve > > > On 2013-12-10 1:35 PM, Felix Bembrick wrote: > > Stephen, why do you refer to this discussion as "academic"? > > Felix > > > > On 11 December 2013 05:20, Stephen F Northover < > steve.x.northover at oracle.com> wrote: > >> Yes, if it helps an application ship using the components and technology >> they need to make their product successful. In any case, this discussion >> is academic. >> >> Steve >> >> >> On 2013-12-10 12:25 PM, Anthony Petrov wrote: >> >>> We have implemented HW/LW components mixing for AWT/Swing in the past >>> [1]. However, the feature is very limited (no transparency support, etc.), >>> and the limitations come from native system capabilities that can't be >>> worked around easily. >>> >>> Do we really want something limited like this in FX? >>> >>> [1] >>> http://www.oracle.com/technetwork/articles/java/mixing-components-433992.html >>> >>> -- >>> best regards, >>> Anthony >>> >>> On 12/10/2013 06:14 AM, Stephen F Northover wrote: >>> >>>> At one point, I was very interested in seeing this happen but there >>>> wasn't the band width and resources. >>>> >>>> Steve >>>> >>>> On 2013-12-09 1:00 PM, Felix Bembrick wrote: >>>> >>>>> What can we expect from the JavaFX team in this regard in the future? >>>>> I know we have talked about mixing lightweight and heavyweight >>>>> controls in the same context but is it going to happen? Is this >>>>> planned for JFX9 perhaps? Is it *really* even feasible? >>>>> >>>>> On 10 Dec 2013, at 4:55, Stephen F Northover >>>>>> wrote: >>>>>> >>>>>> Today, you can only exercise the choice by writing native code and >>>>>> you face heavyweight / lightweight issues depending on the platform >>>>>> and API. >>>>>> >>>>>> Steve >>>>>> >>>>>> On 2013-12-09 12:31 PM, Felix Bembrick wrote: >>>>>>> Stephen, I thoroughly agree that JavaFX is by far the best choice >>>>>>> for non-native apps/widgets which is precisely my point. They are >>>>>>> the kind of apps perfect for using JavaFX. >>>>>>> >>>>>>> But you refer to giving people the choice to go native where >>>>>>> appropriate. How can I exercise that choice? Where is the support >>>>>>> for native widgets in JavaFX? >>>>>>> >>>>>>> And isn't the real Holy Grail being able to mix native and >>>>>>> non-native widgets in the same app with all features of Node being >>>>>>> available to every widget, with all the effects and transforms, all >>>>>>> the CSS/styling and with all the performance? >>>>>>> >>>>>>> Could JavaFX ever be such a toolkit? >>>>>>> >>>>>>> On 10 Dec 2013, at 2:24, Stephen F Northover >>>>>>>> wrote: >>>>>>>> >>>>>>>> Here are my thoughts on the matter. Give people the choice of >>>>>>>> whether to use native or non-native components. In some >>>>>>>> applications, everything will be non-native. In others, only the >>>>>>>> main content area will be non-native and the rest will be native. >>>>>>>> In some mobile applications, perhaps the preference pages will be >>>>>>>> native and other parts will not. >>>>>>>> >>>>>>>> JavaFX is the best choice for non-native widgets and we are >>>>>>>> committed to making it the best toolkit all around. >>>>>>>> >>>>>>>> Steve >>>>>>>> >>>>>>>> On 2013-12-09 9:49 AM, Scott Palmer wrote: >>>>>>>>> I agree that perfect sync with native look and feels is not what >>>>>>>>> is required and not worth the effort. I do think though that >>>>>>>>> major concepts in the platform's look and feel should (must!) be >>>>>>>>> followed or the user experience is ruined. >>>>>>>>> >>>>>>>>> The example of the order of the ok and cancel buttons has been >>>>>>>>> brought up already. But that isn't even the most important one. >>>>>>>>> >>>>>>>>> Things like shortcut keys. CTRL-C to copy on windows, Command-C to >>>>>>>>> copy on Mac. Standard menu layouts, right-click behaviour and >>>>>>>>> standard context menus. They just have to be in the right place. >>>>>>>>> That they look different doesn't matter as much. And this doesn't >>>>>>>>> mean that you can't try new ideas for UI. But basic things that >>>>>>>>> users expect to work should still work. E.g. Command-Q on OS X >>>>>>>>> better quit the app :-) >>>>>>>>> >>>>>>>>> As noted already with my reference to Office and browsers.. Fully >>>>>>>>> native apps can be non-compliant with the platforms look and >>>>>>>>> feel. So this isn't really a Java-specific issue. >>>>>>>>> >>>>>>>>> Scott >>>>>>>>> >>>>>>>>> On Dec 9, 2013, at 4:24 AM, Felix Bembrick >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> Spoiler: This is something I have become intensely passionate >>>>>>>>>> about so this is likely to be a long post... >>>>>>>>>> >>>>>>>>>> OK, so this (hijacked) thread started out as a discussion of >>>>>>>>>> options in JavaFX for implementing "Look and Feel". I think >>>>>>>>>> everyone agrees that even with CSS and skins, JavaFX lacks the >>>>>>>>>> built-in ability to define a true Look *and* Feel. Further to >>>>>>>>>> this, there has been discussion on Twitter and elsewhere >>>>>>>>>> regarding *native* Look and Feel and the merits of attempting >>>>>>>>>> such an animal with JavaFX. >>>>>>>>>> >>>>>>>>>> It is on this topic that I would like to add my 2 bits (as I am >>>>>>>>>> known to do)! I was going to use my blog http://justmy2bits.com >>>>>>>>>> but decided I would be much more likely to be able to engage >>>>>>>>>> fellow JavaFX developers in a positive, polite and respectful >>>>>>>>>> conversation here. >>>>>>>>>> >>>>>>>>>> First, anyone who may follow me on Twitter, in this forum or when >>>>>>>>>> I post in other forums (anyone?) will probably be a little bit >>>>>>>>>> confused as to where I actually stand on this issue. Well, this >>>>>>>>>> stems from the fact that I have been giving confusing (if not >>>>>>>>>> conflicting) input into various threads on this topic for quite a >>>>>>>>>> while. >>>>>>>>>> >>>>>>>>>> Why? >>>>>>>>>> >>>>>>>>>> Well, because until very recently, I myself was completely torn >>>>>>>>>> on the subject of native Look and Feel. In fact, I seemed to >>>>>>>>>> oscillate on an almost daily basis from thinking it's a great, >>>>>>>>>> achievable idea to dismissing such an idea on various grounds. I >>>>>>>>>> am swaying so much because I have so much riding on successful >>>>>>>>>> ports of JavaFX to iOS and Android and because those ports depend >>>>>>>>>> heavily on resolving this issue once and for all. >>>>>>>>>> >>>>>>>>>> Now I have had something of an epiphany and reached a >>>>>>>>>> conclusion. I now do not believe that pouring large (massive?) >>>>>>>>>> amounts of resources into the painstaking task of building a >>>>>>>>>> fully compliant, fully performant native Look and Feel is >>>>>>>>>> justifiable or worth the effort. And let's be clear about this: >>>>>>>>>> it is a *lot* of effort! >>>>>>>>>> >>>>>>>>>> But before I proceed I just want to say categorically how much I >>>>>>>>>> admire the thoroughly awesome work/efforts of the likes of Pedro >>>>>>>>>> DV, Claudine Zillmann, Hendrik Ebbers et. al. in (trying ever so >>>>>>>>>> hard) to bring native Look and Feel to various OS/platforms with >>>>>>>>>> JavaFX. I cannot put in words how much I am in awe of the >>>>>>>>>> commitment, the attention to detail, the technical prowess, the >>>>>>>>>> artistry and the drive of these fantastic people. Their work >>>>>>>>>> will undoubtedly be extremely useful to many developers worldwide. >>>>>>>>>> >>>>>>>>>> I want to make all that *perfectly clear* because now I am going >>>>>>>>>> to explain why I (probably) will not be one of those people and >>>>>>>>>> (hopefully) do it with the utmost respect for the aforementioned >>>>>>>>>> rock stars :-) >>>>>>>>>> >>>>>>>>>> Right, so back to the issue of whether to or not to implement or >>>>>>>>>> use a native Look and Feel. Some of the following comments have >>>>>>>>>> already been made by me on other networks and in other forums so >>>>>>>>>> apologies if it seems a bit repetitive to some. >>>>>>>>>> >>>>>>>>>> At first glance, the idea of a native Look and Feel seems almost >>>>>>>>>> like the proverbial Holy Grail. I mean, if such a thing were >>>>>>>>>> truly possible and viable, who wouldn't want one? You still have >>>>>>>>>> your single codebase across all platforms and you just just >>>>>>>>>> plug-in the particular native Look and Feel for your target >>>>>>>>>> platform and voila! World domination will surely soon follow! >>>>>>>>>> >>>>>>>>>> Well, not quite. It's a great idea but I am going out on a limb >>>>>>>>>> to claim that it has *never* worked. Ever! And by "work" I mean >>>>>>>>>> so that your "not-so-native" app looks and feels (which includes >>>>>>>>>> all aspects of behaviour, not just appearance) *exactly* like a >>>>>>>>>> true native app and *no one* could tell you that it *wasn't* a >>>>>>>>>> native app. >>>>>>>>>> >>>>>>>>>> Yes, I know there are masses now screaming at their monitors who >>>>>>>>>> will undoubtedly cite the numerous success stories of Swing apps >>>>>>>>>> or maybe even Qt or some other cross-platform UI toolkit and >>>>>>>>>> maybe my standards/criteria are harsher than others but I stand >>>>>>>>>> by my claim that this has *never ever* really, really, really >>>>>>>>>> worked. >>>>>>>>>> >>>>>>>>>> OK, so why not? >>>>>>>>>> >>>>>>>>>> Here's my first point: I postulate that such a noble goal is not >>>>>>>>>> actually achievable. It is not actually achievable for a number >>>>>>>>>> of reasons. >>>>>>>>>> >>>>>>>>>> It is not actually achievable because, in most cases, we do not >>>>>>>>>> have access to the code that implements the native controls on >>>>>>>>>> each OS so, at best, we are "guessing" when we try to emulate all >>>>>>>>>> aspects of their appearance and behaviour. Try as we may, we >>>>>>>>>> will never get *every* control exactly right and I firmly believe >>>>>>>>>> that anything that purports to be something else needs to be >>>>>>>>>> *identical*. >>>>>>>>>> >>>>>>>>>> It is not actually achievable because just as you feel you have >>>>>>>>>> reached an acceptable level of "compliance" (which I again wager >>>>>>>>>> is never 100%), the goal posts will move. That is, the OS vendor >>>>>>>>>> will release an update and even the minor ones can change either >>>>>>>>>> the appearance or behaviour of controls, sometimes in subtle >>>>>>>>>> ways, sometimes in not so subtle ways. Either way, there is then >>>>>>>>>> going to be a period of time where you are playing a futile game >>>>>>>>>> of catch-up and during that time your "native" controls will be >>>>>>>>>> surely exposed for the impostors they are. >>>>>>>>>> >>>>>>>>>> It is not actually achievable because the same control on one OS >>>>>>>>>> can look and feel/behave quite differently on another OS which >>>>>>>>>> leads to very poor levels of reuse. >>>>>>>>>> >>>>>>>>>> It is not actually achievable because many controls simply can't >>>>>>>>>> be emulated in using Java/JavaFX most likely because they have >>>>>>>>>> exclusive access to native system or OS calls that are not >>>>>>>>>> accessible to Java or because the expected levels of performance >>>>>>>>>> or "snappiness" cannot be achieved using Java by any means. Even >>>>>>>>>> with JNA or JNI you would be left scratching your head in many >>>>>>>>>> cases. >>>>>>>>>> >>>>>>>>>> And, it is not actually achievable because it's simply too much >>>>>>>>>> work to get anywhere near to perfection! We are talking >>>>>>>>>> *massive* amounts of effort and very few people have either the >>>>>>>>>> talent, the eye, the attention to detail or the patience to see >>>>>>>>>> such a project right through to the end where *all* controls are >>>>>>>>>> covered. The rock stars I mentioned earlier are the exceptions >>>>>>>>>> of course. There's clearly zero point in emulating *some* of the >>>>>>>>>> controls only; you need the *full set* or it's just not viable. >>>>>>>>>> >>>>>>>>>> Finally, and to look at it another way, what do we get even if >>>>>>>>>> some super-human delivers us a native Look and Feel for every >>>>>>>>>> possible platform? Well, a massive maintenance nightmare for a >>>>>>>>>> start! This super-human would basically be spending all their >>>>>>>>>> super time and using up all their super powers just keeping such >>>>>>>>>> libraries current. >>>>>>>>>> >>>>>>>>>> So, if you are still with me, why bother? Just consider if all >>>>>>>>>> those rock stars (and super heroes) concentrated all their super >>>>>>>>>> efforts into either improving the features, stability, >>>>>>>>>> performance or appearance of JavaFX itself? Just think what we >>>>>>>>>> could achieve! >>>>>>>>>> >>>>>>>>>> And on the why bother theme, why bother to devote all that time >>>>>>>>>> and effort, spend all those millions, tear out all that hair and >>>>>>>>>> hit all those roadblocks when the very thing we are trying to >>>>>>>>>> achieve is already available? >>>>>>>>>> >>>>>>>>>> Yes, that's right, if you really, really, really want to build a >>>>>>>>>> native app then why don't you just build a native app? There are >>>>>>>>>> numerous tools, languages, IDEs, toolchains and libraries that >>>>>>>>>> enable you to build awesome *true* native apps! I just don't >>>>>>>>>> think JavaFX is one of them :-) >>>>>>>>>> >>>>>>>>>> And it doesn't have to be one of those toolkits because JavaFX >>>>>>>>>> can be used to build an entirely different class of application >>>>>>>>>> and I now strongly believe that this is the kind of app we should >>>>>>>>>> be concentrating on. That class (or classes) of app is one that >>>>>>>>>> is not so heavily dependent on the native Look and Feel and >>>>>>>>>> doesn't need to be. There are probably hundreds of thousands of >>>>>>>>>> apps that are like this. They are everywhere and JavaFX is >>>>>>>>>> *perfect* for them! >>>>>>>>>> >>>>>>>>>> Scott Palmer has argued that this approach is not valid (and >>>>>>>>>> sorry Scott if am inaccurately paraphrasing you). He cites >>>>>>>>>> examples such as Chrome, Firefox and even MS Office as proof that >>>>>>>>>> this approach does not work. However, my response to that would >>>>>>>>>> be to say that just because these are examples of where the >>>>>>>>>> developers got it seriously wrong, they do not prove that this >>>>>>>>>> approach can't work and isn't working all over the marketplace. >>>>>>>>>> >>>>>>>>>> There is no need to develop crappy, mistake ridden software by >>>>>>>>>> using a toolkit such as JavaFX in a way that does not attempt to >>>>>>>>>> emulate the native Look and Feel and the fact that even big >>>>>>>>>> companies like Google *still* clearly get it horribly wrong >>>>>>>>>> doesn't imply that we *all* have to be so ineffective. >>>>>>>>>> >>>>>>>>>> Part of my newly-found aversion to emulated native Look and Feel >>>>>>>>>> comes from my many years of both developing and using Swing >>>>>>>>>> applications. Sure, I know there are *some* (handful?) >>>>>>>>>> successful Swing apps, most notably those developed with the >>>>>>>>>> NetBeans RCP, but in general Swing has failed to have any >>>>>>>>>> penetration into serious commercial software. Why? Well, there >>>>>>>>>> are several reasons (and a lot are due to Java itself) but, for >>>>>>>>>> me, I was never satisfied with the so-called native Look and Feel >>>>>>>>>> options that come with Swing. I have been (and still am) very >>>>>>>>>> critical of the Windows Look and Feel in Swing in particular >>>>>>>>>> because, even today, there is a vast gulf between an actual >>>>>>>>>> native Windows application and a Swing application with this Look >>>>>>>>>> and Feel. So much so that I still want to almost knock my >>>>>>>>>> monitor off the desk when I am using an application developed in >>>>>>>>>> this way. For me, this is not acceptable and such an application >>>>>>>>>> could never be released as a serious commercial product. >>>>>>>>>> >>>>>>>>>> And that's pretty much what this all boils down to: developing >>>>>>>>>> serious commercial software. >>>>>>>>>> >>>>>>>>>> If you are interested in developing something else then these >>>>>>>>>> lengthy comments (am I *still* going?) probably do not apply to >>>>>>>>>> you :-) >>>>>>>>>> >>>>>>>>>> So to summarise, I argue that it is not possible to develop >>>>>>>>>> serious commercial software using emulated Look and Feel in >>>>>>>>>> JavaFX or in *any* UI toolkit. I *strongly* recommend that we >>>>>>>>>> all work together to make JavaFX as good as it can be (which is >>>>>>>>>> absolutely awesome) by focusing on the core product, the API, the >>>>>>>>>> performance, the feature set, the stability *and* the supported >>>>>>>>>> platforms rather than throw good money after bad on a *wonderful* >>>>>>>>>> goal that ultimately can never be reached... >>>>>>>>>> >>>>>>>>>> Just my 2 bits, >>>>>>>>>> >>>>>>>>>> Felix >>>>>>>>>> >>>>>>>>>> P.S. I surely hope I have not offended any/all those who either >>>>>>>>>> disagree with the main points or who still believe that native >>>>>>>>>> Look and Feel is viable. I remind you all that I am on my knees >>>>>>>>>> bowing with respect to the rock stars I referred to and anyone >>>>>>>>>> else working on similar projects. Absolutely no offence is >>>>>>>>>> intended, I am merely expressing my (passionate) feelings on this >>>>>>>>>> subject. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 9 December 2013 19:10, Felix Bembrick >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On 9 December 2013 16:10, Scott Palmer >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Dec 8, 2013, at 9:18 PM, Felix Bembrick >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> Firstly, it will *never* be possible to completely emulate the >>>>>>>>>>>>> native look >>>>>>>>>>>>> and feel. >>>>>>>>>>>>> >>>>>>>>>>>> Sure it is. Though it may never be practical, for many of the >>>>>>>>>>>> reasons you have given. >>>>>>>>>>>> >>>>>>>>>>>> My reasoning is: why bother? >>>>>>>>>>>>> >>>>>>>>>>>> Because it matters. As computer literate developers, we often >>>>>>>>>>>> don't realize what trips other people up. I get so frustrated >>>>>>>>>>>> with apps these days because they have become hard to use >>>>>>>>>>>> simply because the developers tried to define their own look >>>>>>>>>>>> and feel. For example, Chrome and Firefox... Or Microsoft >>>>>>>>>>>> Office... >>>>>>>>>>>> Where did the title bar go in chrome? >>>>>>>>>>>> Where have all the menus gone in Chrome, Firefox andOffice? I >>>>>>>>>>>> can find them, but when I have to play tech support over the >>>>>>>>>>>> phone to my parents these changes are massive problems. I ask >>>>>>>>>>>> my dad to move he window by dragging the title bar (please >>>>>>>>>>>> don't ask why he doesn't know to do this himself after decades >>>>>>>>>>>> of computer use) and he says "there is no title bar"... I the >>>>>>>>>>>> remember that yes, chrome did that... They got rid of a >>>>>>>>>>>> standard concept in the OS' windowing system and screed the end >>>>>>>>>>>> users. >>>>>>>>>>>> >>>>>>>>>>>> These apps became harder to use because of this "innovation" in >>>>>>>>>>>> the UI. >>>>>>>>>>>> >>>>>>>>>>>> Contrast this with applications on OS X where getting the UI >>>>>>>>>>>> right has always been an important priority for developers. >>>>>>>>>>>> Because adhering to the system look and feel has always been >>>>>>>>>>>> strongly encouraged the system is much easier to use. >>>>>>>>>>>> >>>>>>>>>>>> These days, many apps do not look 100% native and may have >>>>>>>>>>>>> their own >>>>>>>>>>>>> controls or look and feel in general. >>>>>>>>>>>>> >>>>>>>>>>>> Yes, but to what end? They are now more difficult to use. >>>>>>>>>>>> >>>>>>>>>>>> Why not channel all that massive >>>>>>>>>>>>> effort in constructing an emulated native look and feel into >>>>>>>>>>>>> simply making >>>>>>>>>>>>> JavaFX better overall? >>>>>>>>>>>>> >>>>>>>>>>>> But I agree here. The general look isn't the main issue.. E.g. >>>>>>>>>>>> little variations in color and minor tweaks to a few pixels >>>>>>>>>>>> here and there don't really matter. What does matter is when >>>>>>>>>>>> you change the order of buttons, like Okay & Cancel which have >>>>>>>>>>>> standard places that are different between Mac and Windows, or >>>>>>>>>>>> you move the About menu item from the Application menu on an OS >>>>>>>>>>>> X app to the help menu! because that is where you find it on >>>>>>>>>>>> Windows. Those things matter. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Scott >>>>>>>>>>>> >>>>>>>>>>>> Felix >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On 9 December 2013 12:35, Pedro Duque Vieira >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks! >>>>>>>>>>>>>> >>>>>>>>>>>>>> @Jasper: Yes, that's very interesting! Forgot that was >>>>>>>>>>>>>> possible to do in >>>>>>>>>>>>>> CSS. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> It may be possible to change the LOOK with CSS, but not the >>>>>>>>>>>>>>> FEEL, which >>>>>>>>>>>>>>> >>>>>>>>>>>>>> is >>>>>>>>>>>>>> >>>>>>>>>>>>>>> where Java apps have traditionally failed big time. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Some things that I don?t think can be changed with CSS: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> 1) texts >>>>>>>>>>>>>>> 2) order of buttons >>>>>>>>>>>>>>> 3) escape characters for shortcuts >>>>>>>>>>>>>>> 4) menus >>>>>>>>>>>>>>> 5) system-level stuff (double-clicking on files, dropping >>>>>>>>>>>>>>> files on >>>>>>>>>>>>>>> applications, ?) >>>>>>>>>>>>>>> 6) filesystem conventions >>>>>>>>>>>>>>> 7) ... >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I think FXML can fix some of these, but not all. So it seems >>>>>>>>>>>>>>> to me that a >>>>>>>>>>>>>>> LaF in JFX will consist of at least: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> - one or more CSS files >>>>>>>>>>>>>>> - one or more FXML files >>>>>>>>>>>>>>> - some plumbing at the system level >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> It would be nice to have a set of proper LaFs for each major >>>>>>>>>>>>>>> platform >>>>>>>>>>>>>>> >>>>>>>>>>>>>> with >>>>>>>>>>>>>> >>>>>>>>>>>>>>> an appropriate common API. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Steve >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On 9 Dec 2013, at 00:20, Jasper Potts >>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> You can set skin classes from CSS so should be able to do >>>>>>>>>>>>>>>> everything >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> you >>>>>>>>>>>>>> >>>>>>>>>>>>>>> could with Swing and more. With just a CSS file and skins as >>>>>>>>>>>>>>> and when >>>>>>>>>>>>>>> needed. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Jasper >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> At present there are no plans to introduce any further API >>>>>>>>>>>>>>>>> or >>>>>>>>>>>>>>>>> functionality in this area, but if there is something you >>>>>>>>>>>>>>>>> are wanting >>>>>>>>>>>>>>>>> then you should file feature requests in Jira. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> -- Jonathan >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >>>>>>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Is there any Look and Feel mechanism in place, like the >>>>>>>>>>>>>>>>>> one in Swing? >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> That >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> doesn't appear to exist.. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Are there any plans to add one? You can only do so much >>>>>>>>>>>>>>>>>> with CSS... >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Thanks in advance, best regards, >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>> Pedro Duque Vieira >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>> >>>> >>>> >> > > From steve.x.northover at oracle.com Tue Dec 10 12:11:15 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Tue, 10 Dec 2013 15:11:15 -0500 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> <52A5E0BA.1010800@oracle.com> <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> <52A6041C.9080208@oracle.com> <52A6790D.2050007@oracle.com> <52A74E97.6050707@oracle.com> <52A75B56.6030008@oracle.com> <52A7723D.50907@oracle.com> Message-ID: <52A77563.3080801@oracle.com> As I said before, it would be up to the application. If it was critical that your application do something like embed Excel, then it could live with the limitations. Perhaps you work in a company where you have a custom native control that you are already embedding in Swing and you want to migrate to FX. These sorts of applications could live with the limitations. Steve On 2013-12-10 3:03 PM, Felix Bembrick wrote: > Do you think it's either feasible or viable to the extent that a > successful implementation would not have the limitations such as lack > of transparency or be limited by the inability to apply Node > transforms and functionality to native controls? I mean, such a large > undertaking would only made sense if the end result gave us something > we don't have now and that it worked well. > > Felix > > > > On 11 December 2013 06:57, Stephen F Northover > > > wrote: > > I was very interesting in heavyweight integration a while back but > could not get anyone very enthusiastic about it. > > Steve > > > On 2013-12-10 1:35 PM, Felix Bembrick wrote: >> Stephen, why do you refer to this discussion as "academic"? >> >> Felix >> >> >> >> On 11 December 2013 05:20, Stephen F Northover >> > > wrote: >> >> Yes, if it helps an application ship using the components and >> technology they need to make their product successful. In >> any case, this discussion is academic. >> >> Steve >> >> >> On 2013-12-10 12:25 PM, Anthony Petrov wrote: >> >> We have implemented HW/LW components mixing for AWT/Swing >> in the past [1]. However, the feature is very limited (no >> transparency support, etc.), and the limitations come >> from native system capabilities that can't be worked >> around easily. >> >> Do we really want something limited like this in FX? >> >> [1] >> http://www.oracle.com/technetwork/articles/java/mixing-components-433992.html >> >> -- >> best regards, >> Anthony >> >> On 12/10/2013 06:14 AM, Stephen F Northover wrote: >> >> At one point, I was very interested in seeing this >> happen but there >> wasn't the band width and resources. >> >> Steve >> >> On 2013-12-09 1:00 PM, Felix Bembrick wrote: >> >> What can we expect from the JavaFX team in this >> regard in the future? >> I know we have talked about mixing lightweight >> and heavyweight >> controls in the same context but is it going to >> happen? Is this >> planned for JFX9 perhaps? Is it *really* even >> feasible? >> >> On 10 Dec 2013, at 4:55, Stephen F Northover >> > > wrote: >> >> Today, you can only exercise the choice by >> writing native code and >> you face heavyweight / lightweight issues >> depending on the platform >> and API. >> >> Steve >> >> On 2013-12-09 12:31 PM, Felix Bembrick wrote: >> Stephen, I thoroughly agree that JavaFX >> is by far the best choice >> for non-native apps/widgets which is >> precisely my point. They are >> the kind of apps perfect for using JavaFX. >> >> But you refer to giving people the choice >> to go native where >> appropriate. How can I exercise that >> choice? Where is the support >> for native widgets in JavaFX? >> >> And isn't the real Holy Grail being able >> to mix native and >> non-native widgets in the same app with >> all features of Node being >> available to every widget, with all the >> effects and transforms, all >> the CSS/styling and with all the performance? >> >> Could JavaFX ever be such a toolkit? >> >> On 10 Dec 2013, at 2:24, Stephen F >> Northover >> > > wrote: >> >> Here are my thoughts on the matter. >> Give people the choice of >> whether to use native or non-native >> components. In some >> applications, everything will be >> non-native. In others, only the >> main content area will be non-native >> and the rest will be native. >> In some mobile applications, perhaps >> the preference pages will be >> native and other parts will not. >> >> JavaFX is the best choice for >> non-native widgets and we are >> committed to making it the best >> toolkit all around. >> >> Steve >> >> On 2013-12-09 9:49 AM, Scott >> Palmer wrote: >> I agree that perfect sync with >> native look and feels is not what >> is required and not worth the >> effort. I do think though that >> major concepts in the platform's >> look and feel should (must!) be >> followed or the user experience >> is ruined. >> >> The example of the order of the >> ok and cancel buttons has been >> brought up already. But that >> isn't even the most important one. >> >> Things like shortcut keys. CTRL-C >> to copy on windows, Command-C to >> copy on Mac. Standard menu >> layouts, right-click behaviour and >> standard context menus. They >> just have to be in the right place. >> That they look different doesn't >> matter as much. And this doesn't >> mean that you can't try new ideas >> for UI. But basic things that >> users expect to work should still >> work. E.g. Command-Q on OS X >> better quit the app :-) >> >> As noted already with my >> reference to Office and >> browsers.. Fully >> native apps can be non-compliant >> with the platforms look and >> feel. So this isn't really a >> Java-specific issue. >> >> Scott >> >> On Dec 9, 2013, at 4:24 AM, >> Felix Bembrick >> > > >> wrote: >> >> Spoiler: This is something I >> have become intensely passionate >> about so this is likely to be >> a long post... >> >> OK, so this (hijacked) thread >> started out as a discussion of >> options in JavaFX for >> implementing "Look and Feel". >> I think >> everyone agrees that even >> with CSS and skins, JavaFX >> lacks the >> built-in ability to define a >> true Look *and* Feel. Further to >> this, there has been >> discussion on Twitter and >> elsewhere >> regarding *native* Look and >> Feel and the merits of attempting >> such an animal with JavaFX. >> >> It is on this topic that I >> would like to add my 2 bits >> (as I am >> known to do)! I was going to >> use my blog >> http://justmy2bits.com >> but decided I would be much >> more likely to be able to engage >> fellow JavaFX developers in a >> positive, polite and respectful >> conversation here. >> >> First, anyone who may follow >> me on Twitter, in this forum >> or when >> I post in other forums >> (anyone?) will probably be a >> little bit >> confused as to where I >> actually stand on this issue. >> Well, this >> stems from the fact that I >> have been giving confusing >> (if not >> conflicting) input into >> various threads on this topic >> for quite a >> while. >> >> Why? >> >> Well, because until very >> recently, I myself was >> completely torn >> on the subject of native Look >> and Feel. In fact, I seemed to >> oscillate on an almost daily >> basis from thinking it's a great, >> achievable idea to dismissing >> such an idea on various >> grounds. I >> am swaying so much because I >> have so much riding on successful >> ports of JavaFX to iOS and >> Android and because those >> ports depend >> heavily on resolving this >> issue once and for all. >> >> Now I have had something of >> an epiphany and reached a >> conclusion. I now do not >> believe that pouring large >> (massive?) >> amounts of resources into the >> painstaking task of building a >> fully compliant, fully >> performant native Look and >> Feel is >> justifiable or worth the >> effort. And let's be clear >> about this: >> it is a *lot* of effort! >> >> But before I proceed I just >> want to say categorically how >> much I >> admire the thoroughly awesome >> work/efforts of the likes of >> Pedro >> DV, Claudine Zillmann, >> Hendrik Ebbers et. al. in >> (trying ever so >> hard) to bring native Look >> and Feel to various >> OS/platforms with >> JavaFX. I cannot put in >> words how much I am in awe of the >> commitment, the attention to >> detail, the technical >> prowess, the >> artistry and the drive of >> these fantastic people. Their >> work >> will undoubtedly be extremely >> useful to many developers >> worldwide. >> >> I want to make all that >> *perfectly clear* because now >> I am going >> to explain why I (probably) >> will not be one of those >> people and >> (hopefully) do it with the >> utmost respect for the >> aforementioned >> rock stars :-) >> >> Right, so back to the issue >> of whether to or not to >> implement or >> use a native Look and Feel. >> Some of the following >> comments have >> already been made by me on >> other networks and in other >> forums so >> apologies if it seems a bit >> repetitive to some. >> >> At first glance, the idea of >> a native Look and Feel seems >> almost >> like the proverbial Holy >> Grail. I mean, if such a >> thing were >> truly possible and viable, >> who wouldn't want one? You >> still have >> your single codebase across >> all platforms and you just just >> plug-in the particular native >> Look and Feel for your target >> platform and voila! World >> domination will surely soon >> follow! >> >> Well, not quite. It's a >> great idea but I am going out >> on a limb >> to claim that it has *never* >> worked. Ever! And by "work" >> I mean >> so that your "not-so-native" >> app looks and feels (which >> includes >> all aspects of behaviour, not >> just appearance) *exactly* like a >> true native app and *no one* >> could tell you that it *wasn't* a >> native app. >> >> Yes, I know there are masses >> now screaming at their >> monitors who >> will undoubtedly cite the >> numerous success stories of >> Swing apps >> or maybe even Qt or some >> other cross-platform UI >> toolkit and >> maybe my standards/criteria >> are harsher than others but I >> stand >> by my claim that this has >> *never ever* really, really, >> really >> worked. >> >> OK, so why not? >> >> Here's my first point: I >> postulate that such a noble >> goal is not >> actually achievable. It is >> not actually achievable for a >> number >> of reasons. >> >> It is not actually achievable >> because, in most cases, we do not >> have access to the code that >> implements the native controls on >> each OS so, at best, we are >> "guessing" when we try to >> emulate all >> aspects of their appearance >> and behaviour. Try as we may, we >> will never get *every* >> control exactly right and I >> firmly believe >> that anything that purports >> to be something else needs to be >> *identical*. >> >> It is not actually achievable >> because just as you feel you have >> reached an acceptable level >> of "compliance" (which I >> again wager >> is never 100%), the goal >> posts will move. That is, >> the OS vendor >> will release an update and >> even the minor ones can >> change either >> the appearance or behaviour >> of controls, sometimes in subtle >> ways, sometimes in not so >> subtle ways. Either way, >> there is then >> going to be a period of time >> where you are playing a >> futile game >> of catch-up and during that >> time your "native" controls >> will be >> surely exposed for the >> impostors they are. >> >> It is not actually achievable >> because the same control on >> one OS >> can look and feel/behave >> quite differently on another >> OS which >> leads to very poor levels of >> reuse. >> >> It is not actually achievable >> because many controls simply >> can't >> be emulated in using >> Java/JavaFX most likely >> because they have >> exclusive access to native >> system or OS calls that are not >> accessible to Java or because >> the expected levels of >> performance >> or "snappiness" cannot be >> achieved using Java by any >> means. Even >> with JNA or JNI you would be >> left scratching your head in many >> cases. >> >> And, it is not actually >> achievable because it's >> simply too much >> work to get anywhere near to >> perfection! We are talking >> *massive* amounts of effort >> and very few people have >> either the >> talent, the eye, the >> attention to detail or the >> patience to see >> such a project right through >> to the end where *all* >> controls are >> covered. The rock stars I >> mentioned earlier are the >> exceptions >> of course. There's clearly >> zero point in emulating >> *some* of the >> controls only; you need the >> *full set* or it's just not >> viable. >> >> Finally, and to look at it >> another way, what do we get >> even if >> some super-human delivers us >> a native Look and Feel for every >> possible platform? Well, a >> massive maintenance nightmare >> for a >> start! This super-human >> would basically be spending >> all their >> super time and using up all >> their super powers just >> keeping such >> libraries current. >> >> So, if you are still with me, >> why bother? Just consider if all >> those rock stars (and super >> heroes) concentrated all >> their super >> efforts into either improving >> the features, stability, >> performance or appearance of >> JavaFX itself? Just think >> what we >> could achieve! >> >> And on the why bother theme, >> why bother to devote all that >> time >> and effort, spend all those >> millions, tear out all that >> hair and >> hit all those roadblocks when >> the very thing we are trying to >> achieve is already available? >> >> Yes, that's right, if you >> really, really, really want >> to build a >> native app then why don't you >> just build a native app? >> There are >> numerous tools, languages, >> IDEs, toolchains and >> libraries that >> enable you to build awesome >> *true* native apps! I just don't >> think JavaFX is one of them :-) >> >> And it doesn't have to be one >> of those toolkits because JavaFX >> can be used to build an >> entirely different class of >> application >> and I now strongly believe >> that this is the kind of app >> we should >> be concentrating on. That >> class (or classes) of app is >> one that >> is not so heavily dependent >> on the native Look and Feel and >> doesn't need to be. There >> are probably hundreds of >> thousands of >> apps that are like this. >> They are everywhere and >> JavaFX is >> *perfect* for them! >> >> Scott Palmer has argued that >> this approach is not valid (and >> sorry Scott if am >> inaccurately paraphrasing >> you). He cites >> examples such as Chrome, >> Firefox and even MS Office as >> proof that >> this approach does not work. >> However, my response to that >> would >> be to say that just because >> these are examples of where the >> developers got it seriously >> wrong, they do not prove that >> this >> approach can't work and isn't >> working all over the marketplace. >> >> There is no need to develop >> crappy, mistake ridden >> software by >> using a toolkit such as >> JavaFX in a way that does not >> attempt to >> emulate the native Look and >> Feel and the fact that even big >> companies like Google *still* >> clearly get it horribly wrong >> doesn't imply that we *all* >> have to be so ineffective. >> >> Part of my newly-found >> aversion to emulated native >> Look and Feel >> comes from my many years of >> both developing and using Swing >> applications. Sure, I know >> there are *some* (handful?) >> successful Swing apps, most >> notably those developed with the >> NetBeans RCP, but in general >> Swing has failed to have any >> penetration into serious >> commercial software. Why? >> Well, there >> are several reasons (and a >> lot are due to Java itself) >> but, for >> me, I was never satisfied >> with the so-called native >> Look and Feel >> options that come with Swing. >> I have been (and still am) very >> critical of the Windows Look >> and Feel in Swing in particular >> because, even today, there is >> a vast gulf between an actual >> native Windows application >> and a Swing application with >> this Look >> and Feel. So much so that I >> still want to almost knock my >> monitor off the desk when I >> am using an application >> developed in >> this way. For me, this is >> not acceptable and such an >> application >> could never be released as a >> serious commercial product. >> >> And that's pretty much what >> this all boils down to: >> developing >> serious commercial software. >> >> If you are interested in >> developing something else >> then these >> lengthy comments (am I >> *still* going?) probably do >> not apply to >> you :-) >> >> So to summarise, I argue that >> it is not possible to develop >> serious commercial software >> using emulated Look and Feel in >> JavaFX or in *any* UI >> toolkit. I *strongly* >> recommend that we >> all work together to make >> JavaFX as good as it can be >> (which is >> absolutely awesome) by >> focusing on the core product, >> the API, the >> performance, the feature set, >> the stability *and* the supported >> platforms rather than throw >> good money after bad on a >> *wonderful* >> goal that ultimately can >> never be reached... >> >> Just my 2 bits, >> >> Felix >> >> P.S. I surely hope I have not >> offended any/all those who either >> disagree with the main points >> or who still believe that native >> Look and Feel is viable. I >> remind you all that I am on >> my knees >> bowing with respect to the >> rock stars I referred to and >> anyone >> else working on similar >> projects. Absolutely no >> offence is >> intended, I am merely >> expressing my (passionate) >> feelings on this >> subject. >> >> >> On 9 December 2013 19:10, >> Felix Bembrick >> > > >> wrote: >> >> >> >> On 9 December 2013 >> 16:10, Scott Palmer >> > > >> wrote: >> >> >> On Dec 8, 2013, >> at 9:18 PM, Felix >> Bembrick >> > > >> wrote: >> >> >> >> Firstly, it will >> *never* be >> possible to >> completely >> emulate the >> native look >> and feel. >> >> Sure it is. Though it >> may never be >> practical, for many >> of the >> reasons you have given. >> >> My reasoning is: >> why bother? >> >> Because it matters. >> As computer literate >> developers, we often >> don't realize what >> trips other people >> up. I get so frustrated >> with apps these days >> because they have >> become hard to use >> simply because the >> developers tried to >> define their own look >> and feel. For >> example, Chrome and >> Firefox... Or Microsoft >> Office... >> Where did the title >> bar go in chrome? >> Where have all the >> menus gone in Chrome, >> Firefox andOffice? I >> can find them, but >> when I have to play >> tech support over the >> phone to my parents >> these changes are >> massive problems. I ask >> my dad to move he >> window by dragging >> the title bar (please >> don't ask why he >> doesn't know to do >> this himself after >> decades >> of computer use) and >> he says "there is no >> title bar"... I the >> remember that yes, >> chrome did that... >> They got rid of a >> standard concept in >> the OS' windowing >> system and screed the end >> users. >> >> These apps became >> harder to use because >> of this "innovation" in >> the UI. >> >> Contrast this with >> applications on OS X >> where getting the UI >> right has always been >> an important priority >> for developers. >> Because adhering to >> the system look and >> feel has always been >> strongly encouraged >> the system is much >> easier to use. >> >> These days, many >> apps do not look >> 100% native and >> may have >> their own >> controls or look >> and feel in general. >> >> Yes, but to what end? >> They are now more >> difficult to use. >> >> Why not channel >> all that massive >> effort in >> constructing an >> emulated native >> look and feel into >> simply making >> JavaFX better >> overall? >> >> But I agree here. >> The general look >> isn't the main >> issue.. E.g. >> little variations in >> color and minor >> tweaks to a few pixels >> here and there don't >> really matter. What >> does matter is when >> you change the order >> of buttons, like Okay >> & Cancel which have >> standard places that >> are different between >> Mac and Windows, or >> you move the About >> menu item from the >> Application menu on an OS >> X app to the help >> menu! because that is >> where you find it on >> Windows. Those >> things matter. >> >> >> Scott >> >> Felix >> >> >> >> On 9 December >> 2013 12:35, Pedro >> Duque Vieira >> > >wrote: >> >> Thanks! >> >> @Jasper: Yes, >> that's very >> interesting! >> Forgot that was >> possible to do in >> CSS. >> >> >> On Mon, >> Dec 9, >> 2013 at >> 12:15 AM, >> Stephen >> Winnall >> > > >> wrote: >> >> It may be >> possible >> to change >> the LOOK >> with CSS, >> but not the >> FEEL, which >> >> is >> >> where >> Java apps >> have >> traditionally >> failed >> big time. >> >> Some >> things >> that I >> don?t >> think can >> be >> changed >> with CSS: >> >> 1) texts >> 2) order >> of buttons >> 3) escape >> characters for >> shortcuts >> 4) menus >> 5) >> system-level >> stuff >> (double-clicking >> on files, >> dropping >> files on >> applications, >> ?) >> 6) >> filesystem conventions >> 7) ... >> >> I think >> FXML can >> fix some >> of these, >> but not >> all. So >> it seems >> to me that a >> LaF in >> JFX will >> consist >> of at least: >> >> - >> one or >> more CSS >> files >> - >> one or >> more FXML >> files >> - >> some >> plumbing >> at the >> system level >> >> It would >> be nice >> to have a >> set of >> proper >> LaFs for >> each major >> platform >> >> with >> >> an >> appropriate >> common API. >> >> Steve >> >> On 9 >> Dec >> 2013, >> at >> 00:20, Jasper >> Potts >> > > >> wrote: >> >> You >> can >> set >> skin >> classes >> from >> CSS >> so >> should be >> able >> to do >> everything >> >> you >> >> could >> with >> Swing and >> more. >> With just >> a CSS >> file and >> skins as >> and when >> needed. >> >> Jasper >> >> On Dec >> 8, 2013, >> at 3:00 >> PM, >> Jonathan >> Giles >> > >> >> wrote: >> >> At present >> there >> are >> no plans >> to introduce >> any >> further >> API >> or >> functionality >> in this >> area, >> but >> if there >> is something >> you >> are >> wanting >> then >> you >> should >> file >> feature >> requests >> in Jira. >> >> -- Jonathan >> >> On >> 9/12/2013 >> 11:54 >> a.m., >> Pedro >> Duque >> Vieira >> wrote: >> Hi, >> >> Is >> there >> any >> Look >> and >> Feel >> mechanism >> in >> place, >> like >> the >> one >> in >> Swing? >> >> That >> >> doesn't >> appear >> to >> exist.. >> >> Are >> there >> any >> plans >> to >> add >> one? >> You >> can >> only >> do >> so >> much >> with >> CSS... >> >> Thanks >> in >> advance, >> best >> regards, >> >> -- >> Pedro Duque >> Vieira >> >> >> >> >> >> > > From felix.bembrick at gmail.com Tue Dec 10 12:14:55 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Wed, 11 Dec 2013 07:14:55 +1100 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: <52A77563.3080801@oracle.com> References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> <52A5E0BA.1010800@oracle.com> <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> <52A6041C.9080208@oracle.com> <52A6790D.2050007@oracle.com> <52A74E97.6050707@oracle.com> <52A75B56.6030008@oracle.com> <52A7723D.50907@oracle.com> <52A77563.3080801@oracle.com> Message-ID: Right, I guess what I was really asking was is there any way to craft a LW/HW integration solution that *doesn't* have nasty limitations? On 11 December 2013 07:11, Stephen F Northover wrote: > As I said before, it would be up to the application. If it was critical > that your application do something like embed Excel, then it could live > with the limitations. Perhaps you work in a company where you have a > custom native control that you are already embedding in Swing and you want > to migrate to FX. These sorts of applications could live with the > limitations. > > Steve > > > On 2013-12-10 3:03 PM, Felix Bembrick wrote: > > Do you think it's either feasible or viable to the extent that a > successful implementation would not have the limitations such as lack of > transparency or be limited by the inability to apply Node transforms and > functionality to native controls? I mean, such a large undertaking would > only made sense if the end result gave us something we don't have now and > that it worked well. > > Felix > > > > On 11 December 2013 06:57, Stephen F Northover < > steve.x.northover at oracle.com> wrote: > >> I was very interesting in heavyweight integration a while back but could >> not get anyone very enthusiastic about it. >> >> Steve >> >> >> On 2013-12-10 1:35 PM, Felix Bembrick wrote: >> >> Stephen, why do you refer to this discussion as "academic"? >> >> Felix >> >> >> >> On 11 December 2013 05:20, Stephen F Northover < >> steve.x.northover at oracle.com> wrote: >> >>> Yes, if it helps an application ship using the components and technology >>> they need to make their product successful. In any case, this discussion >>> is academic. >>> >>> Steve >>> >>> >>> On 2013-12-10 12:25 PM, Anthony Petrov wrote: >>> >>>> We have implemented HW/LW components mixing for AWT/Swing in the past >>>> [1]. However, the feature is very limited (no transparency support, etc.), >>>> and the limitations come from native system capabilities that can't be >>>> worked around easily. >>>> >>>> Do we really want something limited like this in FX? >>>> >>>> [1] >>>> http://www.oracle.com/technetwork/articles/java/mixing-components-433992.html >>>> >>>> -- >>>> best regards, >>>> Anthony >>>> >>>> On 12/10/2013 06:14 AM, Stephen F Northover wrote: >>>> >>>>> At one point, I was very interested in seeing this happen but there >>>>> wasn't the band width and resources. >>>>> >>>>> Steve >>>>> >>>>> On 2013-12-09 1:00 PM, Felix Bembrick wrote: >>>>> >>>>>> What can we expect from the JavaFX team in this regard in the future? >>>>>> I know we have talked about mixing lightweight and heavyweight >>>>>> controls in the same context but is it going to happen? Is this >>>>>> planned for JFX9 perhaps? Is it *really* even feasible? >>>>>> >>>>>> On 10 Dec 2013, at 4:55, Stephen F Northover >>>>>>> wrote: >>>>>>> >>>>>>> Today, you can only exercise the choice by writing native code and >>>>>>> you face heavyweight / lightweight issues depending on the platform >>>>>>> and API. >>>>>>> >>>>>>> Steve >>>>>>> >>>>>>> On 2013-12-09 12:31 PM, Felix Bembrick wrote: >>>>>>>> Stephen, I thoroughly agree that JavaFX is by far the best choice >>>>>>>> for non-native apps/widgets which is precisely my point. They are >>>>>>>> the kind of apps perfect for using JavaFX. >>>>>>>> >>>>>>>> But you refer to giving people the choice to go native where >>>>>>>> appropriate. How can I exercise that choice? Where is the support >>>>>>>> for native widgets in JavaFX? >>>>>>>> >>>>>>>> And isn't the real Holy Grail being able to mix native and >>>>>>>> non-native widgets in the same app with all features of Node being >>>>>>>> available to every widget, with all the effects and transforms, all >>>>>>>> the CSS/styling and with all the performance? >>>>>>>> >>>>>>>> Could JavaFX ever be such a toolkit? >>>>>>>> >>>>>>>> On 10 Dec 2013, at 2:24, Stephen F Northover >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Here are my thoughts on the matter. Give people the choice of >>>>>>>>> whether to use native or non-native components. In some >>>>>>>>> applications, everything will be non-native. In others, only the >>>>>>>>> main content area will be non-native and the rest will be native. >>>>>>>>> In some mobile applications, perhaps the preference pages will be >>>>>>>>> native and other parts will not. >>>>>>>>> >>>>>>>>> JavaFX is the best choice for non-native widgets and we are >>>>>>>>> committed to making it the best toolkit all around. >>>>>>>>> >>>>>>>>> Steve >>>>>>>>> >>>>>>>>> On 2013-12-09 9:49 AM, Scott Palmer wrote: >>>>>>>>>> I agree that perfect sync with native look and feels is not what >>>>>>>>>> is required and not worth the effort. I do think though that >>>>>>>>>> major concepts in the platform's look and feel should (must!) be >>>>>>>>>> followed or the user experience is ruined. >>>>>>>>>> >>>>>>>>>> The example of the order of the ok and cancel buttons has been >>>>>>>>>> brought up already. But that isn't even the most important one. >>>>>>>>>> >>>>>>>>>> Things like shortcut keys. CTRL-C to copy on windows, Command-C to >>>>>>>>>> copy on Mac. Standard menu layouts, right-click behaviour and >>>>>>>>>> standard context menus. They just have to be in the right place. >>>>>>>>>> That they look different doesn't matter as much. And this doesn't >>>>>>>>>> mean that you can't try new ideas for UI. But basic things that >>>>>>>>>> users expect to work should still work. E.g. Command-Q on OS X >>>>>>>>>> better quit the app :-) >>>>>>>>>> >>>>>>>>>> As noted already with my reference to Office and browsers.. Fully >>>>>>>>>> native apps can be non-compliant with the platforms look and >>>>>>>>>> feel. So this isn't really a Java-specific issue. >>>>>>>>>> >>>>>>>>>> Scott >>>>>>>>>> >>>>>>>>>> On Dec 9, 2013, at 4:24 AM, Felix Bembrick >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> Spoiler: This is something I have become intensely passionate >>>>>>>>>>> about so this is likely to be a long post... >>>>>>>>>>> >>>>>>>>>>> OK, so this (hijacked) thread started out as a discussion of >>>>>>>>>>> options in JavaFX for implementing "Look and Feel". I think >>>>>>>>>>> everyone agrees that even with CSS and skins, JavaFX lacks the >>>>>>>>>>> built-in ability to define a true Look *and* Feel. Further to >>>>>>>>>>> this, there has been discussion on Twitter and elsewhere >>>>>>>>>>> regarding *native* Look and Feel and the merits of attempting >>>>>>>>>>> such an animal with JavaFX. >>>>>>>>>>> >>>>>>>>>>> It is on this topic that I would like to add my 2 bits (as I am >>>>>>>>>>> known to do)! I was going to use my blog http://justmy2bits.com >>>>>>>>>>> but decided I would be much more likely to be able to engage >>>>>>>>>>> fellow JavaFX developers in a positive, polite and respectful >>>>>>>>>>> conversation here. >>>>>>>>>>> >>>>>>>>>>> First, anyone who may follow me on Twitter, in this forum or when >>>>>>>>>>> I post in other forums (anyone?) will probably be a little bit >>>>>>>>>>> confused as to where I actually stand on this issue. Well, this >>>>>>>>>>> stems from the fact that I have been giving confusing (if not >>>>>>>>>>> conflicting) input into various threads on this topic for quite a >>>>>>>>>>> while. >>>>>>>>>>> >>>>>>>>>>> Why? >>>>>>>>>>> >>>>>>>>>>> Well, because until very recently, I myself was completely torn >>>>>>>>>>> on the subject of native Look and Feel. In fact, I seemed to >>>>>>>>>>> oscillate on an almost daily basis from thinking it's a great, >>>>>>>>>>> achievable idea to dismissing such an idea on various grounds. I >>>>>>>>>>> am swaying so much because I have so much riding on successful >>>>>>>>>>> ports of JavaFX to iOS and Android and because those ports depend >>>>>>>>>>> heavily on resolving this issue once and for all. >>>>>>>>>>> >>>>>>>>>>> Now I have had something of an epiphany and reached a >>>>>>>>>>> conclusion. I now do not believe that pouring large (massive?) >>>>>>>>>>> amounts of resources into the painstaking task of building a >>>>>>>>>>> fully compliant, fully performant native Look and Feel is >>>>>>>>>>> justifiable or worth the effort. And let's be clear about this: >>>>>>>>>>> it is a *lot* of effort! >>>>>>>>>>> >>>>>>>>>>> But before I proceed I just want to say categorically how much I >>>>>>>>>>> admire the thoroughly awesome work/efforts of the likes of Pedro >>>>>>>>>>> DV, Claudine Zillmann, Hendrik Ebbers et. al. in (trying ever so >>>>>>>>>>> hard) to bring native Look and Feel to various OS/platforms with >>>>>>>>>>> JavaFX. I cannot put in words how much I am in awe of the >>>>>>>>>>> commitment, the attention to detail, the technical prowess, the >>>>>>>>>>> artistry and the drive of these fantastic people. Their work >>>>>>>>>>> will undoubtedly be extremely useful to many developers >>>>>>>>>>> worldwide. >>>>>>>>>>> >>>>>>>>>>> I want to make all that *perfectly clear* because now I am going >>>>>>>>>>> to explain why I (probably) will not be one of those people and >>>>>>>>>>> (hopefully) do it with the utmost respect for the aforementioned >>>>>>>>>>> rock stars :-) >>>>>>>>>>> >>>>>>>>>>> Right, so back to the issue of whether to or not to implement or >>>>>>>>>>> use a native Look and Feel. Some of the following comments have >>>>>>>>>>> already been made by me on other networks and in other forums so >>>>>>>>>>> apologies if it seems a bit repetitive to some. >>>>>>>>>>> >>>>>>>>>>> At first glance, the idea of a native Look and Feel seems almost >>>>>>>>>>> like the proverbial Holy Grail. I mean, if such a thing were >>>>>>>>>>> truly possible and viable, who wouldn't want one? You still have >>>>>>>>>>> your single codebase across all platforms and you just just >>>>>>>>>>> plug-in the particular native Look and Feel for your target >>>>>>>>>>> platform and voila! World domination will surely soon follow! >>>>>>>>>>> >>>>>>>>>>> Well, not quite. It's a great idea but I am going out on a limb >>>>>>>>>>> to claim that it has *never* worked. Ever! And by "work" I mean >>>>>>>>>>> so that your "not-so-native" app looks and feels (which includes >>>>>>>>>>> all aspects of behaviour, not just appearance) *exactly* like a >>>>>>>>>>> true native app and *no one* could tell you that it *wasn't* a >>>>>>>>>>> native app. >>>>>>>>>>> >>>>>>>>>>> Yes, I know there are masses now screaming at their monitors who >>>>>>>>>>> will undoubtedly cite the numerous success stories of Swing apps >>>>>>>>>>> or maybe even Qt or some other cross-platform UI toolkit and >>>>>>>>>>> maybe my standards/criteria are harsher than others but I stand >>>>>>>>>>> by my claim that this has *never ever* really, really, really >>>>>>>>>>> worked. >>>>>>>>>>> >>>>>>>>>>> OK, so why not? >>>>>>>>>>> >>>>>>>>>>> Here's my first point: I postulate that such a noble goal is not >>>>>>>>>>> actually achievable. It is not actually achievable for a number >>>>>>>>>>> of reasons. >>>>>>>>>>> >>>>>>>>>>> It is not actually achievable because, in most cases, we do not >>>>>>>>>>> have access to the code that implements the native controls on >>>>>>>>>>> each OS so, at best, we are "guessing" when we try to emulate all >>>>>>>>>>> aspects of their appearance and behaviour. Try as we may, we >>>>>>>>>>> will never get *every* control exactly right and I firmly believe >>>>>>>>>>> that anything that purports to be something else needs to be >>>>>>>>>>> *identical*. >>>>>>>>>>> >>>>>>>>>>> It is not actually achievable because just as you feel you have >>>>>>>>>>> reached an acceptable level of "compliance" (which I again wager >>>>>>>>>>> is never 100%), the goal posts will move. That is, the OS vendor >>>>>>>>>>> will release an update and even the minor ones can change either >>>>>>>>>>> the appearance or behaviour of controls, sometimes in subtle >>>>>>>>>>> ways, sometimes in not so subtle ways. Either way, there is then >>>>>>>>>>> going to be a period of time where you are playing a futile game >>>>>>>>>>> of catch-up and during that time your "native" controls will be >>>>>>>>>>> surely exposed for the impostors they are. >>>>>>>>>>> >>>>>>>>>>> It is not actually achievable because the same control on one OS >>>>>>>>>>> can look and feel/behave quite differently on another OS which >>>>>>>>>>> leads to very poor levels of reuse. >>>>>>>>>>> >>>>>>>>>>> It is not actually achievable because many controls simply can't >>>>>>>>>>> be emulated in using Java/JavaFX most likely because they have >>>>>>>>>>> exclusive access to native system or OS calls that are not >>>>>>>>>>> accessible to Java or because the expected levels of performance >>>>>>>>>>> or "snappiness" cannot be achieved using Java by any means. Even >>>>>>>>>>> with JNA or JNI you would be left scratching your head in many >>>>>>>>>>> cases. >>>>>>>>>>> >>>>>>>>>>> And, it is not actually achievable because it's simply too much >>>>>>>>>>> work to get anywhere near to perfection! We are talking >>>>>>>>>>> *massive* amounts of effort and very few people have either the >>>>>>>>>>> talent, the eye, the attention to detail or the patience to see >>>>>>>>>>> such a project right through to the end where *all* controls are >>>>>>>>>>> covered. The rock stars I mentioned earlier are the exceptions >>>>>>>>>>> of course. There's clearly zero point in emulating *some* of the >>>>>>>>>>> controls only; you need the *full set* or it's just not viable. >>>>>>>>>>> >>>>>>>>>>> Finally, and to look at it another way, what do we get even if >>>>>>>>>>> some super-human delivers us a native Look and Feel for every >>>>>>>>>>> possible platform? Well, a massive maintenance nightmare for a >>>>>>>>>>> start! This super-human would basically be spending all their >>>>>>>>>>> super time and using up all their super powers just keeping such >>>>>>>>>>> libraries current. >>>>>>>>>>> >>>>>>>>>>> So, if you are still with me, why bother? Just consider if all >>>>>>>>>>> those rock stars (and super heroes) concentrated all their super >>>>>>>>>>> efforts into either improving the features, stability, >>>>>>>>>>> performance or appearance of JavaFX itself? Just think what we >>>>>>>>>>> could achieve! >>>>>>>>>>> >>>>>>>>>>> And on the why bother theme, why bother to devote all that time >>>>>>>>>>> and effort, spend all those millions, tear out all that hair and >>>>>>>>>>> hit all those roadblocks when the very thing we are trying to >>>>>>>>>>> achieve is already available? >>>>>>>>>>> >>>>>>>>>>> Yes, that's right, if you really, really, really want to build a >>>>>>>>>>> native app then why don't you just build a native app? There are >>>>>>>>>>> numerous tools, languages, IDEs, toolchains and libraries that >>>>>>>>>>> enable you to build awesome *true* native apps! I just don't >>>>>>>>>>> think JavaFX is one of them :-) >>>>>>>>>>> >>>>>>>>>>> And it doesn't have to be one of those toolkits because JavaFX >>>>>>>>>>> can be used to build an entirely different class of application >>>>>>>>>>> and I now strongly believe that this is the kind of app we should >>>>>>>>>>> be concentrating on. That class (or classes) of app is one that >>>>>>>>>>> is not so heavily dependent on the native Look and Feel and >>>>>>>>>>> doesn't need to be. There are probably hundreds of thousands of >>>>>>>>>>> apps that are like this. They are everywhere and JavaFX is >>>>>>>>>>> *perfect* for them! >>>>>>>>>>> >>>>>>>>>>> Scott Palmer has argued that this approach is not valid (and >>>>>>>>>>> sorry Scott if am inaccurately paraphrasing you). He cites >>>>>>>>>>> examples such as Chrome, Firefox and even MS Office as proof that >>>>>>>>>>> this approach does not work. However, my response to that would >>>>>>>>>>> be to say that just because these are examples of where the >>>>>>>>>>> developers got it seriously wrong, they do not prove that this >>>>>>>>>>> approach can't work and isn't working all over the marketplace. >>>>>>>>>>> >>>>>>>>>>> There is no need to develop crappy, mistake ridden software by >>>>>>>>>>> using a toolkit such as JavaFX in a way that does not attempt to >>>>>>>>>>> emulate the native Look and Feel and the fact that even big >>>>>>>>>>> companies like Google *still* clearly get it horribly wrong >>>>>>>>>>> doesn't imply that we *all* have to be so ineffective. >>>>>>>>>>> >>>>>>>>>>> Part of my newly-found aversion to emulated native Look and Feel >>>>>>>>>>> comes from my many years of both developing and using Swing >>>>>>>>>>> applications. Sure, I know there are *some* (handful?) >>>>>>>>>>> successful Swing apps, most notably those developed with the >>>>>>>>>>> NetBeans RCP, but in general Swing has failed to have any >>>>>>>>>>> penetration into serious commercial software. Why? Well, there >>>>>>>>>>> are several reasons (and a lot are due to Java itself) but, for >>>>>>>>>>> me, I was never satisfied with the so-called native Look and Feel >>>>>>>>>>> options that come with Swing. I have been (and still am) very >>>>>>>>>>> critical of the Windows Look and Feel in Swing in particular >>>>>>>>>>> because, even today, there is a vast gulf between an actual >>>>>>>>>>> native Windows application and a Swing application with this Look >>>>>>>>>>> and Feel. So much so that I still want to almost knock my >>>>>>>>>>> monitor off the desk when I am using an application developed in >>>>>>>>>>> this way. For me, this is not acceptable and such an application >>>>>>>>>>> could never be released as a serious commercial product. >>>>>>>>>>> >>>>>>>>>>> And that's pretty much what this all boils down to: developing >>>>>>>>>>> serious commercial software. >>>>>>>>>>> >>>>>>>>>>> If you are interested in developing something else then these >>>>>>>>>>> lengthy comments (am I *still* going?) probably do not apply to >>>>>>>>>>> you :-) >>>>>>>>>>> >>>>>>>>>>> So to summarise, I argue that it is not possible to develop >>>>>>>>>>> serious commercial software using emulated Look and Feel in >>>>>>>>>>> JavaFX or in *any* UI toolkit. I *strongly* recommend that we >>>>>>>>>>> all work together to make JavaFX as good as it can be (which is >>>>>>>>>>> absolutely awesome) by focusing on the core product, the API, the >>>>>>>>>>> performance, the feature set, the stability *and* the supported >>>>>>>>>>> platforms rather than throw good money after bad on a *wonderful* >>>>>>>>>>> goal that ultimately can never be reached... >>>>>>>>>>> >>>>>>>>>>> Just my 2 bits, >>>>>>>>>>> >>>>>>>>>>> Felix >>>>>>>>>>> >>>>>>>>>>> P.S. I surely hope I have not offended any/all those who either >>>>>>>>>>> disagree with the main points or who still believe that native >>>>>>>>>>> Look and Feel is viable. I remind you all that I am on my knees >>>>>>>>>>> bowing with respect to the rock stars I referred to and anyone >>>>>>>>>>> else working on similar projects. Absolutely no offence is >>>>>>>>>>> intended, I am merely expressing my (passionate) feelings on this >>>>>>>>>>> subject. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On 9 December 2013 19:10, Felix Bembrick >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 9 December 2013 16:10, Scott Palmer >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Dec 8, 2013, at 9:18 PM, Felix Bembrick >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> Firstly, it will *never* be possible to completely emulate the >>>>>>>>>>>>>> native look >>>>>>>>>>>>>> and feel. >>>>>>>>>>>>>> >>>>>>>>>>>>> Sure it is. Though it may never be practical, for many of the >>>>>>>>>>>>> reasons you have given. >>>>>>>>>>>>> >>>>>>>>>>>>> My reasoning is: why bother? >>>>>>>>>>>>>> >>>>>>>>>>>>> Because it matters. As computer literate developers, we often >>>>>>>>>>>>> don't realize what trips other people up. I get so frustrated >>>>>>>>>>>>> with apps these days because they have become hard to use >>>>>>>>>>>>> simply because the developers tried to define their own look >>>>>>>>>>>>> and feel. For example, Chrome and Firefox... Or Microsoft >>>>>>>>>>>>> Office... >>>>>>>>>>>>> Where did the title bar go in chrome? >>>>>>>>>>>>> Where have all the menus gone in Chrome, Firefox andOffice? I >>>>>>>>>>>>> can find them, but when I have to play tech support over the >>>>>>>>>>>>> phone to my parents these changes are massive problems. I ask >>>>>>>>>>>>> my dad to move he window by dragging the title bar (please >>>>>>>>>>>>> don't ask why he doesn't know to do this himself after decades >>>>>>>>>>>>> of computer use) and he says "there is no title bar"... I the >>>>>>>>>>>>> remember that yes, chrome did that... They got rid of a >>>>>>>>>>>>> standard concept in the OS' windowing system and screed the end >>>>>>>>>>>>> users. >>>>>>>>>>>>> >>>>>>>>>>>>> These apps became harder to use because of this "innovation" in >>>>>>>>>>>>> the UI. >>>>>>>>>>>>> >>>>>>>>>>>>> Contrast this with applications on OS X where getting the UI >>>>>>>>>>>>> right has always been an important priority for developers. >>>>>>>>>>>>> Because adhering to the system look and feel has always been >>>>>>>>>>>>> strongly encouraged the system is much easier to use. >>>>>>>>>>>>> >>>>>>>>>>>>> These days, many apps do not look 100% native and may have >>>>>>>>>>>>>> their own >>>>>>>>>>>>>> controls or look and feel in general. >>>>>>>>>>>>>> >>>>>>>>>>>>> Yes, but to what end? They are now more difficult to use. >>>>>>>>>>>>> >>>>>>>>>>>>> Why not channel all that massive >>>>>>>>>>>>>> effort in constructing an emulated native look and feel into >>>>>>>>>>>>>> simply making >>>>>>>>>>>>>> JavaFX better overall? >>>>>>>>>>>>>> >>>>>>>>>>>>> But I agree here. The general look isn't the main issue.. E.g. >>>>>>>>>>>>> little variations in color and minor tweaks to a few pixels >>>>>>>>>>>>> here and there don't really matter. What does matter is when >>>>>>>>>>>>> you change the order of buttons, like Okay & Cancel which have >>>>>>>>>>>>> standard places that are different between Mac and Windows, or >>>>>>>>>>>>> you move the About menu item from the Application menu on an OS >>>>>>>>>>>>> X app to the help menu! because that is where you find it on >>>>>>>>>>>>> Windows. Those things matter. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Scott >>>>>>>>>>>>> >>>>>>>>>>>>> Felix >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 9 December 2013 12:35, Pedro Duque Vieira >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks! >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> @Jasper: Yes, that's very interesting! Forgot that was >>>>>>>>>>>>>>> possible to do in >>>>>>>>>>>>>>> CSS. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Mon, Dec 9, 2013 at 12:15 AM, Stephen Winnall >>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> It may be possible to change the LOOK with CSS, but not the >>>>>>>>>>>>>>>> FEEL, which >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> is >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> where Java apps have traditionally failed big time. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Some things that I don?t think can be changed with CSS: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> 1) texts >>>>>>>>>>>>>>>> 2) order of buttons >>>>>>>>>>>>>>>> 3) escape characters for shortcuts >>>>>>>>>>>>>>>> 4) menus >>>>>>>>>>>>>>>> 5) system-level stuff (double-clicking on files, dropping >>>>>>>>>>>>>>>> files on >>>>>>>>>>>>>>>> applications, ?) >>>>>>>>>>>>>>>> 6) filesystem conventions >>>>>>>>>>>>>>>> 7) ... >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I think FXML can fix some of these, but not all. So it seems >>>>>>>>>>>>>>>> to me that a >>>>>>>>>>>>>>>> LaF in JFX will consist of at least: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> - one or more CSS files >>>>>>>>>>>>>>>> - one or more FXML files >>>>>>>>>>>>>>>> - some plumbing at the system level >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> It would be nice to have a set of proper LaFs for each major >>>>>>>>>>>>>>>> platform >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> with >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> an appropriate common API. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Steve >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On 9 Dec 2013, at 00:20, Jasper Potts >>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> You can set skin classes from CSS so should be able to do >>>>>>>>>>>>>>>>> everything >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> you >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> could with Swing and more. With just a CSS file and skins as >>>>>>>>>>>>>>>> and when >>>>>>>>>>>>>>>> needed. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Jasper >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Dec 8, 2013, at 3:00 PM, Jonathan Giles >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> At present there are no plans to introduce any further >>>>>>>>>>>>>>>>>> API or >>>>>>>>>>>>>>>>>> functionality in this area, but if there is something you >>>>>>>>>>>>>>>>>> are wanting >>>>>>>>>>>>>>>>>> then you should file feature requests in Jira. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> -- Jonathan >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On 9/12/2013 11:54 a.m., Pedro Duque Vieira wrote: >>>>>>>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Is there any Look and Feel mechanism in place, like the >>>>>>>>>>>>>>>>>>> one in Swing? >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> That >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> doesn't appear to exist.. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Are there any plans to add one? You can only do so much >>>>>>>>>>>>>>>>>>> with CSS... >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Thanks in advance, best regards, >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> Pedro Duque Vieira >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>> >>>>> >>>>> >>> >> >> > > From hang.vo at oracle.com Tue Dec 10 12:18:18 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 20:18:18 +0000 Subject: hg: openjfx/8/graphics/rt: 2 new changesets Message-ID: <20131210201852.B750562BD3@hg.openjdk.java.net> Changeset: a434b613d697 Author: mv157916 Date: 2013-12-06 11:27 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/a434b613d697 RT-34731: Update the JDK 8 build number to b119 in rt/build.properties file in the JavaFX 8 Master forest. ! build.properties Changeset: 8e8958c52331 Author: kcr Date: 2013-12-10 12:07 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/8e8958c52331 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdx ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fnm ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.frq ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.nrm ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.prx ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tii ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tis ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_1 - apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timeline/TimelineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timelineevents/TimelineEventsApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/FireworksApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/Particle.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/SanFranciscoFireworks.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bubble/chart/BubbleChartApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/Candle.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChart.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickExtraValues.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/TooltipContent.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/DailySales.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/GetDailySalesService.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/GetDailySalesTask.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/DailySales.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/GetDailySalesTask.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/TaskApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/splitpane/hiddensplitpane/HiddenSplitPaneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/tabpane/TabPaneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/Person.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tableview/Person.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tableview/TableViewApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/Part.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/Authenticator.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/FXMLLoginDemoApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/LoginController.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/ProfileController.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/User.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Ball.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsPane.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsScreen.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Constants.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Ball.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Bat.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Bonus.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Brick.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/BrickBreakerApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Config.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Level.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/LevelData.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Splash.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Utils.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Calculator.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/CalculatorApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Key.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Util.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/colorfulcircles/ColorfulCirclesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Clock.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Digit.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/DigitalClockApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelf.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelfApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/PerspectiveImage.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/dropshadow/DropShadowApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/gaussianblur/GaussianBlurApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/innershadow/InnerShadowApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/reflection/ReflectionApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/sepiatone/SepiaToneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/gauge/SpeedGaugeApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imagecreation/ImageCreationApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageoperator/ImageOperationApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageproperties/ImagePropertiesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/color/ColorApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/radialgradient/RadialGradientApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Desk.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Piece.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/PuzzlePiecesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/arc/ArcApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/circle/CircleApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/cubiccurve/CubicCurveApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/ellipse/EllipseApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/line/LineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/path/PathApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polygon/PolygonApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polyline/PolylineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/quadcurve/QuadCurveApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/rectangle/RectangleApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Dial.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/DigitalClock.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchButton.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Watch.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/stringbinding/StringBindingApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/CustomNodeApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/MyNode.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/nodeproperties/NodePropertiesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/advancedstage/AdvancedStageApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/stage/StageApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/ProcessListener.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SampleTableModel.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInterop.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropService.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropTask.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/text/bidi/BidiApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/text/textflow/TextFlowApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/webview/WebViewApp.java - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/CandleStickChart.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/HiddenSplitPane.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/tab_16.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tablecellfactory/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tablecellfactory/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tableview/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tableview/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Login.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Login.fxml - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Profile.fxml - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/bouncingballs/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/bouncingballs/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/brickbreaker/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/brickbreaker/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/calc/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/calc/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/colorfulcircles/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/colorfulcircles/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/digitalclock/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/digitalclock/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/DisplayShelf.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/dropshadow/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/dropshadow/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/gaussianblur/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/gaussianblur/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/innershadow/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/innershadow/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/reflection/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/reflection/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/sepiatone/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/sepiatone/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/gauge/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/gauge/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imagecreation/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imagecreation/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageoperator/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageoperator/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageproperties/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageproperties/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/color/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/color/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/lineargradient/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/lineargradient/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/radialgradient/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/radialgradient/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/puzzle/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/puzzle/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/arc/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/arc/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/circle/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/circle/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/cubiccurve/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/cubiccurve/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/ellipse/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/ellipse/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/line/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/line/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/path/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/path/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polygon/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polygon/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polyline/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polyline/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/quadcurve/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/quadcurve/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/rectangle/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/rectangle/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/stopwatch/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/stopwatch/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/changelistener/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/changelistener/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/stringbinding/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/stringbinding/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/collections/observablelist/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/collections/observablelist/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/customnode/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/customnode/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/nodeproperties/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/nodeproperties/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/advancedstage/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/advancedstage/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/stage/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/stage/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/swing/swinginterop/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/swing/swinginterop/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/bidi/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/bidi/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/textflow/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/textflow/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/htmleditor/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/htmleditor/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/webview/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/webview/preview at 2x.png ! build.properties - modules/fxpackager/src/main/man/html/javafxpackager.1.html From hang.vo at oracle.com Tue Dec 10 12:47:47 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 20:47:47 +0000 Subject: hg: openjfx/8/graphics/rt: [Doc only] RT-26385: Finish javadoc for FX 8 3D API Message-ID: <20131210204811.F320362BDB@hg.openjdk.java.net> Changeset: 35d622e670f1 Author: Chien Yang Date: 2013-12-10 12:43 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/35d622e670f1 [Doc only] RT-26385: Finish javadoc for FX 8 3D API Reviewed-by: kcr, vadim ! modules/graphics/src/main/java/javafx/scene/SubScene.java ! modules/graphics/src/main/java/javafx/scene/paint/PhongMaterial.java From John_Smith at symantec.com Tue Dec 10 12:51:53 2013 From: John_Smith at symantec.com (John Smith) Date: Tue, 10 Dec 2013 12:51:53 -0800 Subject: Reloading stylesheets In-Reply-To: References: <52A70740.4010906@media-interactive.de> <52A70980.7030009@bestsolution.at> <52A710F3.6090604@media-interactive.de> <52A712CD.30705@bestsolution.at> <52A72EF9.40804@media-interactive.de> <52A72FFB.6060002@bestsolution.at> <52A7337A.7090005@media-interactive.de> <52A7497B.5070900@media-interactive.de> Message-ID: <411E73D23DEC4C46BA48F2B6D8BF3D22168DA67BC4@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> > And in general if there were some performance guidelines for JavaFX that would be really helpful. There is an open-jfx wiki page for JavaFX Performance Tips and Tricks, you could check that and see if it is helpful (if it's not maybe you could edit it and add a new section on performance issues you would like to see discussed or documented): https://wiki.openjdk.java.net/display/OpenJFX/Performance+Tips+and+Tricks There are some JavaOne presentations on Performance topic: http://www.youtube.com/watch?feature=player_embedded&v=ddJpDi5SWFc http://parleys.com/play/514892290364bc17fc56c3c5/chapter26/about John -----Original Message----- From: openjfx-dev-bounces at openjdk.java.net [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Mark Fortner Sent: Tuesday, December 10, 2013 9:39 AM To: openjfx-dev at openjdk.java.net Subject: Fwd: Reloading stylesheets It would be nice if there were some documentation for how to get around the memory leak in stylesheets in 7x (since most of us won't be upgrading to 8 until it's actually released). And in general if there were some performance guidelines for JavaFX that would be really helpful. There was some mention of when (and when not) to use *Platform.runLater*. Avoiding memory leaks in multi-threaded code, guidelines for threadpool tuning so that apps stay responsive, etc. The Best Practices document provides a start but more details would be useful. Cheers, Mark ---------- Forwarded message ---------- From: Werner Lehmann Date: Tue, Dec 10, 2013 at 9:03 AM Subject: Re: Reloading stylesheets To: Cc: "openjfx-dev at openjdk.java.net" Makes sense. Thanks! On 10.12.2013 17:09, David Grieve wrote: > The way it works in 8.0 is that there is a cache of loaded stylesheets. > [...] > From hang.vo at oracle.com Tue Dec 10 11:17:49 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Dec 2013 19:17:49 +0000 Subject: hg: openjfx/8/graphics/rt: Ensemble8: Fix for RT-33410 Ensemble8: BrickBreaker "jumps" sometimes Message-ID: <20131210191813.6083E62BCF@hg.openjdk.java.net> Changeset: afa4eebb73b8 Author: Alexander Kouznetsov Date: 2013-12-10 11:13 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/afa4eebb73b8 Ensemble8: Fix for RT-33410 Ensemble8: BrickBreaker "jumps" sometimes ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/BrickBreakerApp.java From anthony.petrov at oracle.com Wed Dec 11 04:49:02 2013 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Wed, 11 Dec 2013 16:49:02 +0400 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> <52A5E0BA.1010800@oracle.com> <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> <52A6041C.9080208@oracle.com> <52A6790D.2050007@oracle.com> <52A74E97.6050707@oracle.com> <52A75B56.6030008@oracle.com> <52A7723D.50907@oracle.com> <52A77563.3080801@oracle.com> Message-ID: <52A85F3E.7050606@oracle.com> As I mentioned earlier in this thread: "the limitations come from native system capabilities that can't be worked around easily." If you know how to overcome the difficulties at the native level, let's discuss this. -- best regards, Anthony On 12/11/2013 12:14 AM, Felix Bembrick wrote: > Right, I guess what I was really asking was is there any way to craft a > LW/HW integration solution that *doesn't* have nasty limitations? > > > On 11 December 2013 07:11, Stephen F Northover > > wrote: > > As I said before, it would be up to the application. If it was > critical that your application do something like embed Excel, then > it could live with the limitations. Perhaps you work in a company > where you have a custom native control that you are already > embedding in Swing and you want to migrate to FX. These sorts of > applications could live with the limitations. > > Steve > > > On 2013-12-10 3:03 PM, Felix Bembrick wrote: >> Do you think it's either feasible or viable to the extent that a >> successful implementation would not have the limitations such as >> lack of transparency or be limited by the inability to apply Node >> transforms and functionality to native controls? I mean, such a >> large undertaking would only made sense if the end result gave us >> something we don't have now and that it worked well. >> >> Felix >> >> >> >> On 11 December 2013 06:57, Stephen F Northover >> > > wrote: >> >> I was very interesting in heavyweight integration a while back >> but could not get anyone very enthusiastic about it. >> >> Steve >> >> >> On 2013-12-10 1:35 PM, Felix Bembrick wrote: >>> Stephen, why do you refer to this discussion as "academic"? >>> >>> Felix >>> >>> >>> >>> On 11 December 2013 05:20, Stephen F Northover >>> >> > wrote: >>> >>> Yes, if it helps an application ship using the components >>> and technology they need to make their product >>> successful. In any case, this discussion is academic. >>> >>> Steve >>> >>> >>> On 2013-12-10 12:25 PM, Anthony Petrov wrote: >>> >>> We have implemented HW/LW components mixing for >>> AWT/Swing in the past [1]. However, the feature is >>> very limited (no transparency support, etc.), and the >>> limitations come from native system capabilities that >>> can't be worked around easily. >>> >>> Do we really want something limited like this in FX? >>> >>> [1] >>> http://www.oracle.com/technetwork/articles/java/mixing-components-433992.html >>> >>> -- >>> best regards, >>> Anthony >>> >>> On 12/10/2013 06:14 AM, Stephen F Northover wrote: >>> >>> At one point, I was very interested in seeing >>> this happen but there >>> wasn't the band width and resources. >>> >>> Steve >>> >>> On 2013-12-09 1:00 PM, Felix Bembrick wrote: >>> >>> What can we expect from the JavaFX team in >>> this regard in the future? >>> I know we have talked about mixing >>> lightweight and heavyweight >>> controls in the same context but is it going >>> to happen? Is this >>> planned for JFX9 perhaps? Is it *really* even >>> feasible? >>> >>> On 10 Dec 2013, at 4:55, Stephen F Northover >>> >> > wrote: >>> >>> Today, you can only exercise the choice >>> by writing native code and >>> you face heavyweight / lightweight issues >>> depending on the platform >>> and API. >>> >>> Steve >>> >>> On 2013-12-09 12:31 PM, Felix >>> Bembrick wrote: >>> Stephen, I thoroughly agree that >>> JavaFX is by far the best choice >>> for non-native apps/widgets which is >>> precisely my point. They are >>> the kind of apps perfect for using >>> JavaFX. >>> >>> But you refer to giving people the >>> choice to go native where >>> appropriate. How can I exercise that >>> choice? Where is the support >>> for native widgets in JavaFX? >>> >>> And isn't the real Holy Grail being >>> able to mix native and >>> non-native widgets in the same app >>> with all features of Node being >>> available to every widget, with all >>> the effects and transforms, all >>> the CSS/styling and with all the >>> performance? >>> >>> Could JavaFX ever be such a toolkit? >>> >>> On 10 Dec 2013, at 2:24, Stephen >>> F Northover >>> >> > >>> wrote: >>> >>> Here are my thoughts on the >>> matter. Give people the choice of >>> whether to use native or >>> non-native components. In some >>> applications, everything will be >>> non-native. In others, only the >>> main content area will be >>> non-native and the rest will be >>> native. >>> In some mobile applications, >>> perhaps the preference pages will be >>> native and other parts will not. >>> >>> JavaFX is the best choice for >>> non-native widgets and we are >>> committed to making it the best >>> toolkit all around. >>> >>> Steve >>> >>> On 2013-12-09 9:49 AM, Scott >>> Palmer wrote: >>> I agree that perfect sync >>> with native look and feels is >>> not what >>> is required and not worth the >>> effort. I do think though that >>> major concepts in the >>> platform's look and feel >>> should (must!) be >>> followed or the user >>> experience is ruined. >>> >>> The example of the order of >>> the ok and cancel buttons has >>> been >>> brought up already. But that >>> isn't even the most important >>> one. >>> >>> Things like shortcut keys. >>> CTRL-C to copy on windows, >>> Command-C to >>> copy on Mac. Standard menu >>> layouts, right-click >>> behaviour and >>> standard context menus. They >>> just have to be in the right >>> place. >>> That they look different >>> doesn't matter as much. And >>> this doesn't >>> mean that you can't try new >>> ideas for UI. But basic >>> things that >>> users expect to work should >>> still work. E.g. Command-Q on >>> OS X >>> better quit the app :-) >>> >>> As noted already with my >>> reference to Office and >>> browsers.. Fully >>> native apps can be >>> non-compliant with the >>> platforms look and >>> feel. So this isn't really a >>> Java-specific issue. >>> >>> Scott >>> >>> On Dec 9, 2013, at 4:24 >>> AM, Felix Bembrick >>> >> > >>> wrote: >>> >>> Spoiler: This is >>> something I have become >>> intensely passionate >>> about so this is likely >>> to be a long post... >>> >>> OK, so this (hijacked) >>> thread started out as a >>> discussion of >>> options in JavaFX for >>> implementing "Look and >>> Feel". I think >>> everyone agrees that even >>> with CSS and skins, >>> JavaFX lacks the >>> built-in ability to >>> define a true Look *and* >>> Feel. Further to >>> this, there has been >>> discussion on Twitter and >>> elsewhere >>> regarding *native* Look >>> and Feel and the merits >>> of attempting >>> such an animal with JavaFX. >>> >>> It is on this topic that >>> I would like to add my 2 >>> bits (as I am >>> known to do)! I was >>> going to use my blog >>> http://justmy2bits.com >>> but decided I would be >>> much more likely to be >>> able to engage >>> fellow JavaFX developers >>> in a positive, polite and >>> respectful >>> conversation here. >>> >>> First, anyone who may >>> follow me on Twitter, in >>> this forum or when >>> I post in other forums >>> (anyone?) will probably >>> be a little bit >>> confused as to where I >>> actually stand on this >>> issue. Well, this >>> stems from the fact that >>> I have been giving >>> confusing (if not >>> conflicting) input into >>> various threads on this >>> topic for quite a >>> while. >>> >>> Why? >>> >>> Well, because until very >>> recently, I myself was >>> completely torn >>> on the subject of native >>> Look and Feel. In fact, >>> I seemed to >>> oscillate on an almost >>> daily basis from thinking >>> it's a great, >>> achievable idea to >>> dismissing such an idea >>> on various grounds. I >>> am swaying so much >>> because I have so much >>> riding on successful >>> ports of JavaFX to iOS >>> and Android and because >>> those ports depend >>> heavily on resolving this >>> issue once and for all. >>> >>> Now I have had something >>> of an epiphany and reached a >>> conclusion. I now do not >>> believe that pouring >>> large (massive?) >>> amounts of resources into >>> the painstaking task of >>> building a >>> fully compliant, fully >>> performant native Look >>> and Feel is >>> justifiable or worth the >>> effort. And let's be >>> clear about this: >>> it is a *lot* of effort! >>> >>> But before I proceed I >>> just want to say >>> categorically how much I >>> admire the thoroughly >>> awesome work/efforts of >>> the likes of Pedro >>> DV, Claudine Zillmann, >>> Hendrik Ebbers et. al. in >>> (trying ever so >>> hard) to bring native >>> Look and Feel to various >>> OS/platforms with >>> JavaFX. I cannot put in >>> words how much I am in >>> awe of the >>> commitment, the attention >>> to detail, the technical >>> prowess, the >>> artistry and the drive of >>> these fantastic people. >>> Their work >>> will undoubtedly be >>> extremely useful to many >>> developers worldwide. >>> >>> I want to make all that >>> *perfectly clear* because >>> now I am going >>> to explain why I >>> (probably) will not be >>> one of those people and >>> (hopefully) do it with >>> the utmost respect for >>> the aforementioned >>> rock stars :-) >>> >>> Right, so back to the >>> issue of whether to or >>> not to implement or >>> use a native Look and >>> Feel. Some of the >>> following comments have >>> already been made by me >>> on other networks and in >>> other forums so >>> apologies if it seems a >>> bit repetitive to some. >>> >>> At first glance, the idea >>> of a native Look and Feel >>> seems almost >>> like the proverbial Holy >>> Grail. I mean, if such a >>> thing were >>> truly possible and >>> viable, who wouldn't want >>> one? You still have >>> your single codebase >>> across all platforms and >>> you just just >>> plug-in the particular >>> native Look and Feel for >>> your target >>> platform and voila! >>> World domination will >>> surely soon follow! >>> >>> Well, not quite. It's a >>> great idea but I am going >>> out on a limb >>> to claim that it has >>> *never* worked. Ever! >>> And by "work" I mean >>> so that your >>> "not-so-native" app looks >>> and feels (which includes >>> all aspects of behaviour, >>> not just appearance) >>> *exactly* like a >>> true native app and *no >>> one* could tell you that >>> it *wasn't* a >>> native app. >>> >>> Yes, I know there are >>> masses now screaming at >>> their monitors who >>> will undoubtedly cite the >>> numerous success stories >>> of Swing apps >>> or maybe even Qt or some >>> other cross-platform UI >>> toolkit and >>> maybe my >>> standards/criteria are >>> harsher than others but I >>> stand >>> by my claim that this has >>> *never ever* really, >>> really, really >>> worked. >>> >>> OK, so why not? >>> >>> Here's my first point: I >>> postulate that such a >>> noble goal is not >>> actually achievable. It >>> is not actually >>> achievable for a number >>> of reasons. >>> >>> It is not actually >>> achievable because, in >>> most cases, we do not >>> have access to the code >>> that implements the >>> native controls on >>> each OS so, at best, we >>> are "guessing" when we >>> try to emulate all >>> aspects of their >>> appearance and behaviour. >>> Try as we may, we >>> will never get *every* >>> control exactly right and >>> I firmly believe >>> that anything that >>> purports to be something >>> else needs to be >>> *identical*. >>> >>> It is not actually >>> achievable because just >>> as you feel you have >>> reached an acceptable >>> level of "compliance" >>> (which I again wager >>> is never 100%), the goal >>> posts will move. That >>> is, the OS vendor >>> will release an update >>> and even the minor ones >>> can change either >>> the appearance or >>> behaviour of controls, >>> sometimes in subtle >>> ways, sometimes in not so >>> subtle ways. Either way, >>> there is then >>> going to be a period of >>> time where you are >>> playing a futile game >>> of catch-up and during >>> that time your "native" >>> controls will be >>> surely exposed for the >>> impostors they are. >>> >>> It is not actually >>> achievable because the >>> same control on one OS >>> can look and feel/behave >>> quite differently on >>> another OS which >>> leads to very poor levels >>> of reuse. >>> >>> It is not actually >>> achievable because many >>> controls simply can't >>> be emulated in using >>> Java/JavaFX most likely >>> because they have >>> exclusive access to >>> native system or OS calls >>> that are not >>> accessible to Java or >>> because the expected >>> levels of performance >>> or "snappiness" cannot be >>> achieved using Java by >>> any means. Even >>> with JNA or JNI you would >>> be left scratching your >>> head in many >>> cases. >>> >>> And, it is not actually >>> achievable because it's >>> simply too much >>> work to get anywhere near >>> to perfection! We are >>> talking >>> *massive* amounts of >>> effort and very few >>> people have either the >>> talent, the eye, the >>> attention to detail or >>> the patience to see >>> such a project right >>> through to the end where >>> *all* controls are >>> covered. The rock stars >>> I mentioned earlier are >>> the exceptions >>> of course. There's >>> clearly zero point in >>> emulating *some* of the >>> controls only; you need >>> the *full set* or it's >>> just not viable. >>> >>> Finally, and to look at >>> it another way, what do >>> we get even if >>> some super-human delivers >>> us a native Look and Feel >>> for every >>> possible platform? Well, >>> a massive maintenance >>> nightmare for a >>> start! This super-human >>> would basically be >>> spending all their >>> super time and using up >>> all their super powers >>> just keeping such >>> libraries current. >>> >>> So, if you are still with >>> me, why bother? Just >>> consider if all >>> those rock stars (and >>> super heroes) >>> concentrated all their super >>> efforts into either >>> improving the features, >>> stability, >>> performance or appearance >>> of JavaFX itself? Just >>> think what we >>> could achieve! >>> >>> And on the why bother >>> theme, why bother to >>> devote all that time >>> and effort, spend all >>> those millions, tear out >>> all that hair and >>> hit all those roadblocks >>> when the very thing we >>> are trying to >>> achieve is already available? >>> >>> Yes, that's right, if you >>> really, really, really >>> want to build a >>> native app then why don't >>> you just build a native >>> app? There are >>> numerous tools, >>> languages, IDEs, >>> toolchains and libraries that >>> enable you to build >>> awesome *true* native >>> apps! I just don't >>> think JavaFX is one of >>> them :-) >>> >>> And it doesn't have to be >>> one of those toolkits >>> because JavaFX >>> can be used to build an >>> entirely different class >>> of application >>> and I now strongly >>> believe that this is the >>> kind of app we should >>> be concentrating on. >>> That class (or classes) >>> of app is one that >>> is not so heavily >>> dependent on the native >>> Look and Feel and >>> doesn't need to be. >>> There are probably >>> hundreds of thousands of >>> apps that are like this. >>> They are everywhere and >>> JavaFX is >>> *perfect* for them! >>> >>> Scott Palmer has argued >>> that this approach is not >>> valid (and >>> sorry Scott if am >>> inaccurately paraphrasing >>> you). He cites >>> examples such as Chrome, >>> Firefox and even MS >>> Office as proof that >>> this approach does not >>> work. However, my >>> response to that would >>> be to say that just >>> because these are >>> examples of where the >>> developers got it >>> seriously wrong, they do >>> not prove that this >>> approach can't work and >>> isn't working all over >>> the marketplace. >>> >>> There is no need to >>> develop crappy, mistake >>> ridden software by >>> using a toolkit such as >>> JavaFX in a way that does >>> not attempt to >>> emulate the native Look >>> and Feel and the fact >>> that even big >>> companies like Google >>> *still* clearly get it >>> horribly wrong >>> doesn't imply that we >>> *all* have to be so >>> ineffective. >>> >>> Part of my newly-found >>> aversion to emulated >>> native Look and Feel >>> comes from my many years >>> of both developing and >>> using Swing >>> applications. Sure, I >>> know there are *some* >>> (handful?) >>> successful Swing apps, >>> most notably those >>> developed with the >>> NetBeans RCP, but in >>> general Swing has failed >>> to have any >>> penetration into serious >>> commercial software. >>> Why? Well, there >>> are several reasons (and >>> a lot are due to Java >>> itself) but, for >>> me, I was never satisfied >>> with the so-called native >>> Look and Feel >>> options that come with >>> Swing. I have been (and >>> still am) very >>> critical of the Windows >>> Look and Feel in Swing in >>> particular >>> because, even today, >>> there is a vast gulf >>> between an actual >>> native Windows >>> application and a Swing >>> application with this Look >>> and Feel. So much so >>> that I still want to >>> almost knock my >>> monitor off the desk when >>> I am using an application >>> developed in >>> this way. For me, this >>> is not acceptable and >>> such an application >>> could never be released >>> as a serious commercial >>> product. >>> >>> And that's pretty much >>> what this all boils down >>> to: developing >>> serious commercial software. >>> >>> If you are interested in >>> developing something else >>> then these >>> lengthy comments (am I >>> *still* going?) probably >>> do not apply to >>> you :-) >>> >>> So to summarise, I argue >>> that it is not possible >>> to develop >>> serious commercial >>> software using emulated >>> Look and Feel in >>> JavaFX or in *any* UI >>> toolkit. I *strongly* >>> recommend that we >>> all work together to make >>> JavaFX as good as it can >>> be (which is >>> absolutely awesome) by >>> focusing on the core >>> product, the API, the >>> performance, the feature >>> set, the stability *and* >>> the supported >>> platforms rather than >>> throw good money after >>> bad on a *wonderful* >>> goal that ultimately can >>> never be reached... >>> >>> Just my 2 bits, >>> >>> Felix >>> >>> P.S. I surely hope I have >>> not offended any/all >>> those who either >>> disagree with the main >>> points or who still >>> believe that native >>> Look and Feel is viable. >>> I remind you all that I >>> am on my knees >>> bowing with respect to >>> the rock stars I referred >>> to and anyone >>> else working on similar >>> projects. Absolutely no >>> offence is >>> intended, I am merely >>> expressing my >>> (passionate) feelings on this >>> subject. >>> >>> >>> On 9 December 2013 >>> 19:10, Felix Bembrick >>> >> > >>> wrote: >>> >>> >>> >>> On 9 December >>> 2013 16:10, Scott >>> Palmer >>> >> > >>> wrote: >>> >>> >>> On Dec 8, >>> 2013, at 9:18 >>> PM, Felix >>> Bembrick >>> >> > >>> wrote: >>> >>> >>> >>> Firstly, it >>> will *never* >>> be possible >>> to completely >>> emulate the >>> native look >>> and feel. >>> >>> Sure it is. >>> Though it may >>> never be >>> practical, for >>> many of the >>> reasons you have >>> given. >>> >>> My reasoning >>> is: why bother? >>> >>> Because it >>> matters. As >>> computer literate >>> developers, we often >>> don't realize >>> what trips other >>> people up. I get >>> so frustrated >>> with apps these >>> days because they >>> have become hard >>> to use >>> simply because >>> the developers >>> tried to define >>> their own look >>> and feel. For >>> example, Chrome >>> and Firefox... Or >>> Microsoft >>> Office... >>> Where did the >>> title bar go in >>> chrome? >>> Where have all >>> the menus gone in >>> Chrome, Firefox >>> andOffice? I >>> can find them, >>> but when I have >>> to play tech >>> support over the >>> phone to my >>> parents these >>> changes are >>> massive problems. >>> I ask >>> my dad to move he >>> window by >>> dragging the >>> title bar (please >>> don't ask why he >>> doesn't know to >>> do this himself >>> after decades >>> of computer use) >>> and he says >>> "there is no >>> title bar"... I the >>> remember that >>> yes, chrome did >>> that... They got >>> rid of a >>> standard concept >>> in the OS' >>> windowing system >>> and screed the end >>> users. >>> >>> These apps became >>> harder to use >>> because of this >>> "innovation" in >>> the UI. >>> >>> Contrast this >>> with applications >>> on OS X where >>> getting the UI >>> right has always >>> been an important >>> priority for >>> developers. >>> Because adhering >>> to the system >>> look and feel has >>> always been >>> strongly >>> encouraged the >>> system is much >>> easier to use. >>> >>> These days, >>> many apps do >>> not look 100% >>> native and >>> may have >>> their own >>> controls or >>> look and feel >>> in general. >>> >>> Yes, but to what >>> end? They are now >>> more difficult to >>> use. >>> >>> Why not >>> channel all >>> that massive >>> effort in >>> constructing >>> an emulated >>> native look >>> and feel into >>> simply making >>> JavaFX better >>> overall? >>> >>> But I agree here. >>> The general look >>> isn't the main >>> issue.. E.g. >>> little variations >>> in color and >>> minor tweaks to a >>> few pixels >>> here and there >>> don't really >>> matter. What >>> does matter is when >>> you change the >>> order of buttons, >>> like Okay & >>> Cancel which have >>> standard places >>> that are >>> different between >>> Mac and Windows, or >>> you move the >>> About menu item >>> from the >>> Application menu >>> on an OS >>> X app to the help >>> menu! because >>> that is where you >>> find it on >>> Windows. Those >>> things matter. >>> >>> >>> Scott >>> >>> Felix >>> >>> >>> >>> On 9 December >>> 2013 12:35, >>> Pedro Duque >>> Vieira >>> >> >wrote: >>> >>> Thanks! >>> >>> @Jasper: >>> Yes, >>> that's >>> very >>> interesting! >>> Forgot >>> that was >>> possible >>> to do in >>> CSS. >>> >>> >>> On >>> Mon, >>> Dec >>> 9, >>> 2013 >>> at >>> 12:15 >>> AM, >>> Stephen >>> Winnall >>> >> > >>> wrote: >>> >>> It >>> may >>> be >>> possible >>> to >>> change the >>> LOOK >>> with >>> CSS, >>> but >>> not the >>> FEEL, >>> which >>> >>> is >>> >>> where >>> Java >>> apps >>> have >>> traditionally >>> failed big >>> time. >>> >>> Some >>> things that >>> I >>> don?t >>> think >>> can >>> be >>> changed >>> with CSS: >>> >>> 1) texts >>> 2) >>> order >>> of >>> buttons >>> 3) >>> escape characters >>> for >>> shortcuts >>> 4) menus >>> 5) >>> system-level >>> stuff >>> (double-clicking >>> on >>> files, dropping >>> files on >>> applications, >>> ?) >>> 6) >>> filesystem >>> conventions >>> 7) ... >>> >>> I >>> think >>> FXML >>> can >>> fix >>> some >>> of >>> these, but >>> not >>> all. >>> So it >>> seems >>> to me >>> that a >>> LaF >>> in >>> JFX >>> will >>> consist >>> of at >>> least: >>> >>> >>> - >>> one >>> or >>> more >>> CSS files >>> >>> - >>> one >>> or >>> more >>> FXML >>> files >>> >>> - >>> some >>> plumbing >>> at >>> the >>> system level >>> >>> It >>> would >>> be >>> nice >>> to >>> have >>> a set >>> of >>> proper LaFs >>> for >>> each >>> major >>> platform >>> >>> with >>> >>> an >>> appropriate >>> common API. >>> >>> Steve >>> >>> On 9 >>> Dec >>> 2013, >>> at 00:20, >>> Jasper >>> Potts >>> >> > >>> wrote: >>> >>> You >>> can >>> set >>> skin >>> classes >>> from >>> CSS >>> so should >>> be able >>> to do >>> everything >>> >>> you >>> >>> could >>> with >>> Swing >>> and >>> more. >>> With >>> just >>> a CSS >>> file >>> and >>> skins as >>> and when >>> needed. >>> >>> Jasper >>> >>> On >>> Dec >>> 8, >>> 2013, >>> at >>> 3:00 >>> PM, >>> Jonathan >>> Giles >>> >> >>> >>> wrote: >>> >>> At >>> present >>> there >>> are >>> no >>> plans >>> to >>> introduce >>> any >>> further >>> API >>> or >>> functionality >>> in >>> this >>> area, >>> but >>> if >>> there >>> is >>> something >>> you >>> are >>> wanting >>> then >>> you >>> should >>> file >>> feature >>> requests >>> in >>> Jira. >>> >>> -- >>> Jonathan >>> >>> On >>> 9/12/2013 >>> 11:54 >>> a.m., >>> Pedro >>> Duque >>> Vieira >>> wrote: >>> Hi, >>> >>> Is >>> there >>> any >>> Look >>> and >>> Feel >>> mechanism >>> in >>> place, >>> like >>> the >>> one >>> in >>> Swing? >>> >>> That >>> >>> doesn't >>> appear >>> to >>> exist.. >>> >>> Are >>> there >>> any >>> plans >>> to >>> add >>> one? >>> You >>> can >>> only >>> do >>> so >>> much >>> with >>> CSS... >>> >>> Thanks >>> in >>> advance, >>> best >>> regards, >>> >>> -- >>> Pedro >>> Duque Vieira >>> >>> >>> >>> >>> >>> >> >> > > From krueger at lesspain.de Wed Dec 11 06:23:38 2013 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Wed, 11 Dec 2013 15:23:38 +0100 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: <52A77563.3080801@oracle.com> References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> <52A5E0BA.1010800@oracle.com> <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> <52A6041C.9080208@oracle.com> <52A6790D.2050007@oracle.com> <52A74E97.6050707@oracle.com> <52A75B56.6030008@oracle.com> <52A7723D.50907@oracle.com> <52A77563.3080801@oracle.com> Message-ID: Amen and +1. On Tue, Dec 10, 2013 at 9:11 PM, Stephen F Northover wrote: > As I said before, it would be up to the application. If it was critical > that your application do something like embed Excel, then it could live with > the limitations. Perhaps you work in a company where you have a custom > native control that you are already embedding in Swing and you want to > migrate to FX. These sorts of applications could live with the limitations. > > Steve > > On 2013-12-10 3:03 PM, Felix Bembrick wrote: >> >> Do you think it's either feasible or viable to the extent that a >> successful implementation would not have the limitations such as lack of >> transparency or be limited by the inability to apply Node transforms and >> functionality to native controls? I mean, such a large undertaking would >> only made sense if the end result gave us something we don't have now and >> that it worked well. >> >> Felix >> >> >> >> On 11 December 2013 06:57, Stephen F Northover >> > wrote: >> >> I was very interesting in heavyweight integration a while back but >> could not get anyone very enthusiastic about it. >> >> Steve >> >> >> On 2013-12-10 1:35 PM, Felix Bembrick wrote: >>> >>> Stephen, why do you refer to this discussion as "academic"? >>> >>> Felix >>> >>> >>> >>> On 11 December 2013 05:20, Stephen F Northover >>> >> > wrote: >>> >>> Yes, if it helps an application ship using the components and >>> technology they need to make their product successful. In >>> any case, this discussion is academic. >>> >>> Steve >>> >>> >>> On 2013-12-10 12:25 PM, Anthony Petrov wrote: >>> >>> We have implemented HW/LW components mixing for AWT/Swing >>> in the past [1]. However, the feature is very limited (no >>> transparency support, etc.), and the limitations come >>> from native system capabilities that can't be worked >>> around easily. >>> >>> Do we really want something limited like this in FX? >>> >>> [1] >>> >>> http://www.oracle.com/technetwork/articles/java/mixing-components-433992.html >>> >>> -- best regards, >>> Anthony >>> >>> On 12/10/2013 06:14 AM, Stephen F Northover wrote: >>> >>> At one point, I was very interested in seeing this >>> happen but there >>> wasn't the band width and resources. >>> >>> Steve >>> >>> On 2013-12-09 1:00 PM, Felix Bembrick wrote: >>> >>> What can we expect from the JavaFX team in this >>> regard in the future? >>> I know we have talked about mixing lightweight >>> and heavyweight >>> controls in the same context but is it going to >>> happen? Is this >>> planned for JFX9 perhaps? Is it *really* even >>> feasible? >>> >>> On 10 Dec 2013, at 4:55, Stephen F Northover >>> >> > wrote: >>> >>> Today, you can only exercise the choice by >>> writing native code and >>> you face heavyweight / lightweight issues >>> depending on the platform >>> and API. >>> >>> Steve >>> >>> On 2013-12-09 12:31 PM, Felix Bembrick wrote: >>> Stephen, I thoroughly agree that JavaFX >>> is by far the best choice >>> for non-native apps/widgets which is >>> precisely my point. They are >>> the kind of apps perfect for using JavaFX. >>> >>> But you refer to giving people the choice >>> to go native where >>> appropriate. How can I exercise that >>> choice? Where is the support >>> for native widgets in JavaFX? >>> >>> And isn't the real Holy Grail being able >>> to mix native and >>> non-native widgets in the same app with >>> all features of Node being >>> available to every widget, with all the >>> effects and transforms, all >>> the CSS/styling and with all the performance? >>> >>> Could JavaFX ever be such a toolkit? >>> >>> On 10 Dec 2013, at 2:24, Stephen F >>> Northover >>> >> > >>> wrote: >>> >>> Here are my thoughts on the matter. >>> Give people the choice of >>> whether to use native or non-native >>> components. In some >>> applications, everything will be >>> non-native. In others, only the >>> main content area will be non-native >>> and the rest will be native. >>> In some mobile applications, perhaps >>> the preference pages will be >>> native and other parts will not. >>> >>> JavaFX is the best choice for >>> non-native widgets and we are >>> committed to making it the best >>> toolkit all around. >>> >>> Steve >>> >>> On 2013-12-09 9:49 AM, Scott >>> Palmer wrote: >>> I agree that perfect sync with >>> native look and feels is not what >>> is required and not worth the >>> effort. I do think though that >>> major concepts in the platform's >>> look and feel should (must!) be >>> followed or the user experience >>> is ruined. >>> >>> The example of the order of the >>> ok and cancel buttons has been >>> brought up already. But that >>> isn't even the most important one. >>> >>> Things like shortcut keys. CTRL-C >>> to copy on windows, Command-C to >>> copy on Mac. Standard menu >>> layouts, right-click behaviour and >>> standard context menus. They >>> just have to be in the right place. >>> That they look different doesn't >>> matter as much. And this doesn't >>> mean that you can't try new ideas >>> for UI. But basic things that >>> users expect to work should still >>> work. E.g. Command-Q on OS X >>> better quit the app :-) >>> >>> As noted already with my >>> reference to Office and >>> browsers.. Fully >>> native apps can be non-compliant >>> with the platforms look and >>> feel. So this isn't really a >>> Java-specific issue. >>> >>> Scott >>> >>> On Dec 9, 2013, at 4:24 AM, >>> Felix Bembrick >>> >> >>> > >>> wrote: >>> >>> Spoiler: This is something I >>> have become intensely passionate >>> about so this is likely to be >>> a long post... >>> >>> OK, so this (hijacked) thread >>> started out as a discussion of >>> options in JavaFX for >>> implementing "Look and Feel". >>> I think >>> everyone agrees that even >>> with CSS and skins, JavaFX >>> lacks the >>> built-in ability to define a >>> true Look *and* Feel. Further to >>> this, there has been >>> discussion on Twitter and >>> elsewhere >>> regarding *native* Look and >>> Feel and the merits of attempting >>> such an animal with JavaFX. >>> >>> It is on this topic that I >>> would like to add my 2 bits >>> (as I am >>> known to do)! I was going to >>> use my blog >>> http://justmy2bits.com >>> but decided I would be much >>> more likely to be able to engage >>> fellow JavaFX developers in a >>> positive, polite and respectful >>> conversation here. >>> >>> First, anyone who may follow >>> me on Twitter, in this forum >>> or when >>> I post in other forums >>> (anyone?) will probably be a >>> little bit >>> confused as to where I >>> actually stand on this issue. >>> Well, this >>> stems from the fact that I >>> have been giving confusing >>> (if not >>> conflicting) input into >>> various threads on this topic >>> for quite a >>> while. >>> >>> Why? >>> >>> Well, because until very >>> recently, I myself was >>> completely torn >>> on the subject of native Look >>> and Feel. In fact, I seemed to >>> oscillate on an almost daily >>> basis from thinking it's a great, >>> achievable idea to dismissing >>> such an idea on various >>> grounds. I >>> am swaying so much because I >>> have so much riding on successful >>> ports of JavaFX to iOS and >>> Android and because those >>> ports depend >>> heavily on resolving this >>> issue once and for all. >>> >>> Now I have had something of >>> an epiphany and reached a >>> conclusion. I now do not >>> believe that pouring large >>> (massive?) >>> amounts of resources into the >>> painstaking task of building a >>> fully compliant, fully >>> performant native Look and >>> Feel is >>> justifiable or worth the >>> effort. And let's be clear >>> about this: >>> it is a *lot* of effort! >>> >>> But before I proceed I just >>> want to say categorically how >>> much I >>> admire the thoroughly awesome >>> work/efforts of the likes of >>> Pedro >>> DV, Claudine Zillmann, >>> Hendrik Ebbers et. al. in >>> (trying ever so >>> hard) to bring native Look >>> and Feel to various >>> OS/platforms with >>> JavaFX. I cannot put in >>> words how much I am in awe of the >>> commitment, the attention to >>> detail, the technical >>> prowess, the >>> artistry and the drive of >>> these fantastic people. Their >>> work >>> will undoubtedly be extremely >>> useful to many developers >>> worldwide. >>> >>> I want to make all that >>> *perfectly clear* because now >>> I am going >>> to explain why I (probably) >>> will not be one of those >>> people and >>> (hopefully) do it with the >>> utmost respect for the >>> aforementioned >>> rock stars :-) >>> >>> Right, so back to the issue >>> of whether to or not to >>> implement or >>> use a native Look and Feel. >>> Some of the following >>> comments have >>> already been made by me on >>> other networks and in other >>> forums so >>> apologies if it seems a bit >>> repetitive to some. >>> >>> At first glance, the idea of >>> a native Look and Feel seems >>> almost >>> like the proverbial Holy >>> Grail. I mean, if such a >>> thing were >>> truly possible and viable, >>> who wouldn't want one? You >>> still have >>> your single codebase across >>> all platforms and you just just >>> plug-in the particular native >>> Look and Feel for your target >>> platform and voila! World >>> domination will surely soon >>> follow! >>> >>> Well, not quite. It's a >>> great idea but I am going out >>> on a limb >>> to claim that it has *never* >>> worked. Ever! And by "work" >>> I mean >>> so that your "not-so-native" >>> app looks and feels (which >>> includes >>> all aspects of behaviour, not >>> just appearance) *exactly* like a >>> true native app and *no one* >>> could tell you that it *wasn't* a >>> native app. >>> >>> Yes, I know there are masses >>> now screaming at their >>> monitors who >>> will undoubtedly cite the >>> numerous success stories of >>> Swing apps >>> or maybe even Qt or some >>> other cross-platform UI >>> toolkit and >>> maybe my standards/criteria >>> are harsher than others but I >>> stand >>> by my claim that this has >>> *never ever* really, really, >>> really >>> worked. >>> >>> OK, so why not? >>> >>> Here's my first point: I >>> postulate that such a noble >>> goal is not >>> actually achievable. It is >>> not actually achievable for a >>> number >>> of reasons. >>> >>> It is not actually achievable >>> because, in most cases, we do not >>> have access to the code that >>> implements the native controls on >>> each OS so, at best, we are >>> "guessing" when we try to >>> emulate all >>> aspects of their appearance >>> and behaviour. Try as we may, we >>> will never get *every* >>> control exactly right and I >>> firmly believe >>> that anything that purports >>> to be something else needs to be >>> *identical*. >>> >>> It is not actually achievable >>> because just as you feel you have >>> reached an acceptable level >>> of "compliance" (which I >>> again wager >>> is never 100%), the goal >>> posts will move. That is, >>> the OS vendor >>> will release an update and >>> even the minor ones can >>> change either >>> the appearance or behaviour >>> of controls, sometimes in subtle >>> ways, sometimes in not so >>> subtle ways. Either way, >>> there is then >>> going to be a period of time >>> where you are playing a >>> futile game >>> of catch-up and during that >>> time your "native" controls >>> will be >>> surely exposed for the >>> impostors they are. >>> >>> It is not actually achievable >>> because the same control on >>> one OS >>> can look and feel/behave >>> quite differently on another >>> OS which >>> leads to very poor levels of >>> reuse. >>> >>> It is not actually achievable >>> because many controls simply >>> can't >>> be emulated in using >>> Java/JavaFX most likely >>> because they have >>> exclusive access to native >>> system or OS calls that are not >>> accessible to Java or because >>> the expected levels of >>> performance >>> or "snappiness" cannot be >>> achieved using Java by any >>> means. Even >>> with JNA or JNI you would be >>> left scratching your head in many >>> cases. >>> >>> And, it is not actually >>> achievable because it's >>> simply too much >>> work to get anywhere near to >>> perfection! We are talking >>> *massive* amounts of effort >>> and very few people have >>> either the >>> talent, the eye, the >>> attention to detail or the >>> patience to see >>> such a project right through >>> to the end where *all* >>> controls are >>> covered. The rock stars I >>> mentioned earlier are the >>> exceptions >>> of course. There's clearly >>> zero point in emulating >>> *some* of the >>> controls only; you need the >>> *full set* or it's just not >>> viable. >>> >>> Finally, and to look at it >>> another way, what do we get >>> even if >>> some super-human delivers us >>> a native Look and Feel for every >>> possible platform? Well, a >>> massive maintenance nightmare >>> for a >>> start! This super-human >>> would basically be spending >>> all their >>> super time and using up all >>> their super powers just >>> keeping such >>> libraries current. >>> >>> So, if you are still with me, >>> why bother? Just consider if all >>> those rock stars (and super >>> heroes) concentrated all >>> their super >>> efforts into either improving >>> the features, stability, >>> performance or appearance of >>> JavaFX itself? Just think >>> what we >>> could achieve! >>> >>> And on the why bother theme, >>> why bother to devote all that >>> time >>> and effort, spend all those >>> millions, tear out all that >>> hair and >>> hit all those roadblocks when >>> the very thing we are trying to >>> achieve is already available? >>> >>> Yes, that's right, if you >>> really, really, really want >>> to build a >>> native app then why don't you >>> just build a native app? >>> There are >>> numerous tools, languages, >>> IDEs, toolchains and >>> libraries that >>> enable you to build awesome >>> *true* native apps! I just don't >>> think JavaFX is one of them :-) >>> >>> And it doesn't have to be one >>> of those toolkits because JavaFX >>> can be used to build an >>> entirely different class of >>> application >>> and I now strongly believe >>> that this is the kind of app >>> we should >>> be concentrating on. That >>> class (or classes) of app is >>> one that >>> is not so heavily dependent >>> on the native Look and Feel and >>> doesn't need to be. There >>> are probably hundreds of >>> thousands of >>> apps that are like this. >>> They are everywhere and >>> JavaFX is >>> *perfect* for them! >>> >>> Scott Palmer has argued that >>> this approach is not valid (and >>> sorry Scott if am >>> inaccurately paraphrasing >>> you). He cites >>> examples such as Chrome, >>> Firefox and even MS Office as >>> proof that >>> this approach does not work. >>> However, my response to that >>> would >>> be to say that just because >>> these are examples of where the >>> developers got it seriously >>> wrong, they do not prove that >>> this >>> approach can't work and isn't >>> working all over the marketplace. >>> >>> There is no need to develop >>> crappy, mistake ridden >>> software by >>> using a toolkit such as >>> JavaFX in a way that does not >>> attempt to >>> emulate the native Look and >>> Feel and the fact that even big >>> companies like Google *still* >>> clearly get it horribly wrong >>> doesn't imply that we *all* >>> have to be so ineffective. >>> >>> Part of my newly-found >>> aversion to emulated native >>> Look and Feel >>> comes from my many years of >>> both developing and using Swing >>> applications. Sure, I know >>> there are *some* (handful?) >>> successful Swing apps, most >>> notably those developed with the >>> NetBeans RCP, but in general >>> Swing has failed to have any >>> penetration into serious >>> commercial software. Why? >>> Well, there >>> are several reasons (and a >>> lot are due to Java itself) >>> but, for >>> me, I was never satisfied >>> with the so-called native >>> Look and Feel >>> options that come with Swing. >>> I have been (and still am) very >>> critical of the Windows Look >>> and Feel in Swing in particular >>> because, even today, there is >>> a vast gulf between an actual >>> native Windows application >>> and a Swing application with >>> this Look >>> and Feel. So much so that I >>> still want to almost knock my >>> monitor off the desk when I >>> am using an application >>> developed in >>> this way. For me, this is >>> not acceptable and such an >>> application >>> could never be released as a >>> serious commercial product. >>> >>> And that's pretty much what >>> this all boils down to: >>> developing >>> serious commercial software. >>> >>> If you are interested in >>> developing something else >>> then these >>> lengthy comments (am I >>> *still* going?) probably do >>> not apply to >>> you :-) >>> >>> So to summarise, I argue that >>> it is not possible to develop >>> serious commercial software >>> using emulated Look and Feel in >>> JavaFX or in *any* UI >>> toolkit. I *strongly* >>> recommend that we >>> all work together to make >>> JavaFX as good as it can be >>> (which is >>> absolutely awesome) by >>> focusing on the core product, >>> the API, the >>> performance, the feature set, >>> the stability *and* the supported >>> platforms rather than throw >>> good money after bad on a >>> *wonderful* >>> goal that ultimately can >>> never be reached... >>> >>> Just my 2 bits, >>> >>> Felix >>> >>> P.S. I surely hope I have not >>> offended any/all those who either >>> disagree with the main points >>> or who still believe that native >>> Look and Feel is viable. I >>> remind you all that I am on >>> my knees >>> bowing with respect to the >>> rock stars I referred to and >>> anyone >>> else working on similar >>> projects. Absolutely no >>> offence is >>> intended, I am merely >>> expressing my (passionate) >>> feelings on this >>> subject. >>> >>> >>> On 9 December 2013 19:10, >>> Felix Bembrick >>> >> >>> > >>> wrote: >>> >>> >>> >>> On 9 December 2013 >>> 16:10, Scott Palmer >>> >> >>> > >>> wrote: >>> >>> >>> On Dec 8, 2013, >>> at 9:18 PM, Felix >>> Bembrick >>> >>> >> >>> > >>> wrote: >>> >>> >>> >>> Firstly, it will >>> *never* be >>> possible to >>> completely >>> emulate the >>> native look >>> and feel. >>> >>> Sure it is. Though it >>> may never be >>> practical, for many >>> of the >>> reasons you have given. >>> >>> My reasoning is: >>> why bother? >>> >>> Because it matters. >>> As computer literate >>> developers, we often >>> don't realize what >>> trips other people >>> up. I get so frustrated >>> with apps these days >>> because they have >>> become hard to use >>> simply because the >>> developers tried to >>> define their own look From martin.sladecek at oracle.com Wed Dec 11 06:30:35 2013 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Wed, 11 Dec 2013 15:30:35 +0100 Subject: Review request: RT-29816,Custom cursor lost over ComboBox options Message-ID: <52A8770B.7090806@oracle.com> Hi Kevin, please review: https://javafx-jira.kenai.com/browse/RT-29816 webrev: http://cr.openjdk.java.net/~msladecek/rt-29816/webrev.00/ Thanks, -Martin From swpalmer at gmail.com Wed Dec 11 07:58:33 2013 From: swpalmer at gmail.com (Scott Palmer) Date: Wed, 11 Dec 2013 10:58:33 -0500 Subject: b119 layout issues Message-ID: I'm seeing very significant layout issues in b119. Content is rendering outside of it's parent container when it shouldn't be. The parent should be re-sizing to accomodate the content, but it isn't, or it is resizing based on an old size of the child content. Borders are not painting properly when a component resizes. Sometimes the border remains at the old, larger, size while the background and content is painted at the newer smaller size. I have a feeling it is going to take some effort to make a reproducible test case. Are there known layout issues with b119? Scott From ngalarneau at ABINITIO.COM Wed Dec 11 08:51:25 2013 From: ngalarneau at ABINITIO.COM (ngalarneau at ABINITIO.COM) Date: Wed, 11 Dec 2013 11:51:25 -0500 Subject: Reloading stylesheets In-Reply-To: References: <52A70740.4010906@media-interactive.de> <52A70980.7030009@bestsolution.at> <52A710F3.6090604@media-interactive.de> <52A712CD.30705@bestsolution.at> <52A72EF9.40804@media-interactive.de> <52A72FFB.6060002@bestsolution.at> <52A7337A.7090005@media-interactive.de> Message-ID: Hi David, I have stylesheet SWITCHING working fine. I can switch between 2 different stylesheets on disk without tearing down & rebuilding my Scene. To do this I simply do: scene.stylesheets.clear() scene.stylesheets.add(differentStylesheet) and the changes show up immediately (I'm assuming those 2 lines cause a .css recalculation & a pulse). I would like to get stylesheet RELOADING to work in my JavaFX 8 app. By this I mean picking up changes in a single .css file. This would allow the developers to tweak the stylesheet & reload to see the effects immediately. Unfortunately, it feels like the Filename of the stylesheet is the Key in a cache that isn't getting cleared by my code above. Nothing visible happens when I do: scene.stylesheets.clear() scene.stylesheets.add(sameStylesheet) Given your description below, my impression is that RELOADING should also work... Thank you for any suggestions, Neil From: David Grieve To: Werner Lehmann Cc: openjfx-dev at openjdk.java.net Date: 12/10/2013 11:10 AM Subject: Re: Reloading stylesheets Sent by: openjfx-dev-bounces at openjdk.java.net The way it works in 8.0 is that there is a cache of loaded stylesheets. When a scene or parent adds a stylesheet, the stylesheet is added to the cache. Any other scene or parent that uses the same stylesheet will get the one from cache. If a scene or parent later removes the stylesheet, the stylesheet is removed from the cache and the css style cache for any scene or parent that referenced that stylesheet is cleared (since the set of styles may have changed). Any scene or parent that referenced the now removed stylesheet is told to reapply its styles. Since the stylesheet is no longer in cache, it will be re-parsed (or reloaded if there is a binary version of the stylesheet) when it is called for by a scene or parent. The way it worked in 2.x was an abomination. On Dec 10, 2013, at 10:30 AM, Werner Lehmann wrote: > Interesting. Assuming the stylesheets are still cached, how would it know when to reload and not use the cached sheet? Or has sheet processing been optimized so much that caching is not necessary anymore... > > On 10.12.2013 16:15, Tom Schindl wrote: >> No on FX8 you need to remove and readd them! So the only thing different >> is that you omit the reload-call on FX8. NOTICE from Ab Initio: This email (including any attachments) may contain information that is subject to confidentiality obligations or is legally privileged, and sender does not waive confidentiality or privilege. If received in error, please notify the sender, delete this email, and make no further use, disclosure, or distribution. From jasper.potts at oracle.com Wed Dec 11 08:52:56 2013 From: jasper.potts at oracle.com (Jasper Potts) Date: Wed, 11 Dec 2013 08:52:56 -0800 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> <52A5E0BA.1010800@oracle.com> <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> <52A6041C.9080208@oracle.com> <52A6790D.2050007@oracle.com> <52A74E97.6050707@oracle.com> <52A75B56.6030008@oracle.com> <52A7723D.50907@oracle.com> <52A77563.3080801@oracle.com> Message-ID: <90491B23-4632-4C02-85AE-F464832DCB6A@oracle.com> I feel it's possible to emulate native well enough that vast majority of users would not notice. But I don't think it's commercially viable as the cost to create and maintain is just too high. I worked for years with apps using Swing native LAF and later on worked on Swing team on LAFs including creating the complete new Nimbus LAF. So I have felt the effort involved in full LAFs. When I started the direction for JavaFX skins and looks we made a very conscious decision to not do native looks. What we decided is to separate the look from the feel. There were already a good proportion of windows apps including Microsofts own Office that did not use the native look. Though they all tried to feel native, bar some new concepts each added like a ribbon control. So with FX we decided to go for single modern look with a native like feel. We went to a lot of effort to do a look that would not looks out of place on current platforms. Also in other areas we have put huge efforts in to be native like font rendering and file dialogs as they just have to be native. We never ruled out native look and feel in FX and I think technically its possible but decided we would not provide one as our resources were better focused in other areas. I also have amazing respect for Claudine Zillmann, Hendrik Ebbers etc. As they have done amazing job with Aqua look and I hope the community keeps working on cool projects like theirs. I dissagree that there are cases that can't be handled with Skin and CSS because all our controls implementation is in the skin so replacing that gives you 100% control. It was designed to leave the option open to have a set of skins that use the native heavy weight controls if we wanted that option. We already do that on platforms like iOS where there is just no way to emulate a text field for example with all the complex touch editing. Jasper > On Dec 11, 2013, at 6:23 AM, Robert Kr?ger wrote: > > Amen and +1. > > On Tue, Dec 10, 2013 at 9:11 PM, Stephen F Northover > wrote: >> As I said before, it would be up to the application. If it was critical >> that your application do something like embed Excel, then it could live with >> the limitations. Perhaps you work in a company where you have a custom >> native control that you are already embedding in Swing and you want to >> migrate to FX. These sorts of applications could live with the limitations. >> >> Steve >> >>> On 2013-12-10 3:03 PM, Felix Bembrick wrote: >>> >>> Do you think it's either feasible or viable to the extent that a >>> successful implementation would not have the limitations such as lack of >>> transparency or be limited by the inability to apply Node transforms and >>> functionality to native controls? I mean, such a large undertaking would >>> only made sense if the end result gave us something we don't have now and >>> that it worked well. >>> >>> Felix >>> >>> >>> >>> On 11 December 2013 06:57, Stephen F Northover >>> > wrote: >>> >>> I was very interesting in heavyweight integration a while back but >>> could not get anyone very enthusiastic about it. >>> >>> Steve >>> >>> >>>> On 2013-12-10 1:35 PM, Felix Bembrick wrote: >>>> >>>> Stephen, why do you refer to this discussion as "academic"? >>>> >>>> Felix >>>> >>>> >>>> >>>> On 11 December 2013 05:20, Stephen F Northover >>>> >>> > wrote: >>>> >>>> Yes, if it helps an application ship using the components and >>>> technology they need to make their product successful. In >>>> any case, this discussion is academic. >>>> >>>> Steve >>>> >>>> >>>> On 2013-12-10 12:25 PM, Anthony Petrov wrote: >>>> >>>> We have implemented HW/LW components mixing for AWT/Swing >>>> in the past [1]. However, the feature is very limited (no >>>> transparency support, etc.), and the limitations come >>>> from native system capabilities that can't be worked >>>> around easily. >>>> >>>> Do we really want something limited like this in FX? >>>> >>>> [1] >>>> >>>> http://www.oracle.com/technetwork/articles/java/mixing-components-433992.html >>>> >>>> -- best regards, >>>> Anthony >>>> >>>> On 12/10/2013 06:14 AM, Stephen F Northover wrote: >>>> >>>> At one point, I was very interested in seeing this >>>> happen but there >>>> wasn't the band width and resources. >>>> >>>> Steve >>>> >>>> On 2013-12-09 1:00 PM, Felix Bembrick wrote: >>>> >>>> What can we expect from the JavaFX team in this >>>> regard in the future? >>>> I know we have talked about mixing lightweight >>>> and heavyweight >>>> controls in the same context but is it going to >>>> happen? Is this >>>> planned for JFX9 perhaps? Is it *really* even >>>> feasible? >>>> >>>> On 10 Dec 2013, at 4:55, Stephen F Northover >>>> >>> > wrote: >>>> >>>> Today, you can only exercise the choice by >>>> writing native code and >>>> you face heavyweight / lightweight issues >>>> depending on the platform >>>> and API. >>>> >>>> Steve >>>> >>>> On 2013-12-09 12:31 PM, Felix Bembrick wrote: >>>> Stephen, I thoroughly agree that JavaFX >>>> is by far the best choice >>>> for non-native apps/widgets which is >>>> precisely my point. They are >>>> the kind of apps perfect for using JavaFX. >>>> >>>> But you refer to giving people the choice >>>> to go native where >>>> appropriate. How can I exercise that >>>> choice? Where is the support >>>> for native widgets in JavaFX? >>>> >>>> And isn't the real Holy Grail being able >>>> to mix native and >>>> non-native widgets in the same app with >>>> all features of Node being >>>> available to every widget, with all the >>>> effects and transforms, all >>>> the CSS/styling and with all the performance? >>>> >>>> Could JavaFX ever be such a toolkit? >>>> >>>> On 10 Dec 2013, at 2:24, Stephen F >>>> Northover >>>> >>> > >>>> wrote: >>>> >>>> Here are my thoughts on the matter. >>>> Give people the choice of >>>> whether to use native or non-native >>>> components. In some >>>> applications, everything will be >>>> non-native. In others, only the >>>> main content area will be non-native >>>> and the rest will be native. >>>> In some mobile applications, perhaps >>>> the preference pages will be >>>> native and other parts will not. >>>> >>>> JavaFX is the best choice for >>>> non-native widgets and we are >>>> committed to making it the best >>>> toolkit all around. >>>> >>>> Steve >>>> >>>> On 2013-12-09 9:49 AM, Scott >>>> Palmer wrote: >>>> I agree that perfect sync with >>>> native look and feels is not what >>>> is required and not worth the >>>> effort. I do think though that >>>> major concepts in the platform's >>>> look and feel should (must!) be >>>> followed or the user experience >>>> is ruined. >>>> >>>> The example of the order of the >>>> ok and cancel buttons has been >>>> brought up already. But that >>>> isn't even the most important one. >>>> >>>> Things like shortcut keys. CTRL-C >>>> to copy on windows, Command-C to >>>> copy on Mac. Standard menu >>>> layouts, right-click behaviour and >>>> standard context menus. They >>>> just have to be in the right place. >>>> That they look different doesn't >>>> matter as much. And this doesn't >>>> mean that you can't try new ideas >>>> for UI. But basic things that >>>> users expect to work should still >>>> work. E.g. Command-Q on OS X >>>> better quit the app :-) >>>> >>>> As noted already with my >>>> reference to Office and >>>> browsers.. Fully >>>> native apps can be non-compliant >>>> with the platforms look and >>>> feel. So this isn't really a >>>> Java-specific issue. >>>> >>>> Scott >>>> >>>> On Dec 9, 2013, at 4:24 AM, >>>> Felix Bembrick >>>> >>> >>>> > >>>> wrote: >>>> >>>> Spoiler: This is something I >>>> have become intensely passionate >>>> about so this is likely to be >>>> a long post... >>>> >>>> OK, so this (hijacked) thread >>>> started out as a discussion of >>>> options in JavaFX for >>>> implementing "Look and Feel". >>>> I think >>>> everyone agrees that even >>>> with CSS and skins, JavaFX >>>> lacks the >>>> built-in ability to define a >>>> true Look *and* Feel. Further to >>>> this, there has been >>>> discussion on Twitter and >>>> elsewhere >>>> regarding *native* Look and >>>> Feel and the merits of attempting >>>> such an animal with JavaFX. >>>> >>>> It is on this topic that I >>>> would like to add my 2 bits >>>> (as I am >>>> known to do)! I was going to >>>> use my blog >>>> http://justmy2bits.com >>>> but decided I would be much >>>> more likely to be able to engage >>>> fellow JavaFX developers in a >>>> positive, polite and respectful >>>> conversation here. >>>> >>>> First, anyone who may follow >>>> me on Twitter, in this forum >>>> or when >>>> I post in other forums >>>> (anyone?) will probably be a >>>> little bit >>>> confused as to where I >>>> actually stand on this issue. >>>> Well, this >>>> stems from the fact that I >>>> have been giving confusing >>>> (if not >>>> conflicting) input into >>>> various threads on this topic >>>> for quite a >>>> while. >>>> >>>> Why? >>>> >>>> Well, because until very >>>> recently, I myself was >>>> completely torn >>>> on the subject of native Look >>>> and Feel. In fact, I seemed to >>>> oscillate on an almost daily >>>> basis from thinking it's a great, >>>> achievable idea to dismissing >>>> such an idea on various >>>> grounds. I >>>> am swaying so much because I >>>> have so much riding on successful >>>> ports of JavaFX to iOS and >>>> Android and because those >>>> ports depend >>>> heavily on resolving this >>>> issue once and for all. >>>> >>>> Now I have had something of >>>> an epiphany and reached a >>>> conclusion. I now do not >>>> believe that pouring large >>>> (massive?) >>>> amounts of resources into the >>>> painstaking task of building a >>>> fully compliant, fully >>>> performant native Look and >>>> Feel is >>>> justifiable or worth the >>>> effort. And let's be clear >>>> about this: >>>> it is a *lot* of effort! >>>> >>>> But before I proceed I just >>>> want to say categorically how >>>> much I >>>> admire the thoroughly awesome >>>> work/efforts of the likes of >>>> Pedro >>>> DV, Claudine Zillmann, >>>> Hendrik Ebbers et. al. in >>>> (trying ever so >>>> hard) to bring native Look >>>> and Feel to various >>>> OS/platforms with >>>> JavaFX. I cannot put in >>>> words how much I am in awe of the >>>> commitment, the attention to >>>> detail, the technical >>>> prowess, the >>>> artistry and the drive of >>>> these fantastic people. Their >>>> work >>>> will undoubtedly be extremely >>>> useful to many developers >>>> worldwide. >>>> >>>> I want to make all that >>>> *perfectly clear* because now >>>> I am going >>>> to explain why I (probably) >>>> will not be one of those >>>> people and >>>> (hopefully) do it with the >>>> utmost respect for the >>>> aforementioned >>>> rock stars :-) >>>> >>>> Right, so back to the issue >>>> of whether to or not to >>>> implement or >>>> use a native Look and Feel. >>>> Some of the following >>>> comments have >>>> already been made by me on >>>> other networks and in other >>>> forums so >>>> apologies if it seems a bit >>>> repetitive to some. >>>> >>>> At first glance, the idea of >>>> a native Look and Feel seems >>>> almost >>>> like the proverbial Holy >>>> Grail. I mean, if such a >>>> thing were >>>> truly possible and viable, >>>> who wouldn't want one? You >>>> still have >>>> your single codebase across >>>> all platforms and you just just >>>> plug-in the particular native >>>> Look and Feel for your target >>>> platform and voila! World >>>> domination will surely soon >>>> follow! >>>> >>>> Well, not quite. It's a >>>> great idea but I am going out >>>> on a limb >>>> to claim that it has *never* >>>> worked. Ever! And by "work" >>>> I mean >>>> so that your "not-so-native" >>>> app looks and feels (which >>>> includes >>>> all aspects of behaviour, not >>>> just appearance) *exactly* like a >>>> true native app and *no one* >>>> could tell you that it *wasn't* a >>>> native app. >>>> >>>> Yes, I know there are masses >>>> now screaming at their >>>> monitors who >>>> will undoubtedly cite the >>>> numerous success stories of >>>> Swing apps >>>> or maybe even Qt or some >>>> other cross-platform UI >>>> toolkit and >>>> maybe my standards/criteria >>>> are harsher than others but I >>>> stand >>>> by my claim that this has >>>> *never ever* really, really, >>>> really >>>> worked. >>>> >>>> OK, so why not? >>>> >>>> Here's my first point: I >>>> postulate that such a noble >>>> goal is not >>>> actually achievable. It is >>>> not actually achievable for a >>>> number >>>> of reasons. >>>> >>>> It is not actually achievable >>>> because, in most cases, we do not >>>> have access to the code that >>>> implements the native controls on >>>> each OS so, at best, we are >>>> "guessing" when we try to >>>> emulate all >>>> aspects of their appearance >>>> and behaviour. Try as we may, we >>>> will never get *every* >>>> control exactly right and I >>>> firmly believe >>>> that anything that purports >>>> to be something else needs to be >>>> *identical*. >>>> >>>> It is not actually achievable >>>> because just as you feel you have >>>> reached an acceptable level >>>> of "compliance" (which I >>>> again wager >>>> is never 100%), the goal >>>> posts will move. That is, >>>> the OS vendor >>>> will release an update and >>>> even the minor ones can >>>> change either >>>> the appearance or behaviour >>>> of controls, sometimes in subtle >>>> ways, sometimes in not so >>>> subtle ways. Either way, >>>> there is then >>>> going to be a period of time >>>> where you are playing a >>>> futile game >>>> of catch-up and during that >>>> time your "native" controls >>>> will be >>>> surely exposed for the >>>> impostors they are. >>>> >>>> It is not actually achievable >>>> because the same control on >>>> one OS >>>> can look and feel/behave >>>> quite differently on another >>>> OS which >>>> leads to very poor levels of >>>> reuse. >>>> >>>> It is not actually achievable >>>> because many controls simply >>>> can't >>>> be emulated in using >>>> Java/JavaFX most likely >>>> because they have >>>> exclusive access to native >>>> system or OS calls that are not >>>> accessible to Java or because >>>> the expected levels of >>>> performance >>>> or "snappiness" cannot be >>>> achieved using Java by any >>>> means. Even >>>> with JNA or JNI you would be >>>> left scratching your head in many >>>> cases. >>>> >>>> And, it is not actually >>>> achievable because it's >>>> simply too much >>>> work to get anywhere near to >>>> perfection! We are talking >>>> *massive* amounts of effort >>>> and very few people have >>>> either the >>>> talent, the eye, the >>>> attention to detail or the >>>> patience to see >>>> such a project right through >>>> to the end where *all* >>>> controls are >>>> covered. The rock stars I >>>> mentioned earlier are the >>>> exceptions >>>> of course. There's clearly >>>> zero point in emulating >>>> *some* of the >>>> controls only; you need the >>>> *full set* or it's just not >>>> viable. >>>> >>>> Finally, and to look at it >>>> another way, what do we get >>>> even if >>>> some super-human delivers us >>>> a native Look and Feel for every >>>> possible platform? Well, a >>>> massive maintenance nightmare >>>> for a >>>> start! This super-human >>>> would basically be spending >>>> all their >>>> super time and using up all >>>> their super powers just >>>> keeping such >>>> libraries current. >>>> >>>> So, if you are still with me, >>>> why bother? Just consider if all >>>> those rock stars (and super >>>> heroes) concentrated all >>>> their super >>>> efforts into either improving >>>> the features, stability, >>>> performance or appearance of >>>> JavaFX itself? Just think >>>> what we >>>> could achieve! >>>> >>>> And on the why bother theme, >>>> why bother to devote all that >>>> time >>>> and effort, spend all those >>>> millions, tear out all that >>>> hair and >>>> hit all those roadblocks when >>>> the very thing we are trying to >>>> achieve is already available? >>>> >>>> Yes, that's right, if you >>>> really, really, really want >>>> to build a >>>> native app then why don't you >>>> just build a native app? >>>> There are >>>> numerous tools, languages, >>>> IDEs, toolchains and >>>> libraries that >>>> enable you to build awesome >>>> *true* native apps! I just don't >>>> think JavaFX is one of them :-) >>>> >>>> And it doesn't have to be one >>>> of those toolkits because JavaFX >>>> can be used to build an >>>> entirely different class of >>>> application >>>> and I now strongly believe >>>> that this is the kind of app >>>> we should >>>> be concentrating on. That >>>> class (or classes) of app is >>>> one that >>>> is not so heavily dependent >>>> on the native Look and Feel and >>>> doesn't need to be. There >>>> are probably hundreds of >>>> thousands of >>>> apps that are like this. >>>> They are everywhere and >>>> JavaFX is >>>> *perfect* for them! >>>> >>>> Scott Palmer has argued that >>>> this approach is not valid (and >>>> sorry Scott if am >>>> inaccurately paraphrasing >>>> you). He cites >>>> examples such as Chrome, >>>> Firefox and even MS Office as >>>> proof that >>>> this approach does not work. >>>> However, my response to that >>>> would >>>> be to say that just because >>>> these are examples of where the >>>> developers got it seriously >>>> wrong, they do not prove that >>>> this >>>> approach can't work and isn't >>>> working all over the marketplace. >>>> >>>> There is no need to develop >>>> crappy, mistake ridden >>>> software by >>>> using a toolkit such as >>>> JavaFX in a way that does not >>>> attempt to >>>> emulate the native Look and >>>> Feel and the fact that even big >>>> companies like Google *still* >>>> clearly get it horribly wrong >>>> doesn't imply that we *all* >>>> have to be so ineffective. >>>> >>>> Part of my newly-found >>>> aversion to emulated native >>>> Look and Feel >>>> comes from my many years of >>>> both developing and using Swing >>>> applications. Sure, I know >>>> there are *some* (handful?) >>>> successful Swing apps, most >>>> notably those developed with the >>>> NetBeans RCP, but in general >>>> Swing has failed to have any >>>> penetration into serious >>>> commercial software. Why? >>>> Well, there >>>> are several reasons (and a >>>> lot are due to Java itself) >>>> but, for >>>> me, I was never satisfied >>>> with the so-called native >>>> Look and Feel >>>> options that come with Swing. >>>> I have been (and still am) very >>>> critical of the Windows Look >>>> and Feel in Swing in particular >>>> because, even today, there is >>>> a vast gulf between an actual >>>> native Windows application >>>> and a Swing application with >>>> this Look >>>> and Feel. So much so that I >>>> still want to almost knock my >>>> monitor off the desk when I >>>> am using an application >>>> developed in >>>> this way. For me, this is >>>> not acceptable and such an >>>> application >>>> could never be released as a >>>> serious commercial product. >>>> >>>> And that's pretty much what >>>> this all boils down to: >>>> developing >>>> serious commercial software. >>>> >>>> If you are interested in >>>> developing something else >>>> then these >>>> lengthy comments (am I >>>> *still* going?) probably do >>>> not apply to >>>> you :-) >>>> >>>> So to summarise, I argue that >>>> it is not possible to develop >>>> serious commercial software >>>> using emulated Look and Feel in >>>> JavaFX or in *any* UI >>>> toolkit. I *strongly* >>>> recommend that we >>>> all work together to make >>>> JavaFX as good as it can be >>>> (which is >>>> absolutely awesome) by >>>> focusing on the core product, >>>> the API, the >>>> performance, the feature set, >>>> the stability *and* the supported >>>> platforms rather than throw >>>> good money after bad on a >>>> *wonderful* >>>> goal that ultimately can >>>> never be reached... >>>> >>>> Just my 2 bits, >>>> >>>> Felix >>>> >>>> P.S. I surely hope I have not >>>> offended any/all those who either >>>> disagree with the main points >>>> or who still believe that native >>>> Look and Feel is viable. I >>>> remind you all that I am on >>>> my knees >>>> bowing with respect to the >>>> rock stars I referred to and >>>> anyone >>>> else working on similar >>>> projects. Absolutely no >>>> offence is >>>> intended, I am merely >>>> expressing my (passionate) >>>> feelings on this >>>> subject. >>>> >>>> >>>> On 9 December 2013 19:10, >>>> Felix Bembrick >>>> >>> >>>> > >>>> wrote: >>>> >>>> >>>> >>>> On 9 December 2013 >>>> 16:10, Scott Palmer >>>> >>> >>>> > >>>> wrote: >>>> >>>> >>>> On Dec 8, 2013, >>>> at 9:18 PM, Felix >>>> Bembrick >>>> >>>> >>> >>>> > >>>> wrote: >>>> >>>> >>>> >>>> Firstly, it will >>>> *never* be >>>> possible to >>>> completely >>>> emulate the >>>> native look >>>> and feel. >>>> >>>> Sure it is. Though it >>>> may never be >>>> practical, for many >>>> of the >>>> reasons you have given. >>>> >>>> My reasoning is: >>>> why bother? >>>> >>>> Because it matters. >>>> As computer literate >>>> developers, we often >>>> don't realize what >>>> trips other people >>>> up. I get so frustrated >>>> with apps these days >>>> because they have >>>> become hard to use >>>> simply because the >>>> developers tried to >>>> define their own look From swpalmer at gmail.com Wed Dec 11 09:14:11 2013 From: swpalmer at gmail.com (Scott Palmer) Date: Wed, 11 Dec 2013 12:14:11 -0500 Subject: To Be Or Not To Be (Native), was:Look and feel mechanism? In-Reply-To: <90491B23-4632-4C02-85AE-F464832DCB6A@oracle.com> References: <1CF23C3C-65CE-4053-BFA2-D88829121011@gmail.com> <52A5E0BA.1010800@oracle.com> <234F7ADF-EC30-4DD7-A38A-BB117757AF78@gmail.com> <52A6041C.9080208@oracle.com> <52A6790D.2050007@oracle.com> <52A74E97.6050707@oracle.com> <52A75B56.6030008@oracle.com> <52A7723D.50907@oracle.com> <52A77563.3080801@oracle.com> <90491B23-4632-4C02-85AE-F464832DCB6A@oracle.com> Message-ID: This isn't directly related to native Look and Feel, but it is related to the ability to embed native controls in specific cases where they are needed... I want to be able to get some way to render in native code onto my JavaFX app. One option that was discussed was to have some sort of native surface that could be placed into the scene that we could render to with native code (e.g. a Direct3D or OpenGL surface). Even something as simple as getting access to the window handle of a Stage from native code much like what was done with JAWT would help. At least then we could manage our own native surface that was in a proper child of the main app window. Are Skins properly documented and supported in JavaFX 8? I know that Behaviours are not yet in that state. When Jasper wrote about "..option open to have a set of skins that use the native heavy weight controls if we wanted that option. We already do that on platforms like iOS where there is just no way to emulate a text field for example with all the complex touch editing." I wondered if it would be possible to get a native rendering surface into a desktop app just by making a custom skin? Could we make something as simple as a HeavyweightPanel and populate it with whatever native widgets we want via JNI? In my opinion restricting the use of true native controls to JNI access only isn't entirely unreasonable, but I don't know how it can be done with a JavaFX app currently as we just don't have the access to the native window. Having only JNI access forces one to deal with the platform specifics that Anthony Petrov has mentioned ("the limitations come from native system capabilities that can't be worked around easily.") up front - that may be a good thing. Scott On Wed, Dec 11, 2013 at 11:52 AM, Jasper Potts wrote: > I feel it's possible to emulate native well enough that vast majority of > users would not notice. But I don't think it's commercially viable as the > cost to create and maintain is just too high. I worked for years with apps > using Swing native LAF and later on worked on Swing team on LAFs including > creating the complete new Nimbus LAF. So I have felt the effort involved in > full LAFs. When I started the direction for JavaFX skins and looks we made > a very conscious decision to not do native looks. What we decided is to > separate the look from the feel. There were already a good proportion of > windows apps including Microsofts own Office that did not use the native > look. Though they all tried to feel native, bar some new concepts each > added like a ribbon control. So with FX we decided to go for single modern > look with a native like feel. We went to a lot of effort to do a look that > would not looks out of place on current platforms. Also in other areas we > have put huge efforts in to be native like font rendering and file dialogs > as they just have to be native. We never ruled out native look and feel in > FX and I think technically its possible but decided we would not provide > one as our resources were better focused in other areas. > > I also have amazing respect for Claudine Zillmann, Hendrik Ebbers etc. As > they have done amazing job with Aqua look and I hope the community keeps > working on cool projects like theirs. > > I dissagree that there are cases that can't be handled with Skin and CSS > because all our controls implementation is in the skin so replacing that > gives you 100% control. It was designed to leave the option open to have a > set of skins that use the native heavy weight controls if we wanted that > option. We already do that on platforms like iOS where there is just no way > to emulate a text field for example with all the complex touch editing. > > Jasper > > > On Dec 11, 2013, at 6:23 AM, Robert Kr?ger wrote: > > > > Amen and +1. > > > > On Tue, Dec 10, 2013 at 9:11 PM, Stephen F Northover > > wrote: > >> As I said before, it would be up to the application. If it was critical > >> that your application do something like embed Excel, then it could live > with > >> the limitations. Perhaps you work in a company where you have a custom > >> native control that you are already embedding in Swing and you want to > >> migrate to FX. These sorts of applications could live with the > limitations. > >> > >> Steve > >> > >>> On 2013-12-10 3:03 PM, Felix Bembrick wrote: > >>> > >>> Do you think it's either feasible or viable to the extent that a > >>> successful implementation would not have the limitations such as lack > of > >>> transparency or be limited by the inability to apply Node transforms > and > >>> functionality to native controls? I mean, such a large undertaking > would > >>> only made sense if the end result gave us something we don't have now > and > >>> that it worked well. > >>> > >>> Felix > >>> > >>> > >>> > >>> On 11 December 2013 06:57, Stephen F Northover > >>> > > wrote: > >>> > >>> I was very interesting in heavyweight integration a while back but > >>> could not get anyone very enthusiastic about it. > >>> > >>> Steve > >>> > >>> > >>>> On 2013-12-10 1:35 PM, Felix Bembrick wrote: > >>>> > >>>> Stephen, why do you refer to this discussion as "academic"? > >>>> > >>>> Felix > >>>> > >>>> > >>>> > >>>> On 11 December 2013 05:20, Stephen F Northover > >>>> >>>> > wrote: > >>>> > >>>> Yes, if it helps an application ship using the components and > >>>> technology they need to make their product successful. In > >>>> any case, this discussion is academic. > >>>> > >>>> Steve > >>>> > >>>> > >>>> On 2013-12-10 12:25 PM, Anthony Petrov wrote: > >>>> > >>>> We have implemented HW/LW components mixing for AWT/Swing > >>>> in the past [1]. However, the feature is very limited (no > >>>> transparency support, etc.), and the limitations come > >>>> from native system capabilities that can't be worked > >>>> around easily. > >>>> > >>>> Do we really want something limited like this in FX? > >>>> > >>>> [1] > >>>> > >>>> > http://www.oracle.com/technetwork/articles/java/mixing-components-433992.html > >>>> > >>>> -- best regards, > >>>> Anthony > >>>> > >>>> On 12/10/2013 06:14 AM, Stephen F Northover wrote: > >>>> > >>>> At one point, I was very interested in seeing this > >>>> happen but there > >>>> wasn't the band width and resources. > >>>> > >>>> Steve > >>>> > >>>> On 2013-12-09 1:00 PM, Felix Bembrick wrote: > >>>> > >>>> What can we expect from the JavaFX team in this > >>>> regard in the future? > >>>> I know we have talked about mixing lightweight > >>>> and heavyweight > >>>> controls in the same context but is it going to > >>>> happen? Is this > >>>> planned for JFX9 perhaps? Is it *really* even > >>>> feasible? > >>>> > >>>> On 10 Dec 2013, at 4:55, Stephen F Northover > >>>> >>>> > wrote: > >>>> > >>>> Today, you can only exercise the choice by > >>>> writing native code and > >>>> you face heavyweight / lightweight issues > >>>> depending on the platform > >>>> and API. > >>>> > >>>> Steve > >>>> > >>>> On 2013-12-09 12:31 PM, Felix Bembrick > wrote: > >>>> Stephen, I thoroughly agree that JavaFX > >>>> is by far the best choice > >>>> for non-native apps/widgets which is > >>>> precisely my point. They are > >>>> the kind of apps perfect for using JavaFX. > >>>> > >>>> But you refer to giving people the choice > >>>> to go native where > >>>> appropriate. How can I exercise that > >>>> choice? Where is the support > >>>> for native widgets in JavaFX? > >>>> > >>>> And isn't the real Holy Grail being able > >>>> to mix native and > >>>> non-native widgets in the same app with > >>>> all features of Node being > >>>> available to every widget, with all the > >>>> effects and transforms, all > >>>> the CSS/styling and with all the > performance? > >>>> > >>>> Could JavaFX ever be such a toolkit? > >>>> > >>>> On 10 Dec 2013, at 2:24, Stephen F > >>>> Northover > >>>> >>>> > > >>>> wrote: > >>>> > >>>> Here are my thoughts on the matter. > >>>> Give people the choice of > >>>> whether to use native or non-native > >>>> components. In some > >>>> applications, everything will be > >>>> non-native. In others, only the > >>>> main content area will be non-native > >>>> and the rest will be native. > >>>> In some mobile applications, perhaps > >>>> the preference pages will be > >>>> native and other parts will not. > >>>> > >>>> JavaFX is the best choice for > >>>> non-native widgets and we are > >>>> committed to making it the best > >>>> toolkit all around. > >>>> > >>>> Steve > >>>> > >>>> On 2013-12-09 9:49 AM, Scott > >>>> Palmer wrote: > >>>> I agree that perfect sync with > >>>> native look and feels is not what > >>>> is required and not worth the > >>>> effort. I do think though that > >>>> major concepts in the platform's > >>>> look and feel should (must!) be > >>>> followed or the user experience > >>>> is ruined. > >>>> > >>>> The example of the order of the > >>>> ok and cancel buttons has been > >>>> brought up already. But that > >>>> isn't even the most important one. > >>>> > >>>> Things like shortcut keys. CTRL-C > >>>> to copy on windows, Command-C to > >>>> copy on Mac. Standard menu > >>>> layouts, right-click behaviour and > >>>> standard context menus. They > >>>> just have to be in the right place. > >>>> That they look different doesn't > >>>> matter as much. And this doesn't > >>>> mean that you can't try new ideas > >>>> for UI. But basic things that > >>>> users expect to work should still > >>>> work. E.g. Command-Q on OS X > >>>> better quit the app :-) > >>>> > >>>> As noted already with my > >>>> reference to Office and > >>>> browsers.. Fully > >>>> native apps can be non-compliant > >>>> with the platforms look and > >>>> feel. So this isn't really a > >>>> Java-specific issue. > >>>> > >>>> Scott > >>>> > >>>> On Dec 9, 2013, at 4:24 AM, > >>>> Felix Bembrick > >>>> >>>> > >>>> > > >>>> wrote: > >>>> > >>>> Spoiler: This is something I > >>>> have become intensely > passionate > >>>> about so this is likely to be > >>>> a long post... > >>>> > >>>> OK, so this (hijacked) thread > >>>> started out as a discussion of > >>>> options in JavaFX for > >>>> implementing "Look and Feel". > >>>> I think > >>>> everyone agrees that even > >>>> with CSS and skins, JavaFX > >>>> lacks the > >>>> built-in ability to define a > >>>> true Look *and* Feel. Further > to > >>>> this, there has been > >>>> discussion on Twitter and > >>>> elsewhere > >>>> regarding *native* Look and > >>>> Feel and the merits of > attempting > >>>> such an animal with JavaFX. > >>>> > >>>> It is on this topic that I > >>>> would like to add my 2 bits > >>>> (as I am > >>>> known to do)! I was going to > >>>> use my blog > >>>> http://justmy2bits.com > >>>> but decided I would be much > >>>> more likely to be able to > engage > >>>> fellow JavaFX developers in a > >>>> positive, polite and respectful > >>>> conversation here. > >>>> > >>>> First, anyone who may follow > >>>> me on Twitter, in this forum > >>>> or when > >>>> I post in other forums > >>>> (anyone?) will probably be a > >>>> little bit > >>>> confused as to where I > >>>> actually stand on this issue. > >>>> Well, this > >>>> stems from the fact that I > >>>> have been giving confusing > >>>> (if not > >>>> conflicting) input into > >>>> various threads on this topic > >>>> for quite a > >>>> while. > >>>> > >>>> Why? > >>>> > >>>> Well, because until very > >>>> recently, I myself was > >>>> completely torn > >>>> on the subject of native Look > >>>> and Feel. In fact, I seemed to > >>>> oscillate on an almost daily > >>>> basis from thinking it's a > great, > >>>> achievable idea to dismissing > >>>> such an idea on various > >>>> grounds. I > >>>> am swaying so much because I > >>>> have so much riding on > successful > >>>> ports of JavaFX to iOS and > >>>> Android and because those > >>>> ports depend > >>>> heavily on resolving this > >>>> issue once and for all. > >>>> > >>>> Now I have had something of > >>>> an epiphany and reached a > >>>> conclusion. I now do not > >>>> believe that pouring large > >>>> (massive?) > >>>> amounts of resources into the > >>>> painstaking task of building a > >>>> fully compliant, fully > >>>> performant native Look and > >>>> Feel is > >>>> justifiable or worth the > >>>> effort. And let's be clear > >>>> about this: > >>>> it is a *lot* of effort! > >>>> > >>>> But before I proceed I just > >>>> want to say categorically how > >>>> much I > >>>> admire the thoroughly awesome > >>>> work/efforts of the likes of > >>>> Pedro > >>>> DV, Claudine Zillmann, > >>>> Hendrik Ebbers et. al. in > >>>> (trying ever so > >>>> hard) to bring native Look > >>>> and Feel to various > >>>> OS/platforms with > >>>> JavaFX. I cannot put in > >>>> words how much I am in awe of > the > >>>> commitment, the attention to > >>>> detail, the technical > >>>> prowess, the > >>>> artistry and the drive of > >>>> these fantastic people. Their > >>>> work > >>>> will undoubtedly be extremely > >>>> useful to many developers > >>>> worldwide. > >>>> > >>>> I want to make all that > >>>> *perfectly clear* because now > >>>> I am going > >>>> to explain why I (probably) > >>>> will not be one of those > >>>> people and > >>>> (hopefully) do it with the > >>>> utmost respect for the > >>>> aforementioned > >>>> rock stars :-) > >>>> > >>>> Right, so back to the issue > >>>> of whether to or not to > >>>> implement or > >>>> use a native Look and Feel. > >>>> Some of the following > >>>> comments have > >>>> already been made by me on > >>>> other networks and in other > >>>> forums so > >>>> apologies if it seems a bit > >>>> repetitive to some. > >>>> > >>>> At first glance, the idea of > >>>> a native Look and Feel seems > >>>> almost > >>>> like the proverbial Holy > >>>> Grail. I mean, if such a > >>>> thing were > >>>> truly possible and viable, > >>>> who wouldn't want one? You > >>>> still have > >>>> your single codebase across > >>>> all platforms and you just just > >>>> plug-in the particular native > >>>> Look and Feel for your target > >>>> platform and voila! World > >>>> domination will surely soon > >>>> follow! > >>>> > >>>> Well, not quite. It's a > >>>> great idea but I am going out > >>>> on a limb > >>>> to claim that it has *never* > >>>> worked. Ever! And by "work" > >>>> I mean > >>>> so that your "not-so-native" > >>>> app looks and feels (which > >>>> includes > >>>> all aspects of behaviour, not > >>>> just appearance) *exactly* > like a > >>>> true native app and *no one* > >>>> could tell you that it > *wasn't* a > >>>> native app. > >>>> > >>>> Yes, I know there are masses > >>>> now screaming at their > >>>> monitors who > >>>> will undoubtedly cite the > >>>> numerous success stories of > >>>> Swing apps > >>>> or maybe even Qt or some > >>>> other cross-platform UI > >>>> toolkit and > >>>> maybe my standards/criteria > >>>> are harsher than others but I > >>>> stand > >>>> by my claim that this has > >>>> *never ever* really, really, > >>>> really > >>>> worked. > >>>> > >>>> OK, so why not? > >>>> > >>>> Here's my first point: I > >>>> postulate that such a noble > >>>> goal is not > >>>> actually achievable. It is > >>>> not actually achievable for a > >>>> number > >>>> of reasons. > >>>> > >>>> It is not actually achievable > >>>> because, in most cases, we do > not > >>>> have access to the code that > >>>> implements the native controls > on > >>>> each OS so, at best, we are > >>>> "guessing" when we try to > >>>> emulate all > >>>> aspects of their appearance > >>>> and behaviour. Try as we may, > we > >>>> will never get *every* > >>>> control exactly right and I > >>>> firmly believe > >>>> that anything that purports > >>>> to be something else needs to > be > >>>> *identical*. > >>>> > >>>> It is not actually achievable > >>>> because just as you feel you > have > >>>> reached an acceptable level > >>>> of "compliance" (which I > >>>> again wager > >>>> is never 100%), the goal > >>>> posts will move. That is, > >>>> the OS vendor > >>>> will release an update and > >>>> even the minor ones can > >>>> change either > >>>> the appearance or behaviour > >>>> of controls, sometimes in > subtle > >>>> ways, sometimes in not so > >>>> subtle ways. Either way, > >>>> there is then > >>>> going to be a period of time > >>>> where you are playing a > >>>> futile game > >>>> of catch-up and during that > >>>> time your "native" controls > >>>> will be > >>>> surely exposed for the > >>>> impostors they are. > >>>> > >>>> It is not actually achievable > >>>> because the same control on > >>>> one OS > >>>> can look and feel/behave > >>>> quite differently on another > >>>> OS which > >>>> leads to very poor levels of > >>>> reuse. > >>>> > >>>> It is not actually achievable > >>>> because many controls simply > >>>> can't > >>>> be emulated in using > >>>> Java/JavaFX most likely > >>>> because they have > >>>> exclusive access to native > >>>> system or OS calls that are not > >>>> accessible to Java or because > >>>> the expected levels of > >>>> performance > >>>> or "snappiness" cannot be > >>>> achieved using Java by any > >>>> means. Even > >>>> with JNA or JNI you would be > >>>> left scratching your head in > many > >>>> cases. > >>>> > >>>> And, it is not actually > >>>> achievable because it's > >>>> simply too much > >>>> work to get anywhere near to > >>>> perfection! We are talking > >>>> *massive* amounts of effort > >>>> and very few people have > >>>> either the > >>>> talent, the eye, the > >>>> attention to detail or the > >>>> patience to see > >>>> such a project right through > >>>> to the end where *all* > >>>> controls are > >>>> covered. The rock stars I > >>>> mentioned earlier are the > >>>> exceptions > >>>> of course. There's clearly > >>>> zero point in emulating > >>>> *some* of the > >>>> controls only; you need the > >>>> *full set* or it's just not > >>>> viable. > >>>> > >>>> Finally, and to look at it > >>>> another way, what do we get > >>>> even if > >>>> some super-human delivers us > >>>> a native Look and Feel for > every > >>>> possible platform? Well, a > >>>> massive maintenance nightmare > >>>> for a > >>>> start! This super-human > >>>> would basically be spending > >>>> all their > >>>> super time and using up all > >>>> their super powers just > >>>> keeping such > >>>> libraries current. > >>>> > >>>> So, if you are still with me, > >>>> why bother? Just consider if > all > >>>> those rock stars (and super > >>>> heroes) concentrated all > >>>> their super > >>>> efforts into either improving > >>>> the features, stability, > >>>> performance or appearance of > >>>> JavaFX itself? Just think > >>>> what we > >>>> could achieve! > >>>> > >>>> And on the why bother theme, > >>>> why bother to devote all that > >>>> time > >>>> and effort, spend all those > >>>> millions, tear out all that > >>>> hair and > >>>> hit all those roadblocks when > >>>> the very thing we are trying to > >>>> achieve is already available? > >>>> > >>>> Yes, that's right, if you > >>>> really, really, really want > >>>> to build a > >>>> native app then why don't you > >>>> just build a native app? > >>>> There are > >>>> numerous tools, languages, > >>>> IDEs, toolchains and > >>>> libraries that > >>>> enable you to build awesome > >>>> *true* native apps! I just > don't > >>>> think JavaFX is one of them :-) > >>>> > >>>> And it doesn't have to be one > >>>> of those toolkits because > JavaFX > >>>> can be used to build an > >>>> entirely different class of > >>>> application > >>>> and I now strongly believe > >>>> that this is the kind of app > >>>> we should > >>>> be concentrating on. That > >>>> class (or classes) of app is > >>>> one that > >>>> is not so heavily dependent > >>>> on the native Look and Feel and > >>>> doesn't need to be. There > >>>> are probably hundreds of > >>>> thousands of > >>>> apps that are like this. > >>>> They are everywhere and > >>>> JavaFX is > >>>> *perfect* for them! > >>>> > >>>> Scott Palmer has argued that > >>>> this approach is not valid (and > >>>> sorry Scott if am > >>>> inaccurately paraphrasing > >>>> you). He cites > >>>> examples such as Chrome, > >>>> Firefox and even MS Office as > >>>> proof that > >>>> this approach does not work. > >>>> However, my response to that > >>>> would > >>>> be to say that just because > >>>> these are examples of where the > >>>> developers got it seriously > >>>> wrong, they do not prove that > >>>> this > >>>> approach can't work and isn't > >>>> working all over the > marketplace. > >>>> > >>>> There is no need to develop > >>>> crappy, mistake ridden > >>>> software by > >>>> using a toolkit such as > >>>> JavaFX in a way that does not > >>>> attempt to > >>>> emulate the native Look and > >>>> Feel and the fact that even big > >>>> companies like Google *still* > >>>> clearly get it horribly wrong > >>>> doesn't imply that we *all* > >>>> have to be so ineffective. > >>>> > >>>> Part of my newly-found > >>>> aversion to emulated native > >>>> Look and Feel > >>>> comes from my many years of > >>>> both developing and using Swing > >>>> applications. Sure, I know > >>>> there are *some* (handful?) > >>>> successful Swing apps, most > >>>> notably those developed with > the > >>>> NetBeans RCP, but in general > >>>> Swing has failed to have any > >>>> penetration into serious > >>>> commercial software. Why? > >>>> Well, there > >>>> are several reasons (and a > >>>> lot are due to Java itself) > >>>> but, for > >>>> me, I was never satisfied > >>>> with the so-called native > >>>> Look and Feel > >>>> options that come with Swing. > >>>> I have been (and still am) > very > >>>> critical of the Windows Look > >>>> and Feel in Swing in particular > >>>> because, even today, there is > >>>> a vast gulf between an actual > >>>> native Windows application > >>>> and a Swing application with > >>>> this Look > >>>> and Feel. So much so that I > >>>> still want to almost knock my > >>>> monitor off the desk when I > >>>> am using an application > >>>> developed in > >>>> this way. For me, this is > >>>> not acceptable and such an > >>>> application > >>>> could never be released as a > >>>> serious commercial product. > >>>> > >>>> And that's pretty much what > >>>> this all boils down to: > >>>> developing > >>>> serious commercial software. > >>>> > >>>> If you are interested in > >>>> developing something else > >>>> then these > >>>> lengthy comments (am I > >>>> *still* going?) probably do > >>>> not apply to > >>>> you :-) > >>>> > >>>> So to summarise, I argue that > >>>> it is not possible to develop > >>>> serious commercial software > >>>> using emulated Look and Feel in > >>>> JavaFX or in *any* UI > >>>> toolkit. I *strongly* > >>>> recommend that we > >>>> all work together to make > >>>> JavaFX as good as it can be > >>>> (which is > >>>> absolutely awesome) by > >>>> focusing on the core product, > >>>> the API, the > >>>> performance, the feature set, > >>>> the stability *and* the > supported > >>>> platforms rather than throw > >>>> good money after bad on a > >>>> *wonderful* > >>>> goal that ultimately can > >>>> never be reached... > >>>> > >>>> Just my 2 bits, > >>>> > >>>> Felix > >>>> > >>>> P.S. I surely hope I have not > >>>> offended any/all those who > either > >>>> disagree with the main points > >>>> or who still believe that > native > >>>> Look and Feel is viable. I > >>>> remind you all that I am on > >>>> my knees > >>>> bowing with respect to the > >>>> rock stars I referred to and > >>>> anyone > >>>> else working on similar > >>>> projects. Absolutely no > >>>> offence is > >>>> intended, I am merely > >>>> expressing my (passionate) > >>>> feelings on this > >>>> subject. > >>>> > >>>> > >>>> On 9 December 2013 19:10, > >>>> Felix Bembrick > >>>> >>>> > >>>> > > >>>> wrote: > >>>> > >>>> > >>>> > >>>> On 9 December 2013 > >>>> 16:10, Scott Palmer > >>>> >>>> > >>>> > > >>>> wrote: > >>>> > >>>> > >>>> On Dec 8, 2013, > >>>> at 9:18 PM, Felix > >>>> Bembrick > >>>> > >>>> >>>> > >>>> > > >>>> wrote: > >>>> > >>>> > >>>> > >>>> Firstly, it will > >>>> *never* be > >>>> possible to > >>>> completely > >>>> emulate the > >>>> native look > >>>> and feel. > >>>> > >>>> Sure it is. Though it > >>>> may never be > >>>> practical, for many > >>>> of the > >>>> reasons you have given. > >>>> > >>>> My reasoning is: > >>>> why bother? > >>>> > >>>> Because it matters. > >>>> As computer literate > >>>> developers, we often > >>>> don't realize what > >>>> trips other people > >>>> up. I get so > frustrated > >>>> with apps these days > >>>> because they have > >>>> become hard to use > >>>> simply because the > >>>> developers tried to > >>>> define their own look > From hang.vo at oracle.com Wed Dec 11 09:17:59 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 11 Dec 2013 17:17:59 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34244: fx applet hangs if java console is not shown Message-ID: <20131211171835.5F42962BF5@hg.openjdk.java.net> Changeset: b7940b612df5 Author: Felipe Heidrich Date: 2013-12-06 13:32 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/b7940b612df5 RT-34244: fx applet hangs if java console is not shown Reviewed-by: Kevin, Anthony, Thomas ! modules/graphics/src/main/java/com/sun/javafx/font/FontFactory.java ! modules/graphics/src/main/java/com/sun/javafx/font/LogicalFont.java ! modules/graphics/src/main/java/com/sun/javafx/font/PrismFontFactory.java ! modules/graphics/src/main/java/com/sun/javafx/font/PrismFontLoader.java ! modules/graphics/src/main/java/com/sun/prism/j2d/J2DFontFactory.java From david.grieve at oracle.com Wed Dec 11 09:19:37 2013 From: david.grieve at oracle.com (David Grieve) Date: Wed, 11 Dec 2013 12:19:37 -0500 Subject: Reloading stylesheets In-Reply-To: References: <52A70740.4010906@media-interactive.de> <52A70980.7030009@bestsolution.at> <52A710F3.6090604@media-interactive.de> <52A712CD.30705@bestsolution.at> <52A72EF9.40804@media-interactive.de> <52A72FFB.6060002@bestsolution.at> <52A7337A.7090005@media-interactive.de> Message-ID: <7342EEE9-C0FC-4AA4-865E-D40CA5A75F11@oracle.com> There is clearly a bug there somewhere. Would you mind filing an issue on javafx-jira.kenai.com? On Dec 11, 2013, at 11:51 AM, ngalarneau at abinitio.com wrote: > Hi David, > > I have stylesheet SWITCHING working fine. I can switch between 2 different > stylesheets on disk without tearing down & rebuilding my Scene. To do this > I simply do: > scene.stylesheets.clear() > scene.stylesheets.add(differentStylesheet) > and the changes show up immediately (I'm assuming those 2 lines cause a > .css recalculation & a pulse). > > I would like to get stylesheet RELOADING to work in my JavaFX 8 app. By > this I mean picking up changes in a single .css file. This would allow the > developers to tweak the stylesheet & reload to see the effects > immediately. > > Unfortunately, it feels like the Filename of the stylesheet is the Key in > a cache that isn't getting cleared by my code above. Nothing visible > happens when I do: > scene.stylesheets.clear() > scene.stylesheets.add(sameStylesheet) > > Given your description below, my impression is that RELOADING should also > work... > > Thank you for any suggestions, > > Neil > > > > > From: David Grieve > To: Werner Lehmann > Cc: openjfx-dev at openjdk.java.net > Date: 12/10/2013 11:10 AM > Subject: Re: Reloading stylesheets > Sent by: openjfx-dev-bounces at openjdk.java.net > > > > The way it works in 8.0 is that there is a cache of loaded stylesheets. > When a scene or parent adds a stylesheet, the stylesheet is added to the > cache. Any other scene or parent that uses the same stylesheet will get > the one from cache. If a scene or parent later removes the stylesheet, the > stylesheet is removed from the cache and the css style cache for any scene > or parent that referenced that stylesheet is cleared (since the set of > styles may have changed). Any scene or parent that referenced the now > removed stylesheet is told to reapply its styles. Since the stylesheet is > no longer in cache, it will be re-parsed (or reloaded if there is a binary > version of the stylesheet) when it is called for by a scene or parent. > > The way it worked in 2.x was an abomination. > > On Dec 10, 2013, at 10:30 AM, Werner Lehmann > wrote: > >> Interesting. Assuming the stylesheets are still cached, how would it > know when to reload and not use the cached sheet? Or has sheet processing > been optimized so much that caching is not necessary anymore... >> >> On 10.12.2013 16:15, Tom Schindl wrote: >>> No on FX8 you need to remove and readd them! So the only thing > different >>> is that you omit the reload-call on FX8. > > > > > > NOTICE from Ab Initio: This email (including any attachments) may contain > information that is subject to confidentiality obligations or is legally > privileged, and sender does not waive confidentiality or privilege. If > received in error, please notify the sender, delete this email, and make > no further use, disclosure, or distribution. From kevin.rushforth at oracle.com Wed Dec 11 10:49:05 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 11 Dec 2013 10:49:05 -0800 Subject: Please put release number in review requests Message-ID: <52A8B3A1.8050706@oracle.com> It would be helpful if the release for which a review is requested is in the subject line now that we have multiple releases in flight. A suggestion for this (from the Wiki ) is: 8 review request: RT-12345: summary of the bug 8u20 review request: RT-12345: summary of the bug Thanks. -- Kevin From steve.x.northover at oracle.com Wed Dec 11 12:42:44 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Wed, 11 Dec 2013 15:42:44 -0500 Subject: Please put release number in review requests In-Reply-To: <52A8B3A1.8050706@oracle.com> References: <52A8B3A1.8050706@oracle.com> Message-ID: <52A8CE44.3070604@oracle.com> This is a great idea. I have seen Anthony doing this already. Steve On 2013-12-11 1:49 PM, Kevin Rushforth wrote: > It would be helpful if the release for which a review is requested is > in the subject line now that we have multiple releases in flight. A > suggestion for this (from the Wiki > ) is: > > 8 review request: RT-12345: summary of the bug > 8u20 review request: RT-12345: summary of the bug > > Thanks. > > -- Kevin > From swpalmer at gmail.com Wed Dec 11 12:44:34 2013 From: swpalmer at gmail.com (Scott Palmer) Date: Wed, 11 Dec 2013 15:44:34 -0500 Subject: b119 layout issues In-Reply-To: References: Message-ID: This appears to be a significant regression in JavaFX 8. I have created https://javafx-jira.kenai.com/browse/RT-34849 with a test case. Scott On Wed, Dec 11, 2013 at 10:58 AM, Scott Palmer wrote: > I'm seeing very significant layout issues in b119. > Content is rendering outside of it's parent container when it shouldn't > be. The parent should be re-sizing to accomodate the content, but it isn't, > or it is resizing based on an old size of the child content. > > Borders are not painting properly when a component resizes. Sometimes the > border remains at the old, larger, size while the background and content is > painted at the newer smaller size. > > I have a feeling it is going to take some effort to make a reproducible > test case. Are there known layout issues with b119? > > > Scott > From David.Hill at Oracle.com Wed Dec 11 13:17:08 2013 From: David.Hill at Oracle.com (David Hill) Date: Wed, 11 Dec 2013 16:17:08 -0500 Subject: Fwd: CFV: New OpenJFX Committer: Vadim Pakhnushev In-Reply-To: <52790CF2.2040404@Oracle.com> References: <52790CF2.2040404@Oracle.com> Message-ID: <52A8D654.9000201@Oracle.com> I hereby nominate Vadim Pakhnushev to OpenJFX Committer. Vadim is a member of JavaFX Embedded team at Oracle. Vadim's changes are in Glass Windows/D3d: hg log -M -u "vadim" An incomplete list of Vadim's commits and reviews is also available by the following link: http://hg.openjdk.java.net/openjfx/8/master/rt/log?rev=vadim Votes are due by Dec 25, 2013. Only current OpenJFX Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. For Lazy Consensus voting instructions, see [2]. Nomination to a project Committer is described in [3]. [1] http://openjdk.java.net/census#openjfx [2] http://openjdk.java.net/bylaws#lazy-consensus [3] http://openjdk.java.net/projects#project-committer Thanks, Dave From felix.bembrick at gmail.com Wed Dec 11 13:17:11 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Thu, 12 Dec 2013 08:17:11 +1100 Subject: b119 layout issues In-Reply-To: References: Message-ID: <85B35F2F-F333-404F-90FF-E007416E1FE7@gmail.com> I am seeing these issues too... > On 12 Dec 2013, at 7:44, Scott Palmer wrote: > > This appears to be a significant regression in JavaFX 8. I have created > https://javafx-jira.kenai.com/browse/RT-34849 with a test case. > > Scott > > > >> On Wed, Dec 11, 2013 at 10:58 AM, Scott Palmer wrote: >> >> I'm seeing very significant layout issues in b119. >> Content is rendering outside of it's parent container when it shouldn't >> be. The parent should be re-sizing to accomodate the content, but it isn't, >> or it is resizing based on an old size of the child content. >> >> Borders are not painting properly when a component resizes. Sometimes the >> border remains at the old, larger, size while the background and content is >> painted at the newer smaller size. >> >> I have a feeling it is going to take some effort to make a reproducible >> test case. Are there known layout issues with b119? >> >> >> Scott >> From hang.vo at oracle.com Wed Dec 11 13:47:49 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 11 Dec 2013 21:47:49 +0000 Subject: hg: openjfx/8u-dev/rt: RT-34774: [RTL] Arrow keys navigation doesn't respect TableView orientation Message-ID: <20131211214848.B82F062C0A@hg.openjdk.java.net> Changeset: de2103867529 Author: leifs Date: 2013-12-11 13:34 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/de2103867529 RT-34774: [RTL] Arrow keys navigation doesn't respect TableView orientation ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableViewBehaviorBase.java From herve.girod at gmail.com Wed Dec 11 14:27:10 2013 From: herve.girod at gmail.com (Herve Girod) Date: Wed, 11 Dec 2013 23:27:10 +0100 Subject: Option to keep Stages always on top on JavaFX 8 ? Message-ID: I know that this option is not available for JavaFX 2.2, but is it planned for Java 8, and for what time frame if the answer is yes (for example, for initial release or later ?) . This is an important feature for us, because we need to show JavaFX content on top of Windows created on other programs (for example, elements on top of a cartographic system produced by a C++ program, but it's just an example). As there is no alwaysOnTop API on Stage in JavaFX, a workaround is to create a Swing Window, put a JFXPanel in it, and the Scene in the JFXPanel. However, multitouch gestures are not handled by Swing, so these are not working in this case. Our only option is then to put a Stage toFront(), and hope that the other content won't pop on top of JavaFX while the user click on it. This is OK if no part of our Stage need to be transparent to user events, and also if all of the other Windows are created prior to the JavaFX stage is created, but it is not always possible, and we envision cases where our workaround won't work. Regards, Herv? From hang.vo at oracle.com Wed Dec 11 14:47:46 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 11 Dec 2013 22:47:46 +0000 Subject: hg: openjfx/8u-dev/rt: RT-34442 Enable build for Linux/ARM targets on OS X Message-ID: <20131211224803.CCC8962C0E@hg.openjdk.java.net> Changeset: 005c29b27adf Author: Daniel Blaukopf Date: 2013-12-12 00:38 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/005c29b27adf RT-34442 Enable build for Linux/ARM targets on OS X Reviewed-by: ddhill ! buildSrc/armv6hf.gradle ! buildSrc/armv6sf.gradle From petr.pchelko at oracle.com Wed Dec 11 22:41:54 2013 From: petr.pchelko at oracle.com (Petr Pchelko) Date: Thu, 12 Dec 2013 10:41:54 +0400 Subject: CFV: New OpenJFX Committer: Vadim Pakhnushev In-Reply-To: <52A8D654.9000201@Oracle.com> References: <52790CF2.2040404@Oracle.com> <52A8D654.9000201@Oracle.com> Message-ID: <30298962-073F-4BC4-8257-070CC76BCB84@oracle.com> Vote: YES. With best regards. Petr. On 12.12.2013, at 1:17, David Hill wrote: > > I hereby nominate Vadim Pakhnushev to OpenJFX Committer. > > Vadim is a member of JavaFX Embedded team at Oracle. Vadim's changes are in Glass Windows/D3d: > > hg log -M -u "vadim" > > An incomplete list of Vadim's commits and reviews is also available by the following link: > > http://hg.openjdk.java.net/openjfx/8/master/rt/log?rev=vadim > > Votes are due by Dec 25, 2013. > > Only current OpenJFX Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. > > For Lazy Consensus voting instructions, see [2]. Nomination to a project Committer is described in [3]. > > [1] http://openjdk.java.net/census#openjfx > > [2] http://openjdk.java.net/bylaws#lazy-consensus > > [3] http://openjdk.java.net/projects#project-committer > > Thanks, > > Dave > > > From jerome.cambon at oracle.com Thu Dec 12 01:33:22 2013 From: jerome.cambon at oracle.com (Jerome Cambon) Date: Thu, 12 Dec 2013 10:33:22 +0100 Subject: Reloading stylesheets In-Reply-To: <7342EEE9-C0FC-4AA4-865E-D40CA5A75F11@oracle.com> References: <52A70740.4010906@media-interactive.de> <52A70980.7030009@bestsolution.at> <52A710F3.6090604@media-interactive.de> <52A712CD.30705@bestsolution.at> <52A72EF9.40804@media-interactive.de> <52A72FFB.6060002@bestsolution.at> <52A7337A.7090005@media-interactive.de> <7342EEE9-C0FC-4AA4-865E-D40CA5A75F11@oracle.com> Message-ID: <52A982E2.8030407@oracle.com> This is also impacting Scene Builder. I have filed a Jira with a test case: https://javafx-jira.kenai.com/browse/RT-34863 Jerome On 12/11/13 6:19 PM, David Grieve wrote: > There is clearly a bug there somewhere. Would you mind filing an issue on javafx-jira.kenai.com? > > On Dec 11, 2013, at 11:51 AM, ngalarneau at abinitio.com wrote: > >> Hi David, >> >> I have stylesheet SWITCHING working fine. I can switch between 2 different >> stylesheets on disk without tearing down & rebuilding my Scene. To do this >> I simply do: >> scene.stylesheets.clear() >> scene.stylesheets.add(differentStylesheet) >> and the changes show up immediately (I'm assuming those 2 lines cause a >> .css recalculation & a pulse). >> >> I would like to get stylesheet RELOADING to work in my JavaFX 8 app. By >> this I mean picking up changes in a single .css file. This would allow the >> developers to tweak the stylesheet & reload to see the effects >> immediately. >> >> Unfortunately, it feels like the Filename of the stylesheet is the Key in >> a cache that isn't getting cleared by my code above. Nothing visible >> happens when I do: >> scene.stylesheets.clear() >> scene.stylesheets.add(sameStylesheet) >> >> Given your description below, my impression is that RELOADING should also >> work... >> >> Thank you for any suggestions, >> >> Neil >> >> >> >> >> From: David Grieve >> To: Werner Lehmann >> Cc: openjfx-dev at openjdk.java.net >> Date: 12/10/2013 11:10 AM >> Subject: Re: Reloading stylesheets >> Sent by: openjfx-dev-bounces at openjdk.java.net >> >> >> >> The way it works in 8.0 is that there is a cache of loaded stylesheets. >> When a scene or parent adds a stylesheet, the stylesheet is added to the >> cache. Any other scene or parent that uses the same stylesheet will get >> the one from cache. If a scene or parent later removes the stylesheet, the >> stylesheet is removed from the cache and the css style cache for any scene >> or parent that referenced that stylesheet is cleared (since the set of >> styles may have changed). Any scene or parent that referenced the now >> removed stylesheet is told to reapply its styles. Since the stylesheet is >> no longer in cache, it will be re-parsed (or reloaded if there is a binary >> version of the stylesheet) when it is called for by a scene or parent. >> >> The way it worked in 2.x was an abomination. >> >> On Dec 10, 2013, at 10:30 AM, Werner Lehmann >> wrote: >> >>> Interesting. Assuming the stylesheets are still cached, how would it >> know when to reload and not use the cached sheet? Or has sheet processing >> been optimized so much that caching is not necessary anymore... >>> On 10.12.2013 16:15, Tom Schindl wrote: >>>> No on FX8 you need to remove and readd them! So the only thing >> different >>>> is that you omit the reload-call on FX8. >> >> >> >> >> NOTICE from Ab Initio: This email (including any attachments) may contain >> information that is subject to confidentiality obligations or is legally >> privileged, and sender does not waive confidentiality or privilege. If >> received in error, please notify the sender, delete this email, and make >> no further use, disclosure, or distribution. From hang.vo at oracle.com Thu Dec 12 01:33:09 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 12 Dec 2013 09:33:09 +0000 Subject: hg: openjfx/8u-dev/rt: RT-29816 Custom cursor lost over ComboBox options Message-ID: <20131212093403.BA01E62C20@hg.openjdk.java.net> Changeset: 0a745cbe7f58 Author: Martin Sladecek Date: 2013-12-12 10:23 +0100 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/0a745cbe7f58 RT-29816 Custom cursor lost over ComboBox options Reviewed by: kcr ! modules/graphics/src/main/java/javafx/scene/Scene.java ! modules/graphics/src/main/java/javafx/stage/PopupWindow.java ! modules/graphics/src/test/java/javafx/scene/MouseTest.java ! modules/graphics/src/test/java/javafx/stage/PopupTest.java From anthony.petrov at oracle.com Thu Dec 12 02:06:15 2013 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Thu, 12 Dec 2013 14:06:15 +0400 Subject: Fwd: CFV: New OpenJFX Committer: Vadim Pakhnushev In-Reply-To: <52A8D654.9000201@Oracle.com> References: <52790CF2.2040404@Oracle.com> <52A8D654.9000201@Oracle.com> Message-ID: <52A98A97.2010705@oracle.com> Vote: YES -- best regards, Anthony On 12/12/2013 01:17 AM, David Hill wrote: > > I hereby nominate Vadim Pakhnushev to OpenJFX Committer. > > Vadim is a member of JavaFX Embedded team at Oracle. Vadim's changes are > in Glass Windows/D3d: > > hg log -M -u "vadim" > > An incomplete list of Vadim's commits and reviews is also available by > the following link: > > http://hg.openjdk.java.net/openjfx/8/master/rt/log?rev=vadim > > Votes are due by Dec 25, 2013. > > Only current OpenJFX Committers [1] are eligible to vote on this > nomination. Votes must be cast in the open by replying to this mailing > list. > > For Lazy Consensus voting instructions, see [2]. Nomination to a project > Committer is described in [3]. > > [1] http://openjdk.java.net/census#openjfx > > [2] http://openjdk.java.net/bylaws#lazy-consensus > > [3] http://openjdk.java.net/projects#project-committer > > Thanks, > > Dave > > > From alexander.zvegintsev at oracle.com Thu Dec 12 02:37:12 2013 From: alexander.zvegintsev at oracle.com (Alexander Zvegintsev) Date: Thu, 12 Dec 2013 14:37:12 +0400 Subject: Fwd: CFV: New OpenJFX Committer: Vadim Pakhnushev In-Reply-To: <52A8D654.9000201@Oracle.com> References: <52790CF2.2040404@Oracle.com> <52A8D654.9000201@Oracle.com> Message-ID: <52A991D8.6010303@oracle.com> Vote: YES. Thanks, Alexander. On 12/12/2013 01:17 AM, David Hill wrote: > > I hereby nominate Vadim Pakhnushev to OpenJFX Committer. > > Vadim is a member of JavaFX Embedded team at Oracle. Vadim's changes > are in Glass Windows/D3d: > > hg log -M -u "vadim" > > An incomplete list of Vadim's commits and reviews is also available by > the following link: > > http://hg.openjdk.java.net/openjfx/8/master/rt/log?rev=vadim > > Votes are due by Dec 25, 2013. > > Only current OpenJFX Committers [1] are eligible to vote on this > nomination. Votes must be cast in the open by replying to this mailing > list. > > For Lazy Consensus voting instructions, see [2]. Nomination to a > project Committer is described in [3]. > > [1] http://openjdk.java.net/census#openjfx > > [2] http://openjdk.java.net/bylaws#lazy-consensus > > [3] http://openjdk.java.net/projects#project-committer > > Thanks, > > Dave > > > From artem.ananiev at oracle.com Thu Dec 12 03:59:55 2013 From: artem.ananiev at oracle.com (Artem Ananiev) Date: Thu, 12 Dec 2013 15:59:55 +0400 Subject: Fwd: CFV: New OpenJFX Committer: Vadim Pakhnushev In-Reply-To: <52A8D654.9000201@Oracle.com> References: <52790CF2.2040404@Oracle.com> <52A8D654.9000201@Oracle.com> Message-ID: <52A9A53B.7040704@oracle.com> Vote: yes Artem On 12/12/2013 1:17 AM, David Hill wrote: > > I hereby nominate Vadim Pakhnushev to OpenJFX Committer. > > Vadim is a member of JavaFX Embedded team at Oracle. Vadim's changes are > in Glass Windows/D3d: > > hg log -M -u "vadim" > > An incomplete list of Vadim's commits and reviews is also available by > the following link: > > http://hg.openjdk.java.net/openjfx/8/master/rt/log?rev=vadim > > Votes are due by Dec 25, 2013. > > Only current OpenJFX Committers [1] are eligible to vote on this > nomination. Votes must be cast in the open by replying to this mailing > list. > > For Lazy Consensus voting instructions, see [2]. Nomination to a project > Committer is described in [3]. > > [1] http://openjdk.java.net/census#openjfx > > [2] http://openjdk.java.net/bylaws#lazy-consensus > > [3] http://openjdk.java.net/projects#project-committer > > Thanks, > > Dave > > > From anton.tarasov at oracle.com Thu Dec 12 04:40:38 2013 From: anton.tarasov at oracle.com (Anton V. Tarasov) Date: Thu, 12 Dec 2013 16:40:38 +0400 Subject: Fwd: CFV: New OpenJFX Committer: Vadim Pakhnushev In-Reply-To: <52A8D654.9000201@Oracle.com> References: <52790CF2.2040404@Oracle.com> <52A8D654.9000201@Oracle.com> Message-ID: <52A9AEC6.8010607@oracle.com> Vote: YES Thanks, Anton. On 12.12.2013 1:17, David Hill wrote: > > I hereby nominate Vadim Pakhnushev to OpenJFX Committer. > > Vadim is a member of JavaFX Embedded team at Oracle. Vadim's changes are in Glass Windows/D3d: > > hg log -M -u "vadim" > > An incomplete list of Vadim's commits and reviews is also available by the following link: > > http://hg.openjdk.java.net/openjfx/8/master/rt/log?rev=vadim > > Votes are due by Dec 25, 2013. > > Only current OpenJFX Committers [1] are eligible to vote on this nomination. Votes must be cast in > the open by replying to this mailing list. > > For Lazy Consensus voting instructions, see [2]. Nomination to a project Committer is described in > [3]. > > [1] http://openjdk.java.net/census#openjfx > > [2] http://openjdk.java.net/bylaws#lazy-consensus > > [3] http://openjdk.java.net/projects#project-committer > > Thanks, > > Dave > > > From kevin.rushforth at oracle.com Thu Dec 12 04:45:38 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Thu, 12 Dec 2013 04:45:38 -0800 Subject: CFV: New OpenJFX Committer: Vadim Pakhnushev In-Reply-To: <52A8D654.9000201@Oracle.com> References: <52790CF2.2040404@Oracle.com> <52A8D654.9000201@Oracle.com> Message-ID: <52A9AFF2.80901@oracle.com> Vote: yes David Hill wrote: > > I hereby nominate Vadim Pakhnushev to OpenJFX Committer. > > Vadim is a member of JavaFX Embedded team at Oracle. Vadim's changes > are in Glass Windows/D3d: > > hg log -M -u "vadim" > > An incomplete list of Vadim's commits and reviews is also available by > the following link: > > http://hg.openjdk.java.net/openjfx/8/master/rt/log?rev=vadim > > Votes are due by Dec 25, 2013. > > Only current OpenJFX Committers [1] are eligible to vote on this > nomination. Votes must be cast in the open by replying to this mailing > list. > > For Lazy Consensus voting instructions, see [2]. Nomination to a > project Committer is described in [3]. > > [1] http://openjdk.java.net/census#openjfx > > [2] http://openjdk.java.net/bylaws#lazy-consensus > > [3] http://openjdk.java.net/projects#project-committer > > Thanks, > > Dave > > > From ngalarneau at ABINITIO.COM Thu Dec 12 04:48:45 2013 From: ngalarneau at ABINITIO.COM (ngalarneau at ABINITIO.COM) Date: Thu, 12 Dec 2013 07:48:45 -0500 Subject: Reloading stylesheets In-Reply-To: <52A982E2.8030407@oracle.com> References: <52A70740.4010906@media-interactive.de> <52A70980.7030009@bestsolution.at> <52A710F3.6090604@media-interactive.de> <52A712CD.30705@bestsolution.at> <52A72EF9.40804@media-interactive.de> <52A72FFB.6060002@bestsolution.at> <52A7337A.7090005@media-interactive.de> <7342EEE9-C0FC-4AA4-865E-D40CA5A75F11@oracle.com> <52A982E2.8030407@oracle.com> Message-ID: The Jira I filed is at: https://javafx-jira.kenai.com/browse/RT-34850 The slight difference is that I applied the stylesheet on the scene instead of the button. Neil From: Jerome Cambon To: openjfx-dev at openjdk.java.net Date: 12/12/2013 04:26 AM Subject: Re: Reloading stylesheets Sent by: openjfx-dev-bounces at openjdk.java.net This is also impacting Scene Builder. I have filed a Jira with a test case: https://javafx-jira.kenai.com/browse/RT-34863 Jerome On 12/11/13 6:19 PM, David Grieve wrote: > There is clearly a bug there somewhere. Would you mind filing an issue on javafx-jira.kenai.com? > > On Dec 11, 2013, at 11:51 AM, ngalarneau at abinitio.com wrote: > >> Hi David, >> >> I have stylesheet SWITCHING working fine. I can switch between 2 different >> stylesheets on disk without tearing down & rebuilding my Scene. To do this >> I simply do: >> scene.stylesheets.clear() >> scene.stylesheets.add(differentStylesheet) >> and the changes show up immediately (I'm assuming those 2 lines cause a >> .css recalculation & a pulse). >> >> I would like to get stylesheet RELOADING to work in my JavaFX 8 app. By >> this I mean picking up changes in a single .css file. This would allow the >> developers to tweak the stylesheet & reload to see the effects >> immediately. >> >> Unfortunately, it feels like the Filename of the stylesheet is the Key in >> a cache that isn't getting cleared by my code above. Nothing visible >> happens when I do: >> scene.stylesheets.clear() >> scene.stylesheets.add(sameStylesheet) >> >> Given your description below, my impression is that RELOADING should also >> work... >> >> Thank you for any suggestions, >> >> Neil >> >> >> >> >> From: David Grieve >> To: Werner Lehmann >> Cc: openjfx-dev at openjdk.java.net >> Date: 12/10/2013 11:10 AM >> Subject: Re: Reloading stylesheets >> Sent by: openjfx-dev-bounces at openjdk.java.net >> >> >> >> The way it works in 8.0 is that there is a cache of loaded stylesheets. >> When a scene or parent adds a stylesheet, the stylesheet is added to the >> cache. Any other scene or parent that uses the same stylesheet will get >> the one from cache. If a scene or parent later removes the stylesheet, the >> stylesheet is removed from the cache and the css style cache for any scene >> or parent that referenced that stylesheet is cleared (since the set of >> styles may have changed). Any scene or parent that referenced the now >> removed stylesheet is told to reapply its styles. Since the stylesheet is >> no longer in cache, it will be re-parsed (or reloaded if there is a binary >> version of the stylesheet) when it is called for by a scene or parent. >> >> The way it worked in 2.x was an abomination. >> >> On Dec 10, 2013, at 10:30 AM, Werner Lehmann >> wrote: >> >>> Interesting. Assuming the stylesheets are still cached, how would it >> know when to reload and not use the cached sheet? Or has sheet processing >> been optimized so much that caching is not necessary anymore... >>> On 10.12.2013 16:15, Tom Schindl wrote: >>>> No on FX8 you need to remove and readd them! So the only thing >> different >>>> is that you omit the reload-call on FX8. >> >> >> >> >> NOTICE from Ab Initio: This email (including any attachments) may contain >> information that is subject to confidentiality obligations or is legally >> privileged, and sender does not waive confidentiality or privilege. If >> received in error, please notify the sender, delete this email, and make >> no further use, disclosure, or distribution. NOTICE from Ab Initio: This email (including any attachments) may contain information that is subject to confidentiality obligations or is legally privileged, and sender does not waive confidentiality or privilege. If received in error, please notify the sender, delete this email, and make no further use, disclosure, or distribution. From kevin.rushforth at oracle.com Thu Dec 12 04:52:40 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Thu, 12 Dec 2013 04:52:40 -0800 Subject: Result: New OpenJFX Committer: Mark Howe Message-ID: <52A9B198.300@oracle.com> Voting for Mark Howe to OpenJFX Committer [1] is now closed. Yes: 6 Veto: 0 Abstain: 0 According to the Bylaws definition of Lazy Consensus, this is sufficient to approve the nomination. http://mail.openjdk.java.net/pipermail/openjfx-dev/2013-November/011500.html From david.grieve at oracle.com Thu Dec 12 05:51:53 2013 From: david.grieve at oracle.com (David Grieve) Date: Thu, 12 Dec 2013 08:51:53 -0500 Subject: Reloading stylesheets In-Reply-To: References: <52A70740.4010906@media-interactive.de> <52A70980.7030009@bestsolution.at> <52A710F3.6090604@media-interactive.de> <52A712CD.30705@bestsolution.at> <52A72EF9.40804@media-interactive.de> <52A72FFB.6060002@bestsolution.at> <52A7337A.7090005@media-interactive.de> <7342EEE9-C0FC-4AA4-865E-D40CA5A75F11@oracle.com> <52A982E2.8030407@oracle.com> Message-ID: Thanks, Neil. The underlying cause is likely to be the same. I'm going to resolve the one you created as a duplicate so the fact that this is critical to scene builder is not lost. On Dec 12, 2013, at 7:48 AM, ngalarneau at abinitio.com wrote: > The Jira I filed is at: > > https://javafx-jira.kenai.com/browse/RT-34850 > > The slight difference is that I applied the stylesheet on the scene > instead of the button. > > > Neil > > > > From: Jerome Cambon > To: openjfx-dev at openjdk.java.net > Date: 12/12/2013 04:26 AM > Subject: Re: Reloading stylesheets > Sent by: openjfx-dev-bounces at openjdk.java.net > > > > This is also impacting Scene Builder. > > I have filed a Jira with a test case: > https://javafx-jira.kenai.com/browse/RT-34863 > > Jerome > > On 12/11/13 6:19 PM, David Grieve wrote: >> There is clearly a bug there somewhere. Would you mind filing an issue > on javafx-jira.kenai.com? >> >> On Dec 11, 2013, at 11:51 AM, ngalarneau at abinitio.com wrote: >> >>> Hi David, >>> >>> I have stylesheet SWITCHING working fine. I can switch between 2 > different >>> stylesheets on disk without tearing down & rebuilding my Scene. To do > this >>> I simply do: >>> scene.stylesheets.clear() >>> scene.stylesheets.add(differentStylesheet) >>> and the changes show up immediately (I'm assuming those 2 lines cause a >>> .css recalculation & a pulse). >>> >>> I would like to get stylesheet RELOADING to work in my JavaFX 8 app. By >>> this I mean picking up changes in a single .css file. This would allow > the >>> developers to tweak the stylesheet & reload to see the effects >>> immediately. >>> >>> Unfortunately, it feels like the Filename of the stylesheet is the Key > in >>> a cache that isn't getting cleared by my code above. Nothing visible >>> happens when I do: >>> scene.stylesheets.clear() >>> scene.stylesheets.add(sameStylesheet) >>> >>> Given your description below, my impression is that RELOADING should > also >>> work... >>> >>> Thank you for any suggestions, >>> >>> Neil >>> >>> >>> >>> >>> From: David Grieve >>> To: Werner Lehmann >>> Cc: openjfx-dev at openjdk.java.net >>> Date: 12/10/2013 11:10 AM >>> Subject: Re: Reloading stylesheets >>> Sent by: openjfx-dev-bounces at openjdk.java.net >>> >>> >>> >>> The way it works in 8.0 is that there is a cache of loaded stylesheets. >>> When a scene or parent adds a stylesheet, the stylesheet is added to > the >>> cache. Any other scene or parent that uses the same stylesheet will get >>> the one from cache. If a scene or parent later removes the stylesheet, > the >>> stylesheet is removed from the cache and the css style cache for any > scene >>> or parent that referenced that stylesheet is cleared (since the set of >>> styles may have changed). Any scene or parent that referenced the now >>> removed stylesheet is told to reapply its styles. Since the stylesheet > is >>> no longer in cache, it will be re-parsed (or reloaded if there is a > binary >>> version of the stylesheet) when it is called for by a scene or parent. >>> >>> The way it worked in 2.x was an abomination. >>> >>> On Dec 10, 2013, at 10:30 AM, Werner Lehmann >>> wrote: >>> >>>> Interesting. Assuming the stylesheets are still cached, how would it >>> know when to reload and not use the cached sheet? Or has sheet > processing >>> been optimized so much that caching is not necessary anymore... >>>> On 10.12.2013 16:15, Tom Schindl wrote: >>>>> No on FX8 you need to remove and readd them! So the only thing >>> different >>>>> is that you omit the reload-call on FX8. >>> >>> >>> >>> >>> NOTICE from Ab Initio: This email (including any attachments) may > contain >>> information that is subject to confidentiality obligations or is > legally >>> privileged, and sender does not waive confidentiality or privilege. If >>> received in error, please notify the sender, delete this email, and > make >>> no further use, disclosure, or distribution. > > > > > > NOTICE from Ab Initio: This email (including any attachments) may contain > information that is subject to confidentiality obligations or is legally > privileged, and sender does not waive confidentiality or privilege. If > received in error, please notify the sender, delete this email, and make > no further use, disclosure, or distribution. From chien.yang at oracle.com Thu Dec 12 06:31:50 2013 From: chien.yang at oracle.com (Chien Yang) Date: Thu, 12 Dec 2013 06:31:50 -0800 Subject: CFV: New OpenJFX Committer: Vadim Pakhnushev In-Reply-To: <52A8D654.9000201@Oracle.com> References: <52790CF2.2040404@Oracle.com> <52A8D654.9000201@Oracle.com> Message-ID: <5430C09C-F046-484D-A199-64DFD0CDEC54@oracle.com> Vote: YES Sent from my mobile phone. Please excuse my brevity. > On Dec 11, 2013, at 1:17 PM, David Hill wrote: > > > I hereby nominate Vadim Pakhnushev to OpenJFX Committer. > > Vadim is a member of JavaFX Embedded team at Oracle. Vadim's changes are in Glass Windows/D3d: > > hg log -M -u "vadim" > > An incomplete list of Vadim's commits and reviews is also available by the following link: > > http://hg.openjdk.java.net/openjfx/8/master/rt/log?rev=vadim > > Votes are due by Dec 25, 2013. > > Only current OpenJFX Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. > > For Lazy Consensus voting instructions, see [2]. Nomination to a project Committer is described in [3]. > > [1] http://openjdk.java.net/census#openjfx > > [2] http://openjdk.java.net/bylaws#lazy-consensus > > [3] http://openjdk.java.net/projects#project-committer > > Thanks, > > Dave > > > From ngalarneau at ABINITIO.COM Thu Dec 12 07:02:10 2013 From: ngalarneau at ABINITIO.COM (ngalarneau at ABINITIO.COM) Date: Thu, 12 Dec 2013 10:02:10 -0500 Subject: Reloading stylesheets In-Reply-To: References: <52A70740.4010906@media-interactive.de> <52A70980.7030009@bestsolution.at> <52A710F3.6090604@media-interactive.de> <52A712CD.30705@bestsolution.at> <52A72EF9.40804@media-interactive.de> <52A72FFB.6060002@bestsolution.at> <52A7337A.7090005@media-interactive.de> <7342EEE9-C0FC-4AA4-865E-D40CA5A75F11@oracle.com> <52A982E2.8030407@oracle.com> Message-ID: David, Sounds good. Thanks, Neil From: David Grieve To: ngalarneau at abinitio.com Cc: "openjfx-dev at openjdk.java.net List" Date: 12/12/2013 08:52 AM Subject: Re: Reloading stylesheets Thanks, Neil. The underlying cause is likely to be the same. I'm going to resolve the one you created as a duplicate so the fact that this is critical to scene builder is not lost. On Dec 12, 2013, at 7:48 AM, ngalarneau at abinitio.com wrote: > The Jira I filed is at: > > https://javafx-jira.kenai.com/browse/RT-34850 > > The slight difference is that I applied the stylesheet on the scene > instead of the button. > > > Neil > > > > From: Jerome Cambon > To: openjfx-dev at openjdk.java.net > Date: 12/12/2013 04:26 AM > Subject: Re: Reloading stylesheets > Sent by: openjfx-dev-bounces at openjdk.java.net > > > > This is also impacting Scene Builder. > > I have filed a Jira with a test case: > https://javafx-jira.kenai.com/browse/RT-34863 > > Jerome > > On 12/11/13 6:19 PM, David Grieve wrote: >> There is clearly a bug there somewhere. Would you mind filing an issue > on javafx-jira.kenai.com? >> >> On Dec 11, 2013, at 11:51 AM, ngalarneau at abinitio.com wrote: >> >>> Hi David, >>> >>> I have stylesheet SWITCHING working fine. I can switch between 2 > different >>> stylesheets on disk without tearing down & rebuilding my Scene. To do > this >>> I simply do: >>> scene.stylesheets.clear() >>> scene.stylesheets.add(differentStylesheet) >>> and the changes show up immediately (I'm assuming those 2 lines cause a >>> .css recalculation & a pulse). >>> >>> I would like to get stylesheet RELOADING to work in my JavaFX 8 app. By >>> this I mean picking up changes in a single .css file. This would allow > the >>> developers to tweak the stylesheet & reload to see the effects >>> immediately. >>> >>> Unfortunately, it feels like the Filename of the stylesheet is the Key > in >>> a cache that isn't getting cleared by my code above. Nothing visible >>> happens when I do: >>> scene.stylesheets.clear() >>> scene.stylesheets.add(sameStylesheet) >>> >>> Given your description below, my impression is that RELOADING should > also >>> work... >>> >>> Thank you for any suggestions, >>> >>> Neil >>> >>> >>> From: David Grieve >>> To: Werner Lehmann >>> Cc: openjfx-dev at openjdk.java.net >>> Date: 12/10/2013 11:10 AM >>> Subject: Re: Reloading stylesheets >>> Sent by: openjfx-dev-bounces at openjdk.java.net >>> >>> >>> >>> The way it works in 8.0 is that there is a cache of loaded stylesheets. >>> When a scene or parent adds a stylesheet, the stylesheet is added to > the >>> cache. Any other scene or parent that uses the same stylesheet will get >>> the one from cache. If a scene or parent later removes the stylesheet, > the >>> stylesheet is removed from the cache and the css style cache for any > scene >>> or parent that referenced that stylesheet is cleared (since the set of >>> styles may have changed). Any scene or parent that referenced the now >>> removed stylesheet is told to reapply its styles. Since the stylesheet > is >>> no longer in cache, it will be re-parsed (or reloaded if there is a > binary >>> version of the stylesheet) when it is called for by a scene or parent. >>> >>> The way it worked in 2.x was an abomination. >>> >>> On Dec 10, 2013, at 10:30 AM, Werner Lehmann >>> wrote: >>> >>>> Interesting. Assuming the stylesheets are still cached, how would it >>> know when to reload and not use the cached sheet? Or has sheet > processing >>> been optimized so much that caching is not necessary anymore... >>>> On 10.12.2013 16:15, Tom Schindl wrote: >>>>> No on FX8 you need to remove and readd them! So the only thing >>> different >>>>> is that you omit the reload-call on FX8. > NOTICE from Ab Initio: This email (including any attachments) may contain information that is subject to confidentiality obligations or is legally privileged, and sender does not waive confidentiality or privilege. If received in error, please notify the sender, delete this email, and make no further use, disclosure, or distribution. From hang.vo at oracle.com Thu Dec 12 08:29:30 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 12 Dec 2013 16:29:30 +0000 Subject: hg: openjfx/8/master/rt: 66 new changesets Message-ID: <20131212164755.4F82862C32@hg.openjdk.java.net> Changeset: a434b613d697 Author: mv157916 Date: 2013-12-06 11:27 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/a434b613d697 RT-34731: Update the JDK 8 build number to b119 in rt/build.properties file in the JavaFX 8 Master forest. ! build.properties Changeset: a4b45faa34a2 Author: Alexander Kouznetsov Date: 2013-12-03 18:41 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/a4b45faa34a2 Ensemble8: Fix for RT-32637 Samples should be updated to use Lambdas for Java 8 ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timeline/TimelineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timelineevents/TimelineEventsApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/audio/AudioAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChart.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/audio/AudioBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChart.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/stock/StockLineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/pie/drilldown/DrilldownPieChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/animated/LiveScatterChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/colorpicker/ColorPickerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/datepicker/DatePickerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/listviewcellfactory/ListViewCellFactoryApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/simplelistview/SimpleListViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/menu/MenuApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/pagination/PaginationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/progressindicator/ProgressIndicatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/scrollbar/ScrollBarApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/tabpane/TabPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/Person.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/searchbox/SearchBox.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextInputValidatorPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextValidatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidationEvent.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidatorPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/togglebutton/ToggleButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/TreeTableViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treeview/TreeViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/Authenticator.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/FXMLLoginDemoApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/User.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Ball.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Brick.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Config.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Level.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/LevelData.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Splash.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Calculator.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Key.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Clock.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelf.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageoperator/ImageOperationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/radialgradient/RadialGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Piece.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/PuzzlePiecesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polygon/PolygonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polyline/PolylineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchButton.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Watch.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/anchorpane/AnchorPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/borderpane/BorderPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/advancedmedia/MediaControl.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/AlphaMediaPlayerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/PlanetaryPlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/audioclip/AudioClipApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/overlaymediaplayer/PlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/streamingmediaplayer/PlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keyevent/KeyEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keystrokemotion/LettersPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/mouseevent/MouseEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchImageView.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/CustomNodeApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/advancedstage/AdvancedStageApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/stage/StageApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SampleTableModel.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInterop.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropTask.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/webview/WebViewApp.java Changeset: 0c426f650357 Author: Alexander Kouznetsov Date: 2013-12-03 18:43 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/0c426f650357 Ensemble8: Fix for RT-34669 ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/DocumentationIndexer.java Changeset: 355fcde00b08 Author: Alexander Kouznetsov Date: 2013-12-03 18:48 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/355fcde00b08 Ensemble8: Fix for RT-34670 Intermittent failure in copying resources to Modena.jar file ! apps/experiments/Modena/nbproject/project.properties ! apps/experiments/Modena/nbproject/project.xml Changeset: 43d9f4f38db1 Author: Alexander Kouznetsov Date: 2013-12-03 18:54 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/43d9f4f38db1 Ensemble8: Fix for RT-34672 Ensemble8 fails to build samples and search index due to wrong JDK used ! apps/samples/Ensemble8/build.xml ! apps/samples/Ensemble8/nbproject/project.properties Changeset: 5c5f089af5e3 Author: Alexander Kouznetsov Date: 2013-12-03 19:45 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/5c5f089af5e3 Ensemble8: Fix for RT-34447 DatePicker Control in Ensemble8 - don't open stage for DatePicker ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/datepicker/DatePickerApp.java Changeset: a91fae01ca00 Author: kcr Date: 2013-12-04 06:23 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/a91fae01ca00 Backed out fix for RT-34670 since that fix broke the build Backed out chagneset 355fcde00b08 ! apps/experiments/Modena/nbproject/project.properties ! apps/experiments/Modena/nbproject/project.xml Changeset: 355b380baf28 Author: kcr Date: 2013-12-04 11:11 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/355b380baf28 Backout fix for RT-32637 (which is being deferred out of FX 8) hg backout a4b45faa34a2 ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timeline/TimelineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timelineevents/TimelineEventsApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/audio/AudioAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChart.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/audio/AudioBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChart.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/stock/StockLineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/pie/drilldown/DrilldownPieChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/animated/LiveScatterChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/colorpicker/ColorPickerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/datepicker/DatePickerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/listviewcellfactory/ListViewCellFactoryApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/simplelistview/SimpleListViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/menu/MenuApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/pagination/PaginationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/progressindicator/ProgressIndicatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/scrollbar/ScrollBarApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/tabpane/TabPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/Person.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/searchbox/SearchBox.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextInputValidatorPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextValidatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidationEvent.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidatorPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/togglebutton/ToggleButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/TreeTableViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treeview/TreeViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/Authenticator.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/FXMLLoginDemoApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/User.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Ball.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Brick.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Config.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Level.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/LevelData.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Splash.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Calculator.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Key.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Clock.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelf.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageoperator/ImageOperationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/radialgradient/RadialGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Piece.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/PuzzlePiecesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polygon/PolygonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polyline/PolylineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchButton.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Watch.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/anchorpane/AnchorPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/borderpane/BorderPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/advancedmedia/MediaControl.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/AlphaMediaPlayerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/PlanetaryPlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/audioclip/AudioClipApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/overlaymediaplayer/PlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/streamingmediaplayer/PlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keyevent/KeyEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keystrokemotion/LettersPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/mouseevent/MouseEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchImageView.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/CustomNodeApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/advancedstage/AdvancedStageApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/stage/StageApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SampleTableModel.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInterop.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropTask.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/webview/WebViewApp.java Changeset: 6686825cd99d Author: dmasada Date: 2013-12-04 12:10 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/6686825cd99d RT-27552 Update readme for Samples + apps/samples/samples_readme.txt Changeset: 682dd0ecd56b Author: dmasada Date: 2013-12-04 13:14 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/682dd0ecd56b RT-34518 Ensemble8 add @embedded flags to FXML-LoginDemo and StopWatch too ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/FXMLLoginDemoApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchApp.java Changeset: 6f1de57755ac Author: Alexander Kouznetsov Date: 2013-12-04 13:35 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/6f1de57755ac Modena: Fix for RT-34670 Modena.jar fails to launch due to intermittent failure in copying resources ! apps/experiments/Modena/nbproject/build-impl.xml ! apps/experiments/Modena/nbproject/genfiles.properties ! apps/experiments/Modena/nbproject/project.properties ! apps/experiments/Modena/nbproject/project.xml Changeset: 2627257f8d78 Author: Alexander Kouznetsov Date: 2013-12-04 14:40 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/2627257f8d78 Ensemble8: Fix for RT-34701 Need to remove Lambda expressions from Ensemble8 ! apps/samples/Ensemble8/nbproject/project.properties ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/Description.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SamplePage.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/xylophone/XylophoneApp.java Changeset: ff662670c9a4 Author: Alexander Kouznetsov Date: 2013-12-04 16:54 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/ff662670c9a4 Ensemble8: Fix for RT-34637 Ensemble8 fails to reference subclass vs. class ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/Description.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SamplePage.java ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java Changeset: 08e838ff903e Author: Felipe Heidrich Date: 2013-12-04 17:16 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/08e838ff903e RT-34706: IOS: build failure due to incorrect classpath for javah Reviewed-by: Kevin ! buildSrc/ios.gradle Changeset: e3662305750a Author: kcr Date: 2013-12-05 08:49 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/e3662305750a Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt Changeset: 25b4801c0ad6 Author: snorthov Date: 2013-12-05 17:16 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/25b4801c0ad6 FINALS ONLY: Add final's back to code compiles under jdk7 ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/MenuBarSkin.java ! modules/graphics/src/main/java/com/sun/glass/ui/gtk/GtkApplication.java ! modules/graphics/src/main/java/com/sun/javafx/tk/quantum/EmbeddedScene.java ! modules/graphics/src/main/java/com/sun/javafx/tk/quantum/GlassAppletWindow.java ! modules/graphics/src/main/java/javafx/scene/layout/FlowPane.java ! modules/graphics/src/main/java/javafx/scene/layout/GridPane.java ! modules/graphics/src/main/java/javafx/scene/layout/HBox.java ! modules/graphics/src/main/java/javafx/scene/layout/StackPane.java Changeset: 5c12192a7720 Author: snorthov Date: 2013-12-05 17:19 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/5c12192a7720 Enable graphicsn in forward/back buttons on iOS ! apps/samples/Ensemble8/src/app/java/ensemble/EnsembleApp.java Changeset: f87309876fe2 Author: Chien Yang Date: 2013-12-05 22:47 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/f87309876fe2 [Doc only] Fix to RT-30404: [FX3D] Need better documentation for the default PointLight Reviewed-by: kcr ! modules/graphics/src/main/java/javafx/scene/PointLight.java ! modules/graphics/src/main/java/javafx/scene/Scene.java ! modules/graphics/src/main/java/javafx/scene/SubScene.java Changeset: cc52e2bbd227 Author: ddhill Date: 2013-12-06 10:50 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/cc52e2bbd227 RT-31668: [SAMPLES] correcting reference to jfxrt.jar in shipping samples for NB Reviewed-by: kcr ! apps/build.xml ! apps/experiments/3DViewer/nbproject/project.properties ! apps/experiments/Modena/nbproject/project.properties ! apps/samples/Ensemble8/nbproject/project.properties ! apps/toys/Hello/nbproject/project.properties ! build.gradle Changeset: cf97e24de0c3 Author: Martin Sladecek Date: 2013-12-06 17:12 +0100 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/cf97e24de0c3 RT-34575 : Ensemble8 does not work with a touch screen Reviewed by: kselle ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualFlow.java Changeset: a85547d0a3e8 Author: Chien Yang Date: 2013-12-06 12:14 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/a85547d0a3e8 [Doc only] Fix to RT-34292: Document importance of TriangleMesh order of elements Reviewed-by: kcr ! modules/graphics/src/main/java/javafx/scene/shape/TriangleMesh.java Changeset: 4ce648d40059 Author: ddhill Date: 2013-12-06 17:24 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/4ce648d40059 [TOYS-ONLY] fix src-path for toys/Hello ! apps/toys/Hello/nbproject/project.properties Changeset: 80fa1e0a12ed Author: Alexander Kouznetsov Date: 2013-12-06 15:17 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/80fa1e0a12ed Ensemble8: Fix for RT-28783 login.css in FXML-LoginDemo contains wrong rgb() color definitions ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Login.css Changeset: 32ba0287f199 Author: Alexander Kouznetsov Date: 2013-12-06 15:48 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/32ba0287f199 Ensemble8: Fix for RT-34708 Ensemble8: Some samples are not shown in search + apps/samples/Ensemble8/nbproject/configs/Build_index.properties ! apps/samples/Ensemble8/src/app/java/ensemble/search/IndexSearcher.java ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/EnsembleCompiletimeMain.java - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdt - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdx - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fnm - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.frq - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.nrm - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.prx - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tii - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tis + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fdt + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fdx + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fnm + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.frq + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.nrm + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.prx + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.tii + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.tis ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/listAll.txt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments.gen - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_1 + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_3 Changeset: 7d702464f5be Author: Chien Yang Date: 2013-12-06 16:37 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/7d702464f5be Part of a multi-part fix to RT-26385: Finish javadoc for FX 8 3D API Post commit reviewer: kcr ! modules/graphics/src/main/java/javafx/scene/SubScene.java Changeset: f681d1deaab6 Author: Alexander Kouznetsov Date: 2013-12-06 21:27 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/f681d1deaab6 Ensemble8: Fix for RT-34709 Ensemble8: FAILED TO PARSE DOCS PAGE SO IGNORED ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/BuildEnsembleSearchIndex.java ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/DocumentationIndexer.java Changeset: dce15a0f5a92 Author: Alexander Kouznetsov Date: 2013-12-06 21:35 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/dce15a0f5a92 Ensemble8: Fix for RT-34669 ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/EnsembleCompiletimeMain.java Changeset: c1372e71e4c8 Author: Alexander Kouznetsov Date: 2013-12-06 22:02 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/c1372e71e4c8 Ensemble8: Fix for RT-34707 Ensemble8: Related Samples are not shown for docs found through search ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fdt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fdx ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.frq ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.nrm ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.prx ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.tii ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.tis ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/listAll.txt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_3 Changeset: d0bca0f6ab5a Author: Alexander Kouznetsov Date: 2013-12-09 01:29 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/d0bca0f6ab5a Ensemble8: Fix for RT-34712 Ensemble8: Bouncing Balls "View source" link doesn't work ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SamplePageContent.java Changeset: d337fbc19887 Author: Alexander Kouznetsov Date: 2013-12-09 12:37 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/d337fbc19887 Ensemble8: Fix for RT-34710 Ensemble8: Gesture Events sample name and description is confusing ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java Changeset: 3bdcd01853bf Author: Alexander Kouznetsov Date: 2013-12-09 12:52 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/3bdcd01853bf Ensemble8: Fix for RT-34713 Ensemble8: TreeTableView sample is bad in editing: edited values disappear + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/Data.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/Inventory.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/Part.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/TreeTableViewApp.java Changeset: 53cb68c02d07 Author: John Yoon Date: 2013-12-09 12:38 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/53cb68c02d07 [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/pathtransition/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/pathtransition/preview at 2x.png Changeset: a7f21c31ef3e Author: Alexander Kouznetsov Date: 2013-12-09 13:16 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/a7f21c31ef3e Ensemble8: Fix for RT-34785 Ensemble8: Multi-touch sample is not found using Search ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchApp.java Changeset: a5d957304de7 Author: Alexander Kouznetsov Date: 2013-12-09 13:18 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/a5d957304de7 Ensemble8: Fix for RT-34769 Ensemble8: TableCellFactoryApp sample needs cleanup ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/Person.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java Changeset: 2883ec7be017 Author: Alexander Kouznetsov Date: 2013-12-09 13:36 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/2883ec7be017 Ensemble8: Fix for RT-34448 HTML Editor in Ensemble8 is not completely visible ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java Changeset: 98ffb00297f5 Author: Alexander Kouznetsov Date: 2013-12-09 13:45 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/98ffb00297f5 Ensemble8: Fix for RT-30482 Ensemble8: no format checking for X and Y values in charts ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/XYDataVisualizer.java Changeset: bee5e52e68ae Author: John Yoon Date: 2013-12-09 14:28 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/bee5e52e68ae [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview at 2x.png Changeset: 57153bcef81f Author: kcr Date: 2013-12-09 15:15 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/57153bcef81f RT-34389: [doc] cssref.html copyright is incorrect Contributed-by: Tom Schindl ! apps/samples/Ensemble8/build.xml ! apps/samples/Ensemble8/nbproject/project.properties Changeset: c7d6f188d1d3 Author: kcr Date: 2013-12-09 15:17 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/c7d6f188d1d3 RT-19968: Document that Platform.runLater must not be called before FX is initialized ! modules/graphics/src/main/java/javafx/application/Platform.java Changeset: ac015a4a85b7 Author: John Yoon Date: 2013-12-09 17:26 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/ac015a4a85b7 [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/audio/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/audio/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/chart/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/chart/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/curvefitted/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/curvefitted/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/stacked/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/stacked/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/audio/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/audio/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/chart/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/chart/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/horizontal/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/horizontal/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/image/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/image/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/stacked/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/stacked/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/category/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/category/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/chart/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/chart/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/stock/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/stock/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/chart/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/chart/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/drilldown/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/drilldown/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/animated/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/animated/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/chart/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/chart/preview at 2x.png Changeset: d7a20d89aaf4 Author: Alexander Kouznetsov Date: 2013-12-09 18:04 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/d7a20d89aaf4 Ensemble8: Fix for RT-34735 Ensemble8 startup time depends on networking and could be too long ! apps/samples/Ensemble8/src/app/java/ensemble/EnsembleApp.java Changeset: 7a5bed4ab9d8 Author: Alexander Kouznetsov Date: 2013-12-09 18:11 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/7a5bed4ab9d8 Ensemble8: Removed builders from EnsembleApp.java. Code cleanup. ! apps/samples/Ensemble8/src/app/java/ensemble/EnsembleApp.java Changeset: c818e4054cc7 Author: kcr Date: 2013-12-09 18:29 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/c818e4054cc7 RT-32512: Fix URL for JavaFX API docs license terms link Reviewed-by: mtvo ! apps/samples/Ensemble8/build.xml ! build.properties ! modules/fxml/src/main/docs/javafx/fxml/doc-files/introduction_to_fxml.html ! modules/graphics/src/main/docs/javafx/scene/doc-files/cssref.html Changeset: a09aab639ad0 Author: kcr Date: 2013-12-09 18:52 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/a09aab639ad0 RT-34522: Update javafxpackager man pages for JDK/FX 8 Contributed-by: Nancy Hildebrandt - modules/fxpackager/src/main/man/html/javafxpackager.1.html ! modules/fxpackager/src/main/man/man1/javafxpackager.1 Changeset: f1d3a11f6cc4 Author: John Yoon Date: 2013-12-09 19:00 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/f1d3a11f6cc4 [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview at 2x.png Changeset: 58f12825ecac Author: John Yoon Date: 2013-12-09 19:57 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/58f12825ecac [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/accordion/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/accordion/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/colorbutton/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/colorbutton/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/graphicbutton/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/graphicbutton/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/pillbutton/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/pillbutton/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/checkbox/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/checkbox/preview at 2x.png Changeset: 8f0a6f77ec8f Author: Alexander Kouznetsov Date: 2013-12-09 20:19 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/8f0a6f77ec8f Ensemble8: Fix for RT-34006 Simplify Ensemble8 categories ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdt + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdx + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fnm + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.frq + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.nrm + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.prx + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tii + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tis - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fdt - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fdx - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fnm - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.frq - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.nrm - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.prx - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.tii - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.tis ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/listAll.txt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments.gen + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_1 - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_3 + apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/TimelineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timeline/TimelineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timelineevents/TimelineEventsApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timelineevents/TimelineEventsApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/FireworksApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/Particle.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/SanFranciscoFireworks.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bubble/BubbleChartApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bubble/chart/BubbleChartApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/Candle.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/CandleStickChart.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/CandleStickChartApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/CandleStickExtraValues.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/TooltipContent.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/Candle.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChart.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickExtraValues.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/TooltipContent.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/DailySales.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/GetDailySalesService.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/GetDailySalesTask.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/DailySales.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/GetDailySalesTask.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/TaskApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/accordion/AccordionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/checkbox/CheckBoxApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/htmleditor/HTMLEditorApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/splitpane/HiddenSplitPaneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/splitpane/hiddensplitpane/HiddenSplitPaneApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/TabPaneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/tabpane/TabPaneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/Person.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tableview/Person.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tableview/TableViewApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tablecellfactory/Person.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tablecellfactory/TableCellFactoryApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tableview/Person.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tableview/TableViewApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/bidi/BidiApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textflow/TextFlowApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/togglebutton/ToggleButtonApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/webview/WebViewApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/Authenticator.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/FXMLLoginDemoApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/LoginController.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/ProfileController.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/User.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Ball.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsPane.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsScreen.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Constants.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Ball.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Bat.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Bonus.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Brick.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/BrickBreakerApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Config.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Level.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/LevelData.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Splash.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Utils.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Calculator.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/CalculatorApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Key.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Util.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/colorfulcircles/ColorfulCirclesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Clock.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Digit.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/DigitalClockApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelf.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelfApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/PerspectiveImage.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/dropshadow/DropShadowApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/gaussianblur/GaussianBlurApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/innershadow/InnerShadowApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/reflection/ReflectionApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/sepiatone/SepiaToneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/gauge/SpeedGaugeApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imagecreation/ImageCreationApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageoperator/ImageOperationApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageproperties/ImagePropertiesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/color/ColorApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/radialgradient/RadialGradientApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Desk.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Piece.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/PuzzlePiecesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/arc/ArcApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/circle/CircleApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/cubiccurve/CubicCurveApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/ellipse/EllipseApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/line/LineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/path/PathApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polygon/PolygonApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polyline/PolylineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/quadcurve/QuadCurveApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/rectangle/RectangleApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Dial.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/DigitalClock.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchButton.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Watch.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/Ball.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/BallsPane.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/BallsScreen.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/BouncingBallsApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/Constants.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Ball.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Bat.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Bonus.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Brick.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/BrickBreakerApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Config.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Level.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/LevelData.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Splash.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Utils.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/Calculator.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/CalculatorApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/Key.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/Util.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/canvas/FireworksApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/canvas/Particle.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/canvas/SanFranciscoFireworks.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/colorfulcircles/ColorfulCirclesApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/digitalclock/Clock.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/digitalclock/Digit.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/digitalclock/DigitalClockApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/displayshelf/DisplayShelf.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/displayshelf/DisplayShelfApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/displayshelf/PerspectiveImage.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/dropshadow/DropShadowApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/gaussianblur/GaussianBlurApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/innershadow/InnerShadowApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/reflection/ReflectionApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/sepiatone/SepiaToneApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/gauge/SpeedGaugeApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/images/imagecreation/ImageCreationApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/images/imageoperator/ImageOperationApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/images/imageproperties/ImagePropertiesApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/paints/color/ColorApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/paints/lineargradient/LinearGradientApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/paints/radialgradient/RadialGradientApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/puzzle/Desk.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/puzzle/Piece.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/puzzle/PuzzlePiecesApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/arc/ArcApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/circle/CircleApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/cubiccurve/CubicCurveApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/ellipse/EllipseApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/line/LineApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/path/PathApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/polygon/PolygonApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/polyline/PolylineApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/quadcurve/QuadCurveApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/rectangle/RectangleApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/Dial.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/DigitalClock.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/StopWatchApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/StopWatchButton.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/Watch.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/stringbinding/StringBindingApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/changelistener/ChangeListenerApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/service/DailySales.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/service/GetDailySalesService.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/service/GetDailySalesTask.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/service/ServiceApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/task/DailySales.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/task/GetDailySalesTask.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/task/TaskApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/Authenticator.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/FXMLLoginDemoApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/LoginController.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/ProfileController.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/User.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/observablelist/ObservableListApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/stringbinding/StringBindingApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/ProcessListener.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SampleTableModel.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SwingInterop.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SwingInteropApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SwingInteropService.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SwingInteropTask.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/borderpane/BorderPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/flowpane/FlowPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/tilepane/TilePaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/audioclip/AudioClipApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/advancedstage/AdvancedStageApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/customnode/CustomNodeApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/customnode/MyNode.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/CustomNodeApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/MyNode.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/nodeproperties/NodePropertiesApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/nodeproperties/NodePropertiesApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/StageApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/advancedstage/AdvancedStageApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/stage/StageApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/ProcessListener.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SampleTableModel.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInterop.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropService.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropTask.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/text/bidi/BidiApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/text/textflow/TextFlowApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/webview/WebViewApp.java + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timelineevents/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timelineevents/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/candlestick/CandleStickChart.css + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/candlestick/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/candlestick/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/CandleStickChart.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/htmleditor/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/htmleditor/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/HiddenSplitPane.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/HiddenSplitPane.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tab_16.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/tab_16.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tablecellfactory/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tablecellfactory/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tableview/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tableview/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tablecellfactory/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tablecellfactory/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tableview/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tableview/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/bidi/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/bidi/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textflow/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textflow/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/webview/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/webview/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Login.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Login.fxml - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Profile.fxml - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/bouncingballs/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/bouncingballs/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/brickbreaker/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/brickbreaker/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/calc/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/calc/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/colorfulcircles/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/colorfulcircles/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/digitalclock/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/digitalclock/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/DisplayShelf.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/dropshadow/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/dropshadow/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/gaussianblur/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/gaussianblur/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/innershadow/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/innershadow/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/reflection/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/reflection/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/sepiatone/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/sepiatone/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/gauge/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/gauge/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imagecreation/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imagecreation/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageoperator/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageoperator/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageproperties/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageproperties/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/color/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/color/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/lineargradient/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/lineargradient/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/radialgradient/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/radialgradient/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/puzzle/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/puzzle/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/arc/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/arc/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/circle/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/circle/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/cubiccurve/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/cubiccurve/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/ellipse/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/ellipse/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/line/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/line/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/path/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/path/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polygon/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polygon/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polyline/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polyline/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/quadcurve/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/quadcurve/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/rectangle/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/rectangle/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/stopwatch/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/stopwatch/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/bouncingballs/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/bouncingballs/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/brickbreaker/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/brickbreaker/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/calc/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/calc/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/canvas/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/canvas/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/colorfulcircles/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/colorfulcircles/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/digitalclock/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/digitalclock/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/displayshelf/DisplayShelf.css + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/displayshelf/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/displayshelf/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/dropshadow/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/dropshadow/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/gaussianblur/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/gaussianblur/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/innershadow/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/innershadow/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/reflection/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/reflection/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/sepiatone/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/sepiatone/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/gauge/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/gauge/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/images/imagecreation/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/images/imagecreation/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/images/imageoperator/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/images/imageoperator/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/images/imageproperties/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/images/imageproperties/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/paints/color/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/paints/color/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/paints/lineargradient/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/paints/lineargradient/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/paints/radialgradient/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/paints/radialgradient/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/puzzle/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/puzzle/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/arc/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/arc/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/circle/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/circle/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/cubiccurve/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/cubiccurve/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/ellipse/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/ellipse/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/line/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/line/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/path/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/path/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/polygon/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/polygon/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/polyline/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/polyline/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/quadcurve/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/quadcurve/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/rectangle/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/rectangle/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/stopwatch/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/stopwatch/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/changelistener/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/changelistener/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/stringbinding/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/stringbinding/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/changelistener/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/changelistener/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/collections/observablelist/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/collections/observablelist/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/concurrency/service/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/concurrency/service/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/concurrency/task/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/concurrency/task/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/fxml/Login.css + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/fxml/Login.fxml + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/fxml/Profile.fxml + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/fxml/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/fxml/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/observablelist/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/observablelist/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/stringbinding/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/stringbinding/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/swing/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/swing/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/advancedstage/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/advancedstage/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/customnode/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/customnode/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/customnode/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/customnode/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/nodeproperties/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/nodeproperties/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/nodeproperties/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/nodeproperties/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/advancedstage/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/advancedstage/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/stage/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/stage/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/swing/swinginterop/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/swing/swinginterop/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/bidi/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/bidi/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/textflow/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/textflow/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/htmleditor/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/htmleditor/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/webview/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/webview/preview at 2x.png Changeset: 0d24fac99293 Author: Alexander Kouznetsov Date: 2013-12-09 20:36 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/0d24fac99293 Ensemble8: Part #2 of fix for RT-34006 Simplify Ensemble8 categories ! apps/samples/Ensemble8/src/app/java/ensemble/SamplePopoverTreeList.java Changeset: 674968d9c3b6 Author: Alexander Kouznetsov Date: 2013-12-09 20:44 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/674968d9c3b6 Ensemble8: Fix for RT-34716 Ensemble8: xAxis label playground warning ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChartApp.java Changeset: 5fc3e61b4f21 Author: Alexander Kouznetsov Date: 2013-12-09 21:04 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/5fc3e61b4f21 Ensemble8: Fix for RT-34714 Ensemble8: WebView sample limits its size ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/webview/WebViewApp.java Changeset: 50ed24bf65b7 Author: Alexander Kouznetsov Date: 2013-12-09 21:13 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/50ed24bf65b7 Ensemble8: Fix for RT-34786 Ensemble8: Multi-touch sample has bad size ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchApp.java Changeset: 9bbe05e11f94 Author: Alexander Kouznetsov Date: 2013-12-09 21:17 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/9bbe05e11f94 Ensemble8: Fix for RT-33532 Ensemble8: alternative column and row fill visible options doesn't work ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/chart/AreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/stacked/StackedAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/chart/BarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/horizontal/HorizontalBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/image/ImageBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/stacked/StackedBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bubble/BubbleChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/CandleStickChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/category/CategoryLineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/chart/LineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/chart/ScatterChartApp.java Changeset: 6dfa55f03e62 Author: Yves Joan Date: 2013-12-10 08:36 +0100 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/6dfa55f03e62 Sync up SceneBuilder changes + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/CssPanelDelegate.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindowController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderApp.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderTest.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/AboutWindowController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanel.css ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanel.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanelController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBar.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBarController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBarController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanelController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Preferences.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordDocument.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordGlobal.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesWindowController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/BackgroundColor.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/BackgroundColorDialogController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBarController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorPlatform.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/DragController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/AbstractDragSource.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/DocumentDragSource.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/ExternalDragSource.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/LibraryDragSource.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/ContainerXYDropTarget.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/GridPaneDropTarget.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/SceneBuilderKit.properties ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DeleteObjectSelectionJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DuplicateSelectionJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/PasteJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/GridSnapshot.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/GridSnapshotItem.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertColumnConstraintsJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertColumnJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/MoveCellContentJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/MoveColumnContentJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/CompositeJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/AbstractDecoration.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanel.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/HudWindow.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/GridPaneDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneMosaic.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractCurveHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractNodeHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TabHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TableColumnHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TreeTableColumnHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/NodePring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/TabPring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/TableColumnPring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/TreeTableColumnPring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/ImageViewResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/rudder/ResizeRudder.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/HBoxTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/NodeTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/TabTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/TableColumnTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/TreeTableColumnTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/VBoxTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/SelectAndMoveGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/MovingGuideRenderer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/ResizingGuideRenderer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/EditModeController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/BoundsUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/LineEquation.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/Picker.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/RegionRectangle.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssContentMaker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanel.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/AbstractHierarchyPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeCell.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/InspectorPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AnchorPaneConstraintsEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AutoSuggestEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BooleanEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BoundedDoubleEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ControllerClassEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/CursorEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EnumEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/GenericEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/I18nStringEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ImageEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ImageEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/InsetsEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/PropertyEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/RotateEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StringAutoSuggestEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleClassEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StylesheetEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PaintPopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportDialog.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportDialog.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanel.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractFxmlPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/search/Search.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/ObjectSelectionGroup.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/Selection.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMObject.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/glossary/ControllerClass.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/BuiltinLibrary.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/util/JarExplorer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/Metadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ColumnConstraintsPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/DoublePropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/EnumerationPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/RowConstraintsPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/PaintPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/CssInternal.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/GridBounds.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPicker.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPicker.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPicker.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPickerController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/colorpicker/ColorPicker.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/colorpicker/ColorPicker.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/colorpicker/ColorPicker.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPicker.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPicker.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPicker.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/images/chequers.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/images/stop-indicator.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/rotator/RotatorControl.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/rotator/RotatorControl.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/rotator/RotatorControl.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/rotator/rotate-handle.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/slider/SliderControl.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/slider/SliderControl.java Changeset: 02682ee93895 Author: Alexander Kouznetsov Date: 2013-12-09 23:52 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/02682ee93895 Ensemble8: Fix for build failure. ! apps/samples/Ensemble8/build.xml Changeset: 3ef2879ea737 Author: Alexander Kouznetsov Date: 2013-12-10 02:59 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/3ef2879ea737 Ensemble8: Fix for RT-34641 Create 3D sample that demonstrates all the features of PhongMaterial + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/sphere/Simple3DSphereApp.java + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/earth-d.jpg + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/earth-l.jpg + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/earth-n.jpg + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/earth-s.jpg + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/preview at 2x.png Changeset: 53fbe438d684 Author: Alexander Kouznetsov Date: 2013-12-10 03:01 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/53fbe438d684 Ensemble8: Fix for RT-34787 Ensemble8: Rebuild SamplesAll java and search index for Ensemble8 ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdx ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.frq ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.nrm ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.prx ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tii ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tis ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/listAll.txt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_1 Changeset: cbc187e97bb8 Author: John Yoon Date: 2013-12-10 07:56 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/cbc187e97bb8 [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/choicebox/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/choicebox/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/colorpicker/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/colorpicker/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/datepicker/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/datepicker/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/htmleditor/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/htmleditor/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/hyperlink/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/hyperlink/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/horizontallistview/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/horizontallistview/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/listviewcellfactory/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/listviewcellfactory/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/simplelistview/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/simplelistview/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/menu/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/menu/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/pagination/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/pagination/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressbar/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressbar/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressindicator/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressindicator/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/radiobutton/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/radiobutton/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/scrollbar/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/scrollbar/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tablecellfactory/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tablecellfactory/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tableview/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tableview/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/advancedlabel/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/advancedlabel/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/bidi/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/bidi/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/insettext/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/insettext/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/searchbox/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/searchbox/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/simplelabel/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/simplelabel/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textfield/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textfield/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textflow/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textflow/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textvalidator/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textvalidator/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/togglebutton/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/togglebutton/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/styledtoolbar/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/styledtoolbar/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/toolbar/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/toolbar/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treetableview/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treetableview/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treeview/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treeview/preview at 2x.png Changeset: 7624a41f79ce Author: John Yoon Date: 2013-12-10 08:21 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/7624a41f79ce [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cube/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cube/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cubesystem/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cubesystem/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/simple3dbox/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/simple3dbox/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/xylophone/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/xylophone/preview at 2x.png Changeset: 3852407693a0 Author: John Yoon Date: 2013-12-10 09:44 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/3852407693a0 [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/changelistener/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/changelistener/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/observablelist/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/observablelist/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/stringbinding/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/stringbinding/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/swing/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/swing/preview at 2x.png Changeset: 2a14ca6aedf3 Author: kcr Date: 2013-12-10 10:03 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/2a14ca6aedf3 RT-21569: Document that applications should avoid flooding FX with Platform.runLater calls Reviewed-by: anthony ! modules/graphics/src/main/java/javafx/application/Platform.java Changeset: 6a8c274547fa Author: John Yoon Date: 2013-12-10 10:26 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/6a8c274547fa [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/anchorpane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/anchorpane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/borderpane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/borderpane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/flowpane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/flowpane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/gridpane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/gridpane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/hbox/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/hbox/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/stackpane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/stackpane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/tilepane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/tilepane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/vbox/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/vbox/preview at 2x.png Changeset: 8a1e5a4a8a19 Author: John Yoon Date: 2013-12-10 10:49 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/8a1e5a4a8a19 [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/advancedmedia/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/advancedmedia/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/alphamediaplayer/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/alphamediaplayer/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/audioclip/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/audioclip/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/overlaymediaplayer/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/overlaymediaplayer/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/streamingmediaplayer/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/streamingmediaplayer/preview at 2x.png Changeset: afa4eebb73b8 Author: Alexander Kouznetsov Date: 2013-12-10 11:13 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/afa4eebb73b8 Ensemble8: Fix for RT-33410 Ensemble8: BrickBreaker "jumps" sometimes ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/BrickBreakerApp.java Changeset: 8e8958c52331 Author: kcr Date: 2013-12-10 12:07 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/8e8958c52331 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdx ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fnm ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.frq ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.nrm ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.prx ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tii ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tis ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_1 - apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timeline/TimelineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timelineevents/TimelineEventsApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/FireworksApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/Particle.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/SanFranciscoFireworks.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bubble/chart/BubbleChartApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/Candle.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChart.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickExtraValues.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/TooltipContent.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/DailySales.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/GetDailySalesService.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/GetDailySalesTask.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/DailySales.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/GetDailySalesTask.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/TaskApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/splitpane/hiddensplitpane/HiddenSplitPaneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/tabpane/TabPaneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/Person.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tableview/Person.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tableview/TableViewApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/Part.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/Authenticator.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/FXMLLoginDemoApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/LoginController.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/ProfileController.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/User.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Ball.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsPane.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsScreen.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Constants.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Ball.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Bat.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Bonus.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Brick.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/BrickBreakerApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Config.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Level.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/LevelData.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Splash.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Utils.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Calculator.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/CalculatorApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Key.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Util.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/colorfulcircles/ColorfulCirclesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Clock.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Digit.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/DigitalClockApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelf.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelfApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/PerspectiveImage.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/dropshadow/DropShadowApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/gaussianblur/GaussianBlurApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/innershadow/InnerShadowApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/reflection/ReflectionApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/sepiatone/SepiaToneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/gauge/SpeedGaugeApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imagecreation/ImageCreationApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageoperator/ImageOperationApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageproperties/ImagePropertiesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/color/ColorApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/radialgradient/RadialGradientApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Desk.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Piece.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/PuzzlePiecesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/arc/ArcApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/circle/CircleApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/cubiccurve/CubicCurveApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/ellipse/EllipseApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/line/LineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/path/PathApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polygon/PolygonApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polyline/PolylineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/quadcurve/QuadCurveApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/rectangle/RectangleApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Dial.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/DigitalClock.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchButton.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Watch.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/stringbinding/StringBindingApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/CustomNodeApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/MyNode.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/nodeproperties/NodePropertiesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/advancedstage/AdvancedStageApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/stage/StageApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/ProcessListener.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SampleTableModel.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInterop.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropService.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropTask.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/text/bidi/BidiApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/text/textflow/TextFlowApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/webview/WebViewApp.java - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/CandleStickChart.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/HiddenSplitPane.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/tab_16.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tablecellfactory/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tablecellfactory/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tableview/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tableview/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Login.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Login.fxml - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Profile.fxml - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/bouncingballs/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/bouncingballs/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/brickbreaker/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/brickbreaker/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/calc/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/calc/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/colorfulcircles/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/colorfulcircles/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/digitalclock/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/digitalclock/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/DisplayShelf.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/dropshadow/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/dropshadow/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/gaussianblur/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/gaussianblur/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/innershadow/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/innershadow/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/reflection/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/reflection/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/sepiatone/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/sepiatone/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/gauge/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/gauge/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imagecreation/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imagecreation/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageoperator/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageoperator/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageproperties/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageproperties/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/color/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/color/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/lineargradient/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/lineargradient/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/radialgradient/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/radialgradient/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/puzzle/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/puzzle/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/arc/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/arc/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/circle/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/circle/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/cubiccurve/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/cubiccurve/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/ellipse/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/ellipse/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/line/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/line/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/path/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/path/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polygon/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polygon/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polyline/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polyline/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/quadcurve/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/quadcurve/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/rectangle/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/rectangle/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/stopwatch/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/stopwatch/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/changelistener/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/changelistener/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/stringbinding/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/stringbinding/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/collections/observablelist/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/collections/observablelist/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/customnode/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/customnode/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/nodeproperties/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/nodeproperties/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/advancedstage/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/advancedstage/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/stage/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/stage/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/swing/swinginterop/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/swing/swinginterop/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/bidi/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/bidi/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/textflow/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/textflow/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/htmleditor/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/htmleditor/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/webview/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/webview/preview at 2x.png ! build.properties - modules/fxpackager/src/main/man/html/javafxpackager.1.html Changeset: 35d622e670f1 Author: Chien Yang Date: 2013-12-10 12:43 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/35d622e670f1 [Doc only] RT-26385: Finish javadoc for FX 8 3D API Reviewed-by: kcr, vadim ! modules/graphics/src/main/java/javafx/scene/SubScene.java ! modules/graphics/src/main/java/javafx/scene/paint/PhongMaterial.java Changeset: c9a2279862ac Author: hudson Date: 2013-12-12 08:22 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/c9a2279862ac Added tag 8.0-b120 for changeset 35d622e670f1 ! .hgtags From hang.vo at oracle.com Thu Dec 12 12:03:49 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 12 Dec 2013 20:03:49 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34784: [TextField, PasswordField, TextArea] Selected text is removed on focus leaving Message-ID: <20131212200512.08D7462C56@hg.openjdk.java.net> Changeset: 0f28c98557a2 Author: Anthony Petrov Date: 2013-12-12 23:53 +0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/0f28c98557a2 RT-34784: [TextField, PasswordField, TextArea] Selected text is removed on focus leaving Summary: Post IM events only if text composition is active Reviewed-by: pchelko, azvegint, anthony, kcr, snorthov Contributed-by: pchelko, azvegint ! modules/graphics/src/main/java/com/sun/glass/ui/gtk/GtkView.java ! modules/graphics/src/main/native-glass/gtk/glass_general.cpp ! modules/graphics/src/main/native-glass/gtk/glass_general.h ! modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp ! modules/graphics/src/main/native-glass/mac/GlassView3D.m From pavel.safrata at oracle.com Thu Dec 12 12:29:09 2013 From: pavel.safrata at oracle.com (Pavel Safrata) Date: Thu, 12 Dec 2013 21:29:09 +0100 Subject: discussion about touch events In-Reply-To: <0C7D7D7C-AA01-4934-B104-769DAFD8F21B@oracle.com> References: <5280B6B9.2020605@oracle.com> <5280C770.5030600@oracle.com> <52814C8F.5080009@oracle.com> <52820BB6.8020602@oracle.com> <52820CD8.5060604@oracle.com> <5de9f371-cbee-487e-aff2-8a48e738114d@default> <52868D71.7080101@oracle.com> <528B76E0.9040008@oracle.com> <0C7D7D7C-AA01-4934-B104-769DAFD8F21B@oracle.com> Message-ID: <52AA1C95.9080702@oracle.com> Hello all, I'm sorry for the long delay on my side. Daniel, the only remaining point of our discussion that I feel deserves a comment: >>> >>> We could reasonably limit the algorithm to dealing with convex shapes. >> >> Can we? What about paths, polygons etc? > I realize that it is possible to describe touch sensitive concave > shapes, but I am not sure they matter for this. If developers are > going to go to the trouble of defining a concave shape that they want > to be touch sensitive within its area but not in all of its bounding > box, are they really then going to want that area to be extended? I?d > consider a concave touch shape with extended capture zone to be > sufficiently unlikely that we could treat it as concave. Which, I > realize is not quite what my proposed algorithm does. I can imagine, for instance, an application showing a graph - a set of vertices connected by edges. The edges are not straight lines, but are e.g. QuadCurves. I can touch an edge and drag it to change its shape (the control point). Now to be able to touch the curve, I certainly want it to have the extended capture zone (it's thin). But if an edge circles around the graph, I don't want it to be picked everywhere in between. I'm not sure if this is compelling enough, but to me it sounds like a reasonable use-case that needs concave extended capture zones.. Pavel From pavel.safrata at oracle.com Thu Dec 12 12:30:04 2013 From: pavel.safrata at oracle.com (Pavel Safrata) Date: Thu, 12 Dec 2013 21:30:04 +0100 Subject: discussion about touch events In-Reply-To: <528C7A9A.50006@oracle.com> References: <5280B6B9.2020605@oracle.com> <5280C770.5030600@oracle.com> <52814C8F.5080009@oracle.com> <52820BB6.8020602@oracle.com> <52820CD8.5060604@oracle.com> <5de9f371-cbee-487e-aff2-8a48e738114d@default> <52868D71.7080101@oracle.com> <528B76E0.9040008@oracle.com> <0C7D7D7C-AA01-4934-B104-769DAFD8F21B@oracle.com> <528C7A9A.50006@oracle.com> Message-ID: <52AA1CCC.3050009@oracle.com> Hi Anthony, let me throw a few random problems without really thinking this through. First of all, the whole thing relies on HashMaps, but we can't really use nodes in hash-based collections as they are not immutable. To maintain the registrations with the rectangles, we would need to do some computations (bounds) eagerly. There is again the problem of restricting to touch-sensitive nodes only. Finally, even if your proposal turns out to work like a charm, it reduces the number of examined nodes, but the most important and difficult part - how do we choose the right one - needs to be specified. Regards, Pavel On 20.11.2013 10:02, Anthony Petrov wrote: > How about you divide the top-level window surface on equal rectangles > of size, say, 0.5"x0.5" (the size in pixels will depend on the screen > DPI.) Each rectangle is basically a hashmap of nodes. > > The nodes that are touch sensible register and update themselves with > the rectangles when their layout information changes (when they're > moved and/or resized). This should work reasonably fast given O(1) > complexity for hashmap operations. > > When processing a touch event, given the low-resolution of the > rectangle mesh, we can quickly identify a set of rectangles that a > touch area (an oval) intersects. There usually will be no more than > four such rectangles. After that we construct a union of all nodes > laying in those rectangles, and simply iterate over the union to > choose a node laying closest to the touch area (or having the largest > intersection with it, whatever.) Again, this should work fast because > fetching nodes from the hashmaps is fast, and the number of nodes that > need to be examined should be relatively small. > > -- > best regards, > Anthony > > On 11/19/2013 08:18 PM, Daniel Blaukopf wrote: >> >> On Nov 19, 2013, at 4:34 PM, Pavel Safrata >> wrote: >> >>> Hello Daniel, >>> >>> On 17.11.2013 15:09, Daniel Blaukopf wrote: >>>> Hi Pavel, >>>> >>>> I think we we do use CSS to configure feel as well as look - and >>>> this is feel, not look - but I also don?t feel strongly about >>>> whether this needs to be in CSS. >>> >>> This was exactly my point. >> Yes, we agree. I should have phrased the above differently to show that. >> >>> >>>> >>>> I like your idea of simply picking the closest touch sensitive node >>>> that is within range. That puts the burden on the touch event to >>>> describe what region it covers. On the touch screens we are >>>> currently looking at, a region would be defined as an oval - a >>>> combination of centre point, X diameter and Y diameter. However the >>>> touch region can be any shape, so might need to be represented as a >>>> Path. >>> >>> I don't think we need to be precise about the shape, all of this is >>> about fixing the imprecise touch where the shape is rather >>> accidental, I think even a circle with an average diameter would be >>> sufficient to achieve the goal. >> For now it certainly is sufficient. However these touch devices can >> describe more complex shapes for the touch contact area and it is >> possible we will want to take advantage of that in the future. We >> should certainly optimize for a circle or oval shape. >> >>> >>>> Iterating over pixels just isn?t going to work though. If we have a >>>> 300dpi display the touch region could be 150 pixels across and have >>>> an area of nearly 18000 pixels. Instead we?d want a way to ask a >>>> parent node, ?In your node hierarchy, which of your nodes? borders >>>> is closest to this region?. So we?d need to come up with an >>>> efficient algorithm to answer this question. We?d only ask this >>>> question for nodes with extended capture zone. >>> >>> The nodes with extended capture zone may be fully or partially >>> hidden behind nodes without it and this needs to be taken into >>> account. How would it be done when the question would be limited to >>> nodes with extended capture zone? And even if it wasn't, what would >>> the position of the border tell us about the area covered by the >>> node? It can be a line.. Also what I wanted to achieve is pick the >>> node which has visible pixels in the picking area even if its border >>> is hidden behind other node or is somewhere far away. This wouldn't >>> be possible, would it? >>> >>>> >>>> We could reasonably limit the algorithm to dealing with convex shapes. >>> >>> Can we? What about paths, polygons etc? >> I realize that it is possible to describe touch sensitive concave >> shapes, but I am not sure they matter for this. If developers are >> going to go to the trouble of defining a concave shape that they want >> to be touch sensitive within its area but not in all of its bounding >> box, are they really then going to want that area to be extended? I?d >> consider a concave touch shape with extended capture zone to be >> sufficiently unlikely that we could treat it as concave. Which, I >> realize is not quite what my proposed algorithm does. >> >>> >>>> Then we can consider an imaginary line L from the node center point >>>> to the touch center point. The intersection of L with the node >>>> perimeter is the closest point of contact. >>> >>> It isn't. Imagine a very wide and flat (small height) rectangle and >>> the touch point directly above its upper-left corner. The closest >>> point is the corner, not the point on L which is close to >>> rectangle's center and may be many times farther. >> You are correct, my algorithm won?t find the closest node. Back to >> the drawing board. >> >> Thanks, >> Daniel >> >>> >>>> If this point is also within the touch area then we have a >>>> potential match. We iterate over all nearby nodes with extended >>>> capture zone in order to find the best match. >>>> >>>> This will then be O(n) in both time and space for n nearby nodes, >>>> given constant time to find the intersection of L with the node >>>> perimeter. This assumption will be true for rectangular, oval and >>>> rounded rectangle nodes. >>> >>> So in summary, if I understand this algorithm correctly I don't >>> think it's going to work. On the other hand, I admit that computing >>> 18000 pixels is probably not viable. Right now I don't have any >>> solution, I'll continue thinking.. >>> >>> Thanks, >>> Pavel >>> >>>> >>>> Thanks, >>>> Daniel >>>> >>>> >>>> On Nov 15, 2013, at 11:09 PM, Pavel Safrata >>>> wrote: >>>> >>>>> Hello, >>>>> let me start with a few comments. >>>>> >>>>> "changing behavior based on which nodes have listeners on them" - >>>>> absolutely not. We have capturing, bubbling, hierarchical event >>>>> types, so we can't decide which nodes listen (in the extreme case, >>>>> scene can handle Event.ANY and perform actions on the target node >>>>> based on the event type). >>>>> >>>>> "position does not fall in the boundaries of the node" - I don't >>>>> think it will be very harmful. Of course it's possible for users >>>>> to write handlers that will be affected, but I don't think it >>>>> happens often, it seems quite hard to invent such handler. The >>>>> delivery mechanism should be absolutely fine with it, we have >>>>> other cases like that (for instance, dragging can be delivered to >>>>> a node completely out of mouse position). Of course picking a 3D >>>>> node in its capture zone would mean useless PickResult (texture >>>>> coordinates etc.) >>>>> >>>>> CSS-accessible vs. property-only - I don't have a strong opinion. >>>>> I agree it's rather "feel" than "look", on the other hand I think >>>>> there are such things already (scrollbar policy for instance). >>>>> >>>>> >>>>> Now I'll bring another problem to the concept. Take the situation >>>>> from Daniel's original picture with two siblings competing for the >>>>> capture zones: >>>>> http://i.imgur.com/ELWamYp.png >>>>> Put each of the red children to its own group - they are no longer >>>>> siblings, but the competition should still work. >>>>> >>>>> The following may be a little wild, but anyway - have one of the >>>>> siblings with capture zone and the other one without it, the one >>>>> without it partly covering the one with it. Wouldn't it be great >>>>> if the capture zone was present around the visible part of the >>>>> node (reaching over the edge of the upper node)? I think it would >>>>> be really intuitive (fuzzy picking of what you see), but it's >>>>> getting pretty complicated. >>>>> >>>>> From now on, I'll call the node with enabled capture zone "touch >>>>> sensitive". >>>>> >>>>> The only algorithm I can think of that would provide great results >>>>> is: >>>>> - Pick normally at the center. If the picked node is touch >>>>> sensitive, return it. >>>>> - Otherwise, run picking for each pixel in the touch area, find >>>>> the closest one belonging to a touch sensitive node and return >>>>> that node (if there is none, then of course return the node at the >>>>> center). >>>>> >>>>> Obviously we can hardly do so many picking rounds. But it can be >>>>> significantly optimized: >>>>> - Perform the area picking in one pass, filling an array - >>>>> representing pixels - by the nodes picked on them >>>>> - Descend only when bounds intersect with the picking area >>>>> - Don't look farther from the center than the already found best >>>>> match >>>>> - Don't look at pixels with already picked node >>>>> - For many nodes (rectangular, circular, with pickOnBounds etc.), >>>>> instead of testing containment many times, we can quickly tell the >>>>> intersection with the picking area >>>>> - Perhaps also checking each nth pixel would be sufficient >>>>> >>>>> This algorithm should be reasonably easy to code and very robust >>>>> (not suffering from various node-arrangement corner-cases), but >>>>> I'm still not sure about the performance (depends mostly on the >>>>> capture zone size - 30-pixel zones may result in calling >>>>> contains() nearly thousand times which might kill it). But perhaps >>>>> (hopefully) it can be perfected. Right now I can't see any other >>>>> algorithm that would work well and would result in more efficient >>>>> implementation (the search for overlapping nodes and closest >>>>> borders etc. is going to be pretty complicated as well, if it's >>>>> even possible to make it work). >>>>> >>>>> What do you think? Any better ideas? >>>>> >>>>> Pavel >>>>> >>>>> >>>>> On 13.11.2013 22:09, Daniel Blaukopf wrote: >>>>>> Hi Seeon, >>>>>> >>>>>> Summarizing our face to face talk today: >>>>>> >>>>>> I see that the case described by Pavel is indeed a problem and >>>>>> agree with you that not every node needs to be a participant in >>>>>> the competition for which grabs touch input. However I?m not keen >>>>>> on the idea of changing behavior based on which nodes have >>>>>> listeners on them. CSS seems like the place to do this (as I >>>>>> think Pavel suggested earlier). In Pavel?s case, either: >>>>>> - the upper child node has the CSS tag saying ?enable extended >>>>>> capture zone? and the lower child doesn?t: then the upper child?s >>>>>> capture zone will extend over the lower child >>>>>> - or both will have the CSS tag, in which case the upper >>>>>> child?s capture zone would be competing with the lower child?s >>>>>> capture zone. As in any other competition >>>>>> between capture zones the nearest node should win. The effect >>>>>> would be the same as if the regular matching rules were applied >>>>>> on the upper child. It would also be the same >>>>>> as if only the lower child had an extended capture zone. However, >>>>>> I?d consider this case to be bad UI programming. >>>>>> >>>>>> We agreed that ?in a competition between capture zones, pick the >>>>>> node whose border is nearest the touch point? was a reasonable >>>>>> way to resolve things. >>>>>> >>>>>> Thanks, >>>>>> Daniel >>>>>> >>>>>> On Nov 13, 2013, at 12:31 PM, Seeon Birger >>>>>> wrote: >>>>>> >>>>>>> Hi Pavel, >>>>>>> >>>>>>> Your example of 'child over child' is an interesting case which >>>>>>> raises some design aspects of the desired picking algorithm: >>>>>>> 1. Which node to pick when one node has a 'strict containership' >>>>>>> over the touch center and the other node only has a fuzzy >>>>>>> containership (the position falls in the fuzzy area). >>>>>>> 2. Accounting for z-order for extended capture zone area. >>>>>>> 3. Accounting for parent-child relationship. >>>>>>> >>>>>>> Referring to your 'child over child' example: >>>>>>> http://i.imgur.com/e92qEJA.jpg >>>>>>> >>>>>>> The conflict would arise were touch point center position falls >>>>>>> in the capture zone area of child2 but also clearly falls in the >>>>>>> strict bounds of child1. >>>>>>> Generally, when two control nodes compete on same touch event >>>>>>> (e.g. child1 & child2 in Daniel's diagram), it seems that we >>>>>>> would like to give priority to "strict containership" over >>>>>>> "fuzzy containership". >>>>>>> But in your case it's probably not the desired behavior. >>>>>>> >>>>>>> Also note that in the general case there's almost always exists >>>>>>> come container/background node that strictly contains the touch >>>>>>> point, but it would probably be an ancestor of the child node, >>>>>>> so the usual parent-child relationship order will give >>>>>>> preference to the child. >>>>>>> >>>>>>> One way out it is to honor the usual z-order for the extended >>>>>>> area of child2, so when a touch center hits the fuzzy area of >>>>>>> child2, then child2 would be picked. >>>>>>> >>>>>>> But is not ideal for Daniel's example: >>>>>>> http://i.imgur.com/ELWamYp.png >>>>>>> >>>>>>> where the 2 nodes don't strictly overlap, but their capture >>>>>>> zones do. Preferring one child by z-order (which matches the >>>>>>> order of children in the parent) is not natural here. And we >>>>>>> might better choose the node which is "closer" >>>>>>> To the touch point. >>>>>>> >>>>>>> So to summarize I suggest this rough picking algorithm: >>>>>>> 1. Choose all uppermost nodes which are not transparent to mouse >>>>>>> events and contain the touch point center either strictly or by >>>>>>> their capture zone. >>>>>>> 2. Remove all nodes that is strictly overlapped by another node >>>>>>> and is below that node by z-order. >>>>>>> 3. Out of those left choose the "closest" node. (the concept of >>>>>>> "closet" should employ some calculation which might not be >>>>>>> trivial in the general case). >>>>>>> 4. Once a node has been picked, we follow the usual node chain >>>>>>> list for event processing. >>>>>>> >>>>>>> Care must be taken so we not break the current model for event >>>>>>> processing. For example, if a node is picked by its capture >>>>>>> zone, it means that the position does not fall in the boundaries >>>>>>> of the node, so existing event handling code that relies on that >>>>>>> would break. So I think the capture zone feature should be >>>>>>> selectively enabled for certain type of nodes such buttons or >>>>>>> other classic controls. >>>>>>> >>>>>>> Regards, >>>>>>> Seeon >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -----Original Message----- >>>>>>> From: Pavel Safrata >>>>>>> Sent: Tuesday, November 12, 2013 1:11 PM >>>>>>> To: Daniel Blaukopf >>>>>>> Cc: OpenJFX >>>>>>> Subject: Re: discussion about touch events >>>>>>> >>>>>>> (Now my answer using external link) >>>>>>> >>>>>>> Hello Daniel, >>>>>>> this is quite similar to my idea described earlier. The major >>>>>>> difference is the "fair division of capture zones" among >>>>>>> siblings. It's an interesting idea, let's explore it. What pops >>>>>>> first is that children can also overlap. So I think it would >>>>>>> behave like this (green capture zones >>>>>>> omitted): >>>>>>> >>>>>>> Child in parent vs. Child over child: >>>>>>> http://i.imgur.com/e92qEJA.jpg >>>>>>> >>>>>>> ..wouldn't it? From user's point of view this seems confusing, >>>>>>> both cases look the same but behave differently. Note that in >>>>>>> the case on the right, the parent may be still the same, >>>>>>> developer only adds a fancy background as a new child and >>>>>>> suddenly the red child can't be hit that easily. What do you >>>>>>> think? Is it an issue? Or would it not behave this way? >>>>>>> >>>>>>> Regards, >>>>>>> Pavel >>>>>>> >>>>>>> On 12.11.2013 12:06, Daniel Blaukopf wrote: >>>>>>>> (My original message didn't get through to openjfx-dev because >>>>>>>> I used >>>>>>>> inline images. I've replaced those images with external links) >>>>>>>> >>>>>>>> On Nov 11, 2013, at 11:30 PM, Pavel Safrata >>>>>>>> >>>>>>> > wrote: >>>>>>>> >>>>>>>>> On 11.11.2013 17:49, Tomas Mikula wrote: >>>>>>>>>> On Mon, Nov 11, 2013 at 1:28 PM, Philipp D?rfler >>>>>>>>>> > wrote: >>>>>>>>>>> I see the need to be aware of the area that is covered by >>>>>>>>>>> fingers >>>>>>>>>>> rather than just considering that area's center point. >>>>>>>>>>> I'd guess that this adds a new layer of complexity, though. For >>>>>>>>>>> instance: >>>>>>>>>>> Say we have a button on some background and both the >>>>>>>>>>> background and >>>>>>>>>>> the button do have an onClick listener attached. If you tap the >>>>>>>>>>> button in a way that the touched area's center point is >>>>>>>>>>> outside of >>>>>>>>>>> the buttons boundaries - what event will be fired? Will both >>>>>>>>>>> the >>>>>>>>>>> background and the button receive a click event? Or just >>>>>>>>>>> either the >>>>>>>>>>> background or the button exclusively? Will there be a new event >>>>>>>>>>> type which gets fired in case of such area-based taps? >>>>>>>>>>> >>>>>>>>>>> My suggestion would therefore be to have an additional area tap >>>>>>>>>>> event which gives precise information about diameter and >>>>>>>>>>> center of >>>>>>>>>>> the tap. Besides that there should be some kind of >>>>>>>>>>> "priority" for >>>>>>>>>>> choosing which node's onClick will be called. >>>>>>>>>> What about picking the one that is closest to the center of >>>>>>>>>> the touch? >>>>>>>>>> >>>>>>>>> >>>>>>>>> There is always something directly on the center of the touch >>>>>>>>> (possibly the scene background, but it can have event handlers >>>>>>>>> too). >>>>>>>>> That's what we pick right now. >>>>>>>>> Pavel >>>>>>>> >>>>>>>> What Seeon, Assaf and I discussed earlier was building some >>>>>>>> fuzziness >>>>>>>> into the node picker so that instead of each node capturing only >>>>>>>> events directly on top of it: >>>>>>>> >>>>>>>> Non-fuzzy picker: http://i.imgur.com/uszql8V.png >>>>>>>> >>>>>>>> ..nodes at each level of the hierarchy would capture events beyond >>>>>>>> their borders as well: >>>>>>>> >>>>>>>> Fuzzy picker: http://i.imgur.com/ELWamYp.png >>>>>>>> >>>>>>>> In the above, "Parent" would capture touch events within a certain >>>>>>>> radius around it, as would its children "Child 1" and "Child >>>>>>>> 2". Since >>>>>>>> "Child 1" and "Child 2" are peers, they would have a sharp >>>>>>>> division >>>>>>>> between them, a watershed on either side of which events would >>>>>>>> go to >>>>>>>> one child node or the other. This would also apply if the peer >>>>>>>> nodes >>>>>>>> were further apart; they would divide the no-man's land between >>>>>>>> them. >>>>>>>> Of course this no-man's land would be part of "Parent" and >>>>>>>> could could >>>>>>>> be touch-sensitive - but we won't consider "Parent" as an event >>>>>>>> target >>>>>>>> until we have ruled out using one of its children's extended >>>>>>>> capture >>>>>>>> zones. >>>>>>>> >>>>>>>> The capture radius could either be a styleable property on the >>>>>>>> nodes, >>>>>>>> or could be determined by the X and Y size of a touch point as >>>>>>>> reported by the touch screen. We'd still be reporting a touch >>>>>>>> point, >>>>>>>> not a touch area. The touch target would be, as now, a single >>>>>>>> node. >>>>>>>> >>>>>>>> This would get us more reliable touch capture at leaf nodes of the >>>>>>>> node hierarchy at the expense of it being harder to tap the >>>>>>>> background. This is likely to be a good trade-off. >>>>>>>> >>>>>>>> Daniel >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>>> Tomas >>>>>>>>>> >>>>>>>>>>> Maybe the draw order / order in the scene graph / z buffer >>>>>>>>>>> value >>>>>>>>>>> might be sufficient to model what would happen in the real, >>>>>>>>>>> physical world. >>>>>>>>>>> Am 11.11.2013 13:05 schrieb "Assaf Yavnai" >>>>>>>>>>> >>>>>>>>>> >: >>>>>>>>>>> >>>>>>>>>>>> The ascii sketch looked fine on my screen before I sent the >>>>>>>>>>>> mail >>>>>>>>>>>> :( I hope the idea is clear from the text (now in the reply >>>>>>>>>>>> dialog >>>>>>>>>>>> its also look good) >>>>>>>>>>>> >>>>>>>>>>>> Assaf >>>>>>>>>>>> On 11/11/2013 12:51 PM, Assaf Yavnai wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi Guys, >>>>>>>>>>>>> >>>>>>>>>>>>> I hope that I'm right about this, but it seems that touch >>>>>>>>>>>>> events >>>>>>>>>>>>> in glass are translated (and reported) as a single point >>>>>>>>>>>>> events >>>>>>>>>>>>> (x & y) without an area, like pointer events. >>>>>>>>>>>>> AFAIK, the controls response for touch events same as mouse >>>>>>>>>>>>> events (using the same pickers) and as a result a button >>>>>>>>>>>>> press, >>>>>>>>>>>>> for example, will only triggered if the x & y of the touch >>>>>>>>>>>>> event >>>>>>>>>>>>> is within the control area. >>>>>>>>>>>>> >>>>>>>>>>>>> This means that small controls, or even quite large controls >>>>>>>>>>>>> (like buttons with text) will often get missed because the >>>>>>>>>>>>> 'strict' >>>>>>>>>>>>> node picking, >>>>>>>>>>>>> although from a UX point of view it is strange as the user >>>>>>>>>>>>> clearly pressed on a node (the finger was clearly above >>>>>>>>>>>>> it) but >>>>>>>>>>>>> nothing happens... >>>>>>>>>>>>> >>>>>>>>>>>>> With current implementation its hard to use small features in >>>>>>>>>>>>> controls, like scrollbars in lists, and it almost >>>>>>>>>>>>> impossible to >>>>>>>>>>>>> implement something like 'screen navigator' (the series of >>>>>>>>>>>>> small >>>>>>>>>>>>> dots in the bottom of a smart phones screen which allow >>>>>>>>>>>>> you to >>>>>>>>>>>>> jump directly to a 'far away' >>>>>>>>>>>>> screen) >>>>>>>>>>>>> >>>>>>>>>>>>> To illustrate it consider the bellow low resolution >>>>>>>>>>>>> sketch, where >>>>>>>>>>>>> the "+" >>>>>>>>>>>>> is the actual x,y reported, the ellipse is the finger >>>>>>>>>>>>> touch area >>>>>>>>>>>>> and the rectangle is the node. >>>>>>>>>>>>> With current implementation this type of tap will not >>>>>>>>>>>>> trigger the >>>>>>>>>>>>> node handlers >>>>>>>>>>>>> >>>>>>>>>>>>> __ >>>>>>>>>>>>> / \ >>>>>>>>>>>>> / \ >>>>>>>>>>>>> ___/ __+_ \___ in this scenario the 'button' >>>>>>>>>>>>> will not get >>>>>>>>>>>>> pressed >>>>>>>>>>>>> | \ / | >>>>>>>>>>>>> |___\ ___ / __ | >>>>>>>>>>>>> \___/ >>>>>>>>>>>>> >>>>>>>>>>>>> If your smart phone support it, turn on the touch debugging >>>>>>>>>>>>> options in settings and see that each point translate to a >>>>>>>>>>>>> quite >>>>>>>>>>>>> large circle and what ever fall in it, or reasonably close >>>>>>>>>>>>> to it, >>>>>>>>>>>>> get picked. >>>>>>>>>>>>> >>>>>>>>>>>>> I want to start a discussion to understand if my >>>>>>>>>>>>> perspective is >>>>>>>>>>>>> accurate and to understand what can be done, if any, for the >>>>>>>>>>>>> coming release or the next one. >>>>>>>>>>>>> >>>>>>>>>>>>> We might use recently opened RT-34136 >>>>>>>>>>>>> >>>>>>>>>>>> com/browse/RT-34136> for logging this, or open a new JIRA >>>>>>>>>>>>> for it >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks, >>>>>>>>>>>>> Assaf >>>>>> >>>>> >>>> >>> >> From pavel.safrata at oracle.com Thu Dec 12 12:30:22 2013 From: pavel.safrata at oracle.com (Pavel Safrata) Date: Thu, 12 Dec 2013 21:30:22 +0100 Subject: discussion about touch events In-Reply-To: <528CD598.2050307@oracle.com> References: <5280B6B9.2020605@oracle.com> <5280C770.5030600@oracle.com> <52814C8F.5080009@oracle.com> <52820BB6.8020602@oracle.com> <52820CD8.5060604@oracle.com> <5de9f371-cbee-487e-aff2-8a48e738114d@default> <52868D71.7080101@oracle.com> <528A11C9.8060602@oracle.com> <528B7701.8080204@oracle.com> <528CD598.2050307@oracle.com> Message-ID: <52AA1CDE.8020503@oracle.com> Hi Assaf, please see my comments inline. On 20.11.2013 16:30, Assaf Yavnai wrote: > Pavel, > > I think that this is a very good example why touch events should be > processed separately from mouse events. > For example, if you will press a button with a touch it will remain in > "hover" state although you released the finger from the screen. This > is done because the "hover" state listen to the mouse coordinates, > which is invalid for touch. > Touch events doesn't have the concept of move, only drag. My initial feeling would be for the synthesized mouse events to behave similarly to touch events - when touching the screen you want the application respond certain way regardless of the events used. Do we agree? Specifically, the hover problem can be solved quite easily. On iOS, Glass generates a MOUSE_EXITED event any time all touches are released, which clears the hover state of everything. I suppose all platforms can do that (for synthesized mouse events). > > As I mentioned before, from my point of view, the goal of this thread > is to understand and map the difference and expected behavior between > touch events and mouse events and have separate behavior depends of > the type of events (Nodes, Controls and application level). One of > them is the picking mechanism, the hover is another. I think the > discussion of how to implement it is currently in lower priority, as > it is only a technical detail. OK. Regarding picking, I believe the logical algorithm "pick each pixel and find the touch-sensitive one closest to the center if there's any" is the most natural behavior (just let me note that implementation is not really a "technical detail" because right now I don't see any way to implement it, so we might need to do something different). I already covered hover state. Another major thing on my mind is that scrollable content needs to become pannable (right now an attempt to scroll a list by panning in FX results in selecting an item, or even expanding a tree item, this is just not acceptable). > > Also I think that the synthesize mouse event should only be used for > making applications that doesn't listen to touch event usable (in most > cases), but we can't expect them to work 1:1. (touch using a finger is > a very different device then a mouse of stylus device). Touch > applications supposed to be 'tailor made' for touch this include > different UI layout, different UX and of course different logic > (because the events and there meaning are different then mouse) > Currently the is no reason for an application to listen to touch > events, only if you need to support multi-touch, as the events are > duplicated. The touch events were added exactly to support multi-touch. The "look" is one thing - yes, you'd often use different skins. But I believe the behavior of the events can be made such that a majority of application can just use mouse events and their application will "behave" well with single-touch out of the box, which can save a lot of development effort on user's side. > > As the mouse events are synthesize in native layer, I think its > important to know the origin of the event. Maybe the handlers should > check if the event is synthetic and treat it as touch event in this > case. We can also double check it by checking if there is currently > touch device connected, for example. I agree, I think many handlers will need to take the isSynthesized() flag into account. Regards, Pavel > > Assaf > > > On 11/19/2013 04:34 PM, Pavel Safrata wrote: >> Hello Assaf, >> there is more to it than just listeners. For instance, every node has >> its "hover" and "pressed" states that are maintained based on the >> picking results and used by CSS. So I believe we can't ignore >> anything during picking. >> >> By the way, I suppose this fuzzy picking should happen also for >> synthesized mouse events so that all the classic apps and standard >> controls can benefit. If I'm right, we definitely can't restrict it >> on touch-listening nodes. >> >> Pavel >> >> On 18.11.2013 14:10, Assaf Yavnai wrote: >>> I have a question, >>> >>> Would it be possible to search only the nodes that have been >>> registered for touch events notifications instead of the entire >>> tree? (if it's not already been done) >>> Of course if one choose to register the root node as the listener, >>> we will have to go all over the nodes, but it seems as bad practice >>> and I think its OK to have performance hit on that case >>> >>> Assaf >>> On 11/17/2013 04:09 PM, Daniel Blaukopf wrote: >>>> Hi Pavel, >>>> >>>> I think we we do use CSS to configure feel as well as look - and >>>> this is feel, not look - but I also don?t feel strongly about >>>> whether this needs to be in CSS. >>>> >>>> I like your idea of simply picking the closest touch sensitive node >>>> that is within range. That puts the burden on the touch event to >>>> describe what region it covers. On the touch screens we are >>>> currently looking at, a region would be defined as an oval - a >>>> combination of centre point, X diameter and Y diameter. However the >>>> touch region can be any shape, so might need to be represented as a >>>> Path. >>>> Iterating over pixels just isn?t going to work though. If we have a >>>> 300dpi display the touch region could be 150 pixels across and have >>>> an area of nearly 18000 pixels. Instead we?d want a way to ask a >>>> parent node, ?In your node hierarchy, which of your nodes? borders >>>> is closest to this region?. So we?d need to come up with an >>>> efficient algorithm to answer this question. We?d only ask this >>>> question for nodes with extended capture zone. >>>> >>>> We could reasonably limit the algorithm to dealing with convex >>>> shapes. Then we can consider an imaginary line L from the node >>>> center point to the touch center point. The intersection of L with >>>> the node perimeter is the closest point of contact. If this point >>>> is also within the touch area then we have a potential match. We >>>> iterate over all nearby nodes with extended capture zone in order >>>> to find the best match. >>>> >>>> This will then be O(n) in both time and space for n nearby nodes, >>>> given constant time to find the intersection of L with the node >>>> perimeter. This assumption will be true for rectangular, oval and >>>> rounded rectangle nodes. >>>> >>>> Thanks, >>>> Daniel >>>> >>>> >>>> On Nov 15, 2013, at 11:09 PM, Pavel Safrata >>>> wrote: >>>> >>>>> Hello, >>>>> let me start with a few comments. >>>>> >>>>> "changing behavior based on which nodes have listeners on them" - >>>>> absolutely not. We have capturing, bubbling, hierarchical event >>>>> types, so we can't decide which nodes listen (in the extreme case, >>>>> scene can handle Event.ANY and perform actions on the target >>>>> node based on the event type). >>>>> >>>>> "position does not fall in the boundaries of the node" - I don't >>>>> think it will be very harmful. Of course it's possible for users >>>>> to write handlers that will be affected, but I don't think it >>>>> happens often, it seems quite hard to invent such handler. The >>>>> delivery mechanism should be absolutely fine with it, we have >>>>> other cases like that (for instance, dragging can be delivered to >>>>> a node completely out of mouse position). Of course picking a 3D >>>>> node in its capture zone would mean useless PickResult (texture >>>>> coordinates etc.) >>>>> >>>>> CSS-accessible vs. property-only - I don't have a strong opinion. >>>>> I agree it's rather "feel" than "look", on the other hand I think >>>>> there are such things already (scrollbar policy for instance). >>>>> >>>>> >>>>> Now I'll bring another problem to the concept. Take the situation >>>>> from Daniel's original picture with two siblings competing for >>>>> the capture zones: >>>>> http://i.imgur.com/ELWamYp.png >>>>> Put each of the red children to its own group - they are no longer >>>>> siblings, but the competition should still work. >>>>> >>>>> The following may be a little wild, but anyway - have one of the >>>>> siblings with capture zone and the other one without it, the one >>>>> without it partly covering the one with it. Wouldn't it be great >>>>> if the capture zone was present around the visible part of the >>>>> node (reaching over the edge of the upper node)? I think it >>>>> would be really intuitive (fuzzy picking of what you see), but >>>>> it's getting pretty complicated. >>>>> >>>>> From now on, I'll call the node with enabled capture zone "touch >>>>> sensitive". >>>>> >>>>> The only algorithm I can think of that would provide great results >>>>> is: >>>>> - Pick normally at the center. If the picked node is touch >>>>> sensitive, return it. >>>>> - Otherwise, run picking for each pixel in the touch area, find >>>>> the closest one belonging to a touch sensitive node and return >>>>> that node (if there is none, then of course return the node at the >>>>> center). >>>>> >>>>> Obviously we can hardly do so many picking rounds. But it can be >>>>> significantly optimized: >>>>> - Perform the area picking in one pass, filling an array - >>>>> representing pixels - by the nodes picked on them >>>>> - Descend only when bounds intersect with the picking area >>>>> - Don't look farther from the center than the already found best >>>>> match >>>>> - Don't look at pixels with already picked node >>>>> - For many nodes (rectangular, circular, with pickOnBounds etc.), >>>>> instead of testing containment many times, we can quickly tell >>>>> the intersection with the picking area >>>>> - Perhaps also checking each nth pixel would be sufficient >>>>> >>>>> This algorithm should be reasonably easy to code and very robust >>>>> (not suffering from various node-arrangement corner-cases), but >>>>> I'm still not sure about the performance (depends mostly on >>>>> the capture zone size - 30-pixel zones may result in calling >>>>> contains() nearly thousand times which might kill it). But perhaps >>>>> (hopefully) it can be perfected. Right now I can't see any other >>>>> algorithm that would work well and would result in more efficient >>>>> implementation (the search for overlapping nodes and closest >>>>> borders etc. is going to be pretty complicated as well, if it's >>>>> even possible to make it work). >>>>> >>>>> What do you think? Any better ideas? >>>>> >>>>> Pavel >>>>> >>>>> >>>>> On 13.11.2013 22:09, Daniel Blaukopf wrote: >>>>>> Hi Seeon, >>>>>> >>>>>> Summarizing our face to face talk today: >>>>>> >>>>>> I see that the case described by Pavel is indeed a problem and >>>>>> agree with you that not every node needs to be a participant in >>>>>> the competition for which grabs touch input. However I?m not keen >>>>>> on the idea of changing behavior based on which nodes have >>>>>> listeners on them. CSS seems like the place to do this (as I >>>>>> think Pavel suggested earlier). In Pavel?s case, either: >>>>>> - the upper child node has the CSS tag saying ?enable extended >>>>>> capture zone? and the lower child doesn?t: then the upper child?s >>>>>> capture zone will extend over the lower child >>>>>> - or both will have the CSS tag, in which case the upper >>>>>> child?s capture zone would be competing with the lower child?s >>>>>> capture zone. As in any other competition between capture zones >>>>>> the nearest node should win. The effect would be the same as if >>>>>> the regular matching rules were applied on the upper child. It >>>>>> would also be the same as if only the lower child had an extended >>>>>> capture zone. However, I?d consider this case to be bad UI >>>>>> programming. >>>>>> >>>>>> We agreed that ?in a competition between capture zones, pick the >>>>>> node whose border is nearest the touch point? was a reasonable >>>>>> way to resolve things. >>>>>> >>>>>> Thanks, >>>>>> Daniel >>>>>> >>>>>> On Nov 13, 2013, at 12:31 PM, Seeon Birger >>>>>> wrote: >>>>>> >>>>>>> Hi Pavel, >>>>>>> >>>>>>> Your example of 'child over child' is an interesting case which >>>>>>> raises some design aspects of the desired picking algorithm: >>>>>>> 1. Which node to pick when one node has a 'strict containership' >>>>>>> over the touch center and the other node only has a fuzzy >>>>>>> containership (the position falls in the fuzzy area). >>>>>>> 2. Accounting for z-order for extended capture zone area. >>>>>>> 3. Accounting for parent-child relationship. >>>>>>> >>>>>>> Referring to your 'child over child' example: >>>>>>> http://i.imgur.com/e92qEJA.jpg >>>>>>> >>>>>>> The conflict would arise were touch point center position falls >>>>>>> in the capture zone area of child2 but also clearly falls in the >>>>>>> strict bounds of child1. >>>>>>> Generally, when two control nodes compete on same touch event >>>>>>> (e.g. child1 & child2 in Daniel's diagram), it seems that we >>>>>>> would like to give priority to "strict containership" over >>>>>>> "fuzzy containership". >>>>>>> But in your case it's probably not the desired behavior. >>>>>>> >>>>>>> Also note that in the general case there's almost always exists >>>>>>> come container/background node that strictly contains the touch >>>>>>> point, but it would probably be an ancestor of the child node, >>>>>>> so the usual parent-child relationship order will give >>>>>>> preference to the child. >>>>>>> >>>>>>> One way out it is to honor the usual z-order for the extended >>>>>>> area of child2, so when a touch center hits the fuzzy area of >>>>>>> child2, then child2 would be picked. >>>>>>> >>>>>>> But is not ideal for Daniel's example: >>>>>>> http://i.imgur.com/ELWamYp.png >>>>>>> >>>>>>> where the 2 nodes don't strictly overlap, but their capture >>>>>>> zones do. Preferring one child by z-order (which matches the >>>>>>> order of children in the parent) is not natural here. And we >>>>>>> might better choose the node which is "closer" >>>>>>> To the touch point. >>>>>>> >>>>>>> So to summarize I suggest this rough picking algorithm: >>>>>>> 1. Choose all uppermost nodes which are not transparent to mouse >>>>>>> events and contain the touch point center either strictly or by >>>>>>> their capture zone. >>>>>>> 2. Remove all nodes that is strictly overlapped by another node >>>>>>> and is below that node by z-order. >>>>>>> 3. Out of those left choose the "closest" node. (the concept of >>>>>>> "closet" should employ some calculation which might not be >>>>>>> trivial in the general case). >>>>>>> 4. Once a node has been picked, we follow the usual node chain >>>>>>> list for event processing. >>>>>>> >>>>>>> Care must be taken so we not break the current model for event >>>>>>> processing. For example, if a node is picked by its capture >>>>>>> zone, it means that the position does not fall in the boundaries >>>>>>> of the node, so existing event handling code that relies on that >>>>>>> would break. So I think the capture zone feature should be >>>>>>> selectively enabled for certain type of nodes such buttons or >>>>>>> other classic controls. >>>>>>> >>>>>>> Regards, >>>>>>> Seeon >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -----Original Message----- >>>>>>> From: Pavel Safrata >>>>>>> Sent: Tuesday, November 12, 2013 1:11 PM >>>>>>> To: Daniel Blaukopf >>>>>>> Cc: OpenJFX >>>>>>> Subject: Re: discussion about touch events >>>>>>> >>>>>>> (Now my answer using external link) >>>>>>> >>>>>>> Hello Daniel, >>>>>>> this is quite similar to my idea described earlier. The major >>>>>>> difference is the "fair division of capture zones" among >>>>>>> siblings. It's an interesting idea, let's explore it. What pops >>>>>>> first is that children can also overlap. So I think it would >>>>>>> behave like this (green capture zones >>>>>>> omitted): >>>>>>> >>>>>>> Child in parent vs. Child over child: >>>>>>> http://i.imgur.com/e92qEJA.jpg >>>>>>> >>>>>>> ..wouldn't it? From user's point of view this seems confusing, >>>>>>> both cases look the same but behave differently. Note that in >>>>>>> the case on the right, the parent may be still the same, >>>>>>> developer only adds a fancy background as a new child and >>>>>>> suddenly the red child can't be hit that easily. What do you >>>>>>> think? Is it an issue? Or would it not behave this way? >>>>>>> >>>>>>> Regards, >>>>>>> Pavel >>>>>>> >>>>>>> On 12.11.2013 12:06, Daniel Blaukopf wrote: >>>>>>>> (My original message didn't get through to openjfx-dev because >>>>>>>> I used >>>>>>>> inline images. I've replaced those images with external links) >>>>>>>> >>>>>>>> On Nov 11, 2013, at 11:30 PM, Pavel Safrata >>>>>>>> >>>>>>> > wrote: >>>>>>>> >>>>>>>>> On 11.11.2013 17:49, Tomas Mikula wrote: >>>>>>>>>> On Mon, Nov 11, 2013 at 1:28 PM, Philipp D?rfler >>>>>>>>>> > wrote: >>>>>>>>>>> I see the need to be aware of the area that is covered by >>>>>>>>>>> fingers >>>>>>>>>>> rather than just considering that area's center point. >>>>>>>>>>> I'd guess that this adds a new layer of complexity, though. For >>>>>>>>>>> instance: >>>>>>>>>>> Say we have a button on some background and both the >>>>>>>>>>> background and >>>>>>>>>>> the button do have an onClick listener attached. If you tap the >>>>>>>>>>> button in a way that the touched area's center point is >>>>>>>>>>> outside of >>>>>>>>>>> the buttons boundaries - what event will be fired? Will both >>>>>>>>>>> the >>>>>>>>>>> background and the button receive a click event? Or just >>>>>>>>>>> either the >>>>>>>>>>> background or the button exclusively? Will there be a new event >>>>>>>>>>> type which gets fired in case of such area-based taps? >>>>>>>>>>> >>>>>>>>>>> My suggestion would therefore be to have an additional area tap >>>>>>>>>>> event which gives precise information about diameter and >>>>>>>>>>> center of >>>>>>>>>>> the tap. Besides that there should be some kind of >>>>>>>>>>> "priority" for >>>>>>>>>>> choosing which node's onClick will be called. >>>>>>>>>> What about picking the one that is closest to the center of >>>>>>>>>> the touch? >>>>>>>>>> >>>>>>>>> There is always something directly on the center of the touch >>>>>>>>> (possibly the scene background, but it can have event handlers >>>>>>>>> too). >>>>>>>>> That's what we pick right now. >>>>>>>>> Pavel >>>>>>>> What Seeon, Assaf and I discussed earlier was building some >>>>>>>> fuzziness >>>>>>>> into the node picker so that instead of each node capturing only >>>>>>>> events directly on top of it: >>>>>>>> >>>>>>>> Non-fuzzy picker: http://i.imgur.com/uszql8V.png >>>>>>>> >>>>>>>> ..nodes at each level of the hierarchy would capture events beyond >>>>>>>> their borders as well: >>>>>>>> >>>>>>>> Fuzzy picker: http://i.imgur.com/ELWamYp.png >>>>>>>> >>>>>>>> In the above, "Parent" would capture touch events within a certain >>>>>>>> radius around it, as would its children "Child 1" and "Child >>>>>>>> 2". Since >>>>>>>> "Child 1" and "Child 2" are peers, they would have a sharp >>>>>>>> division >>>>>>>> between them, a watershed on either side of which events would >>>>>>>> go to >>>>>>>> one child node or the other. This would also apply if the peer >>>>>>>> nodes >>>>>>>> were further apart; they would divide the no-man's land between >>>>>>>> them. >>>>>>>> Of course this no-man's land would be part of "Parent" and >>>>>>>> could could >>>>>>>> be touch-sensitive - but we won't consider "Parent" as an event >>>>>>>> target >>>>>>>> until we have ruled out using one of its children's extended >>>>>>>> capture >>>>>>>> zones. >>>>>>>> >>>>>>>> The capture radius could either be a styleable property on the >>>>>>>> nodes, >>>>>>>> or could be determined by the X and Y size of a touch point as >>>>>>>> reported by the touch screen. We'd still be reporting a touch >>>>>>>> point, >>>>>>>> not a touch area. The touch target would be, as now, a single >>>>>>>> node. >>>>>>>> >>>>>>>> This would get us more reliable touch capture at leaf nodes of the >>>>>>>> node hierarchy at the expense of it being harder to tap the >>>>>>>> background. This is likely to be a good trade-off. >>>>>>>> >>>>>>>> Daniel >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>>> Tomas >>>>>>>>>> >>>>>>>>>>> Maybe the draw order / order in the scene graph / z buffer >>>>>>>>>>> value >>>>>>>>>>> might be sufficient to model what would happen in the real, >>>>>>>>>>> physical world. >>>>>>>>>>> Am 11.11.2013 13:05 schrieb "Assaf Yavnai" >>>>>>>>>>> >>>>>>>>>> >: >>>>>>>>>>> >>>>>>>>>>>> The ascii sketch looked fine on my screen before I sent the >>>>>>>>>>>> mail >>>>>>>>>>>> :( I hope the idea is clear from the text (now in the reply >>>>>>>>>>>> dialog >>>>>>>>>>>> its also look good) >>>>>>>>>>>> >>>>>>>>>>>> Assaf >>>>>>>>>>>> On 11/11/2013 12:51 PM, Assaf Yavnai wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi Guys, >>>>>>>>>>>>> >>>>>>>>>>>>> I hope that I'm right about this, but it seems that touch >>>>>>>>>>>>> events >>>>>>>>>>>>> in glass are translated (and reported) as a single point >>>>>>>>>>>>> events >>>>>>>>>>>>> (x & y) without an area, like pointer events. >>>>>>>>>>>>> AFAIK, the controls response for touch events same as mouse >>>>>>>>>>>>> events (using the same pickers) and as a result a button >>>>>>>>>>>>> press, >>>>>>>>>>>>> for example, will only triggered if the x & y of the touch >>>>>>>>>>>>> event >>>>>>>>>>>>> is within the control area. >>>>>>>>>>>>> >>>>>>>>>>>>> This means that small controls, or even quite large controls >>>>>>>>>>>>> (like buttons with text) will often get missed because the >>>>>>>>>>>>> 'strict' >>>>>>>>>>>>> node picking, >>>>>>>>>>>>> although from a UX point of view it is strange as the user >>>>>>>>>>>>> clearly pressed on a node (the finger was clearly above >>>>>>>>>>>>> it) but >>>>>>>>>>>>> nothing happens... >>>>>>>>>>>>> >>>>>>>>>>>>> With current implementation its hard to use small features in >>>>>>>>>>>>> controls, like scrollbars in lists, and it almost >>>>>>>>>>>>> impossible to >>>>>>>>>>>>> implement something like 'screen navigator' (the series of >>>>>>>>>>>>> small >>>>>>>>>>>>> dots in the bottom of a smart phones screen which allow >>>>>>>>>>>>> you to >>>>>>>>>>>>> jump directly to a 'far away' >>>>>>>>>>>>> screen) >>>>>>>>>>>>> >>>>>>>>>>>>> To illustrate it consider the bellow low resolution >>>>>>>>>>>>> sketch, where >>>>>>>>>>>>> the "+" >>>>>>>>>>>>> is the actual x,y reported, the ellipse is the finger >>>>>>>>>>>>> touch area >>>>>>>>>>>>> and the rectangle is the node. >>>>>>>>>>>>> With current implementation this type of tap will not >>>>>>>>>>>>> trigger the >>>>>>>>>>>>> node handlers >>>>>>>>>>>>> >>>>>>>>>>>>> __ >>>>>>>>>>>>> / \ >>>>>>>>>>>>> / \ >>>>>>>>>>>>> ___/ __+_ \___ in this scenario the 'button' >>>>>>>>>>>>> will not get >>>>>>>>>>>>> pressed >>>>>>>>>>>>> | \ / | >>>>>>>>>>>>> |___\ ___ / __ | >>>>>>>>>>>>> \___/ >>>>>>>>>>>>> >>>>>>>>>>>>> If your smart phone support it, turn on the touch debugging >>>>>>>>>>>>> options in settings and see that each point translate to a >>>>>>>>>>>>> quite >>>>>>>>>>>>> large circle and what ever fall in it, or reasonably close >>>>>>>>>>>>> to it, >>>>>>>>>>>>> get picked. >>>>>>>>>>>>> >>>>>>>>>>>>> I want to start a discussion to understand if my >>>>>>>>>>>>> perspective is >>>>>>>>>>>>> accurate and to understand what can be done, if any, for the >>>>>>>>>>>>> coming release or the next one. >>>>>>>>>>>>> >>>>>>>>>>>>> We might use recently opened RT-34136 >>>>>>>>>>>>> >>>>>>>>>>>> com/browse/RT-34136> for logging this, or open a new JIRA >>>>>>>>>>>>> for it >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks, >>>>>>>>>>>>> Assaf >>> >> > From hang.vo at oracle.com Thu Dec 12 13:33:13 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 12 Dec 2013 21:33:13 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34685: Regression: TextFieldTableCell in TableView doesn't save edited values in b118 Message-ID: <20131212213337.2924262C68@hg.openjdk.java.net> Changeset: 773008dbb998 Author: jgiles Date: 2013-12-13 09:47 +1300 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/773008dbb998 RT-34685: Regression: TextFieldTableCell in TableView doesn't save edited values in b118 ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableCellBehaviorBase.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TreeTableCellBehavior.java ! modules/controls/src/test/java/com/sun/javafx/scene/control/infrastructure/MouseEventFirer.java ! modules/controls/src/test/java/com/sun/javafx/scene/control/infrastructure/StageLoader.java ! modules/controls/src/test/java/com/sun/javafx/scene/control/infrastructure/VirtualFlowTestUtils.java ! modules/controls/src/test/java/javafx/scene/control/ListViewMouseInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TableViewMouseInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TableViewTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewMouseInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeViewMouseInputTest.java From hang.vo at oracle.com Thu Dec 12 13:17:47 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 12 Dec 2013 21:17:47 +0000 Subject: hg: openjfx/8u-dev/rt: 6 new changesets Message-ID: <20131212212012.B703462C66@hg.openjdk.java.net> Changeset: dcda500991c5 Author: jgiles Date: 2013-12-12 14:31 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/dcda500991c5 RT-34461: Space doesn't create an anchor for cell-based multiple selection mode. ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableViewBehaviorBase.java ! modules/controls/src/test/java/javafx/scene/control/TableViewKeyInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewKeyInputTest.java Changeset: 022d5863ddd9 Author: jgiles Date: 2013-12-12 16:15 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/022d5863ddd9 Partial fix for RT-34620: [Default Button] Button set to default is not reacting to ComboBox enter key ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxListViewSkin.java ! modules/controls/src/test/java/javafx/scene/control/ComboBoxTest.java Changeset: 6aa65cf42394 Author: jgiles Date: 2013-12-12 17:04 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/6aa65cf42394 RT-34828: TabPane has resize problems when tabs.setAll(tab) is invoked. Also, a general clean up of some of the skin code to make the tab open / close animations nicer. ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TabPaneSkin.java Changeset: 216d3d77c77c Author: jgiles Date: 2013-12-13 07:47 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/216d3d77c77c Fix possible NPE in NestedTableColumnHeader ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/NestedTableColumnHeader.java Changeset: c9b8d00649f7 Author: jgiles Date: 2013-12-13 08:31 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/c9b8d00649f7 RT-31442: Charts should have opaque background by default ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/modena/modena.css Changeset: b6f3f3d2ef2d Author: jgiles Date: 2013-12-13 08:39 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/b6f3f3d2ef2d RT-31132: Focus traversable can't be switched off for date picker ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxListViewSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/DatePickerSkin.java From james.graham at oracle.com Thu Dec 12 15:27:29 2013 From: james.graham at oracle.com (Jim Graham) Date: Thu, 12 Dec 2013 15:27:29 -0800 Subject: 8u20 review request: RT-34854 - wrong stroke widths on texture-based primitives Message-ID: <52AA4661.8030308@oracle.com> It's a simple fix. I'm including Lisa on the reviewers because I'm surprised that this never showed up on embedded where the texture-based primitives are used by default...? Jira: https://javafx-jira.kenai.com/browse/RT-34854 webrev: http://cr.openjdk.java.net/~flar/RT-34854/webrev.00/ Tested with the test cases included in the bug report with the appropriate flags (flags not needed on mobile)... ...jim From hang.vo at oracle.com Thu Dec 12 16:04:02 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Dec 2013 00:04:02 +0000 Subject: hg: openjfx/8u-dev/rt: Fix RT-34854: bad stroke widths on texture-based stroked rectangles Message-ID: <20131213000446.777F162C6E@hg.openjdk.java.net> Changeset: d0b4bb09641b Author: flar Date: 2013-12-12 15:51 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/d0b4bb09641b Fix RT-34854: bad stroke widths on texture-based stroked rectangles Reviewed by: Kevin ! modules/graphics/src/main/java/com/sun/prism/impl/ps/BaseShaderGraphics.java From kevin.rushforth at oracle.com Thu Dec 12 16:39:36 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Thu, 12 Dec 2013 16:39:36 -0800 Subject: FX 8 b120 changes synced into 8u-dev Message-ID: <52AA5748.3080305@oracle.com> I have just synced the changes from FX 8 b120 changes synced into 8u-dev. I plan to do this roughly weekly after each FX 8 promoted build, although very few changes will go into FX 8 after b121. -- Kevin From hang.vo at oracle.com Thu Dec 12 16:50:49 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Dec 2013 00:50:49 +0000 Subject: hg: openjfx/8u-dev/rt: 67 new changesets Message-ID: <20131213010810.E06B562C71@hg.openjdk.java.net> Changeset: a4b45faa34a2 Author: Alexander Kouznetsov Date: 2013-12-03 18:41 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/a4b45faa34a2 Ensemble8: Fix for RT-32637 Samples should be updated to use Lambdas for Java 8 ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timeline/TimelineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timelineevents/TimelineEventsApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/audio/AudioAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChart.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/audio/AudioBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChart.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/stock/StockLineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/pie/drilldown/DrilldownPieChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/animated/LiveScatterChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/colorpicker/ColorPickerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/datepicker/DatePickerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/listviewcellfactory/ListViewCellFactoryApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/simplelistview/SimpleListViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/menu/MenuApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/pagination/PaginationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/progressindicator/ProgressIndicatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/scrollbar/ScrollBarApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/tabpane/TabPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/Person.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/searchbox/SearchBox.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextInputValidatorPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextValidatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidationEvent.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidatorPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/togglebutton/ToggleButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/TreeTableViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treeview/TreeViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/Authenticator.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/FXMLLoginDemoApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/User.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Ball.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Brick.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Config.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Level.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/LevelData.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Splash.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Calculator.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Key.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Clock.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelf.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageoperator/ImageOperationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/radialgradient/RadialGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Piece.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/PuzzlePiecesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polygon/PolygonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polyline/PolylineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchButton.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Watch.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/anchorpane/AnchorPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/borderpane/BorderPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/advancedmedia/MediaControl.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/AlphaMediaPlayerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/PlanetaryPlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/audioclip/AudioClipApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/overlaymediaplayer/PlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/streamingmediaplayer/PlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keyevent/KeyEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keystrokemotion/LettersPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/mouseevent/MouseEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchImageView.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/CustomNodeApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/advancedstage/AdvancedStageApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/stage/StageApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SampleTableModel.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInterop.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropTask.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/webview/WebViewApp.java Changeset: 0c426f650357 Author: Alexander Kouznetsov Date: 2013-12-03 18:43 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/0c426f650357 Ensemble8: Fix for RT-34669 ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/DocumentationIndexer.java Changeset: 355fcde00b08 Author: Alexander Kouznetsov Date: 2013-12-03 18:48 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/355fcde00b08 Ensemble8: Fix for RT-34670 Intermittent failure in copying resources to Modena.jar file ! apps/experiments/Modena/nbproject/project.properties ! apps/experiments/Modena/nbproject/project.xml Changeset: 43d9f4f38db1 Author: Alexander Kouznetsov Date: 2013-12-03 18:54 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/43d9f4f38db1 Ensemble8: Fix for RT-34672 Ensemble8 fails to build samples and search index due to wrong JDK used ! apps/samples/Ensemble8/build.xml ! apps/samples/Ensemble8/nbproject/project.properties Changeset: 5c5f089af5e3 Author: Alexander Kouznetsov Date: 2013-12-03 19:45 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/5c5f089af5e3 Ensemble8: Fix for RT-34447 DatePicker Control in Ensemble8 - don't open stage for DatePicker ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/datepicker/DatePickerApp.java Changeset: a91fae01ca00 Author: kcr Date: 2013-12-04 06:23 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/a91fae01ca00 Backed out fix for RT-34670 since that fix broke the build Backed out chagneset 355fcde00b08 ! apps/experiments/Modena/nbproject/project.properties ! apps/experiments/Modena/nbproject/project.xml Changeset: 355b380baf28 Author: kcr Date: 2013-12-04 11:11 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/355b380baf28 Backout fix for RT-32637 (which is being deferred out of FX 8) hg backout a4b45faa34a2 ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timeline/TimelineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timelineevents/TimelineEventsApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/audio/AudioAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChart.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/audio/AudioBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChart.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/stock/StockLineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/pie/drilldown/DrilldownPieChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/animated/LiveScatterChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/colorpicker/ColorPickerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/datepicker/DatePickerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/listviewcellfactory/ListViewCellFactoryApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/simplelistview/SimpleListViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/menu/MenuApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/pagination/PaginationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/progressindicator/ProgressIndicatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/scrollbar/ScrollBarApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/tabpane/TabPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/Person.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/searchbox/SearchBox.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextInputValidatorPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextValidatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidationEvent.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidatorPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/togglebutton/ToggleButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/TreeTableViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treeview/TreeViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/Authenticator.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/FXMLLoginDemoApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/User.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Ball.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Brick.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Config.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Level.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/LevelData.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Splash.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Calculator.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Key.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Clock.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelf.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageoperator/ImageOperationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/radialgradient/RadialGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Piece.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/PuzzlePiecesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polygon/PolygonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polyline/PolylineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchButton.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Watch.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/anchorpane/AnchorPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/borderpane/BorderPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/advancedmedia/MediaControl.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/AlphaMediaPlayerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/PlanetaryPlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/audioclip/AudioClipApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/overlaymediaplayer/PlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/streamingmediaplayer/PlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keyevent/KeyEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keystrokemotion/LettersPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/mouseevent/MouseEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchImageView.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/CustomNodeApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/advancedstage/AdvancedStageApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/stage/StageApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SampleTableModel.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInterop.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropTask.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/webview/WebViewApp.java Changeset: 6686825cd99d Author: dmasada Date: 2013-12-04 12:10 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/6686825cd99d RT-27552 Update readme for Samples + apps/samples/samples_readme.txt Changeset: 682dd0ecd56b Author: dmasada Date: 2013-12-04 13:14 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/682dd0ecd56b RT-34518 Ensemble8 add @embedded flags to FXML-LoginDemo and StopWatch too ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/FXMLLoginDemoApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchApp.java Changeset: 6f1de57755ac Author: Alexander Kouznetsov Date: 2013-12-04 13:35 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/6f1de57755ac Modena: Fix for RT-34670 Modena.jar fails to launch due to intermittent failure in copying resources ! apps/experiments/Modena/nbproject/build-impl.xml ! apps/experiments/Modena/nbproject/genfiles.properties ! apps/experiments/Modena/nbproject/project.properties ! apps/experiments/Modena/nbproject/project.xml Changeset: 2627257f8d78 Author: Alexander Kouznetsov Date: 2013-12-04 14:40 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/2627257f8d78 Ensemble8: Fix for RT-34701 Need to remove Lambda expressions from Ensemble8 ! apps/samples/Ensemble8/nbproject/project.properties ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/Description.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SamplePage.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/xylophone/XylophoneApp.java Changeset: ff662670c9a4 Author: Alexander Kouznetsov Date: 2013-12-04 16:54 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/ff662670c9a4 Ensemble8: Fix for RT-34637 Ensemble8 fails to reference subclass vs. class ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/Description.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SamplePage.java ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java Changeset: 08e838ff903e Author: Felipe Heidrich Date: 2013-12-04 17:16 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/08e838ff903e RT-34706: IOS: build failure due to incorrect classpath for javah Reviewed-by: Kevin ! buildSrc/ios.gradle Changeset: e3662305750a Author: kcr Date: 2013-12-05 08:49 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/e3662305750a Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt Changeset: 25b4801c0ad6 Author: snorthov Date: 2013-12-05 17:16 -0500 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/25b4801c0ad6 FINALS ONLY: Add final's back to code compiles under jdk7 ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/MenuBarSkin.java ! modules/graphics/src/main/java/com/sun/glass/ui/gtk/GtkApplication.java ! modules/graphics/src/main/java/com/sun/javafx/tk/quantum/EmbeddedScene.java ! modules/graphics/src/main/java/com/sun/javafx/tk/quantum/GlassAppletWindow.java ! modules/graphics/src/main/java/javafx/scene/layout/FlowPane.java ! modules/graphics/src/main/java/javafx/scene/layout/GridPane.java ! modules/graphics/src/main/java/javafx/scene/layout/HBox.java ! modules/graphics/src/main/java/javafx/scene/layout/StackPane.java Changeset: 5c12192a7720 Author: snorthov Date: 2013-12-05 17:19 -0500 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/5c12192a7720 Enable graphicsn in forward/back buttons on iOS ! apps/samples/Ensemble8/src/app/java/ensemble/EnsembleApp.java Changeset: f87309876fe2 Author: Chien Yang Date: 2013-12-05 22:47 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/f87309876fe2 [Doc only] Fix to RT-30404: [FX3D] Need better documentation for the default PointLight Reviewed-by: kcr ! modules/graphics/src/main/java/javafx/scene/PointLight.java ! modules/graphics/src/main/java/javafx/scene/Scene.java ! modules/graphics/src/main/java/javafx/scene/SubScene.java Changeset: cc52e2bbd227 Author: ddhill Date: 2013-12-06 10:50 -0500 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/cc52e2bbd227 RT-31668: [SAMPLES] correcting reference to jfxrt.jar in shipping samples for NB Reviewed-by: kcr ! apps/build.xml ! apps/experiments/3DViewer/nbproject/project.properties ! apps/experiments/Modena/nbproject/project.properties ! apps/samples/Ensemble8/nbproject/project.properties ! apps/toys/Hello/nbproject/project.properties ! build.gradle Changeset: cf97e24de0c3 Author: Martin Sladecek Date: 2013-12-06 17:12 +0100 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/cf97e24de0c3 RT-34575 : Ensemble8 does not work with a touch screen Reviewed by: kselle ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualFlow.java Changeset: a85547d0a3e8 Author: Chien Yang Date: 2013-12-06 12:14 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/a85547d0a3e8 [Doc only] Fix to RT-34292: Document importance of TriangleMesh order of elements Reviewed-by: kcr ! modules/graphics/src/main/java/javafx/scene/shape/TriangleMesh.java Changeset: 4ce648d40059 Author: ddhill Date: 2013-12-06 17:24 -0500 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/4ce648d40059 [TOYS-ONLY] fix src-path for toys/Hello ! apps/toys/Hello/nbproject/project.properties Changeset: 80fa1e0a12ed Author: Alexander Kouznetsov Date: 2013-12-06 15:17 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/80fa1e0a12ed Ensemble8: Fix for RT-28783 login.css in FXML-LoginDemo contains wrong rgb() color definitions ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Login.css Changeset: 32ba0287f199 Author: Alexander Kouznetsov Date: 2013-12-06 15:48 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/32ba0287f199 Ensemble8: Fix for RT-34708 Ensemble8: Some samples are not shown in search + apps/samples/Ensemble8/nbproject/configs/Build_index.properties ! apps/samples/Ensemble8/src/app/java/ensemble/search/IndexSearcher.java ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/EnsembleCompiletimeMain.java - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdt - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdx - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fnm - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.frq - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.nrm - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.prx - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tii - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tis + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fdt + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fdx + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fnm + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.frq + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.nrm + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.prx + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.tii + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.tis ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/listAll.txt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments.gen - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_1 + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_3 Changeset: 7d702464f5be Author: Chien Yang Date: 2013-12-06 16:37 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/7d702464f5be Part of a multi-part fix to RT-26385: Finish javadoc for FX 8 3D API Post commit reviewer: kcr ! modules/graphics/src/main/java/javafx/scene/SubScene.java Changeset: f681d1deaab6 Author: Alexander Kouznetsov Date: 2013-12-06 21:27 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/f681d1deaab6 Ensemble8: Fix for RT-34709 Ensemble8: FAILED TO PARSE DOCS PAGE SO IGNORED ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/BuildEnsembleSearchIndex.java ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/DocumentationIndexer.java Changeset: dce15a0f5a92 Author: Alexander Kouznetsov Date: 2013-12-06 21:35 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/dce15a0f5a92 Ensemble8: Fix for RT-34669 ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/EnsembleCompiletimeMain.java Changeset: c1372e71e4c8 Author: Alexander Kouznetsov Date: 2013-12-06 22:02 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/c1372e71e4c8 Ensemble8: Fix for RT-34707 Ensemble8: Related Samples are not shown for docs found through search ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fdt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fdx ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.frq ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.nrm ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.prx ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.tii ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.tis ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/listAll.txt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_3 Changeset: d0bca0f6ab5a Author: Alexander Kouznetsov Date: 2013-12-09 01:29 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/d0bca0f6ab5a Ensemble8: Fix for RT-34712 Ensemble8: Bouncing Balls "View source" link doesn't work ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SamplePageContent.java Changeset: d337fbc19887 Author: Alexander Kouznetsov Date: 2013-12-09 12:37 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/d337fbc19887 Ensemble8: Fix for RT-34710 Ensemble8: Gesture Events sample name and description is confusing ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java Changeset: 3bdcd01853bf Author: Alexander Kouznetsov Date: 2013-12-09 12:52 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/3bdcd01853bf Ensemble8: Fix for RT-34713 Ensemble8: TreeTableView sample is bad in editing: edited values disappear + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/Data.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/Inventory.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/Part.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/TreeTableViewApp.java Changeset: 53cb68c02d07 Author: John Yoon Date: 2013-12-09 12:38 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/53cb68c02d07 [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/pathtransition/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/pathtransition/preview at 2x.png Changeset: a7f21c31ef3e Author: Alexander Kouznetsov Date: 2013-12-09 13:16 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/a7f21c31ef3e Ensemble8: Fix for RT-34785 Ensemble8: Multi-touch sample is not found using Search ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchApp.java Changeset: a5d957304de7 Author: Alexander Kouznetsov Date: 2013-12-09 13:18 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/a5d957304de7 Ensemble8: Fix for RT-34769 Ensemble8: TableCellFactoryApp sample needs cleanup ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/Person.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java Changeset: 2883ec7be017 Author: Alexander Kouznetsov Date: 2013-12-09 13:36 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/2883ec7be017 Ensemble8: Fix for RT-34448 HTML Editor in Ensemble8 is not completely visible ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java Changeset: 98ffb00297f5 Author: Alexander Kouznetsov Date: 2013-12-09 13:45 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/98ffb00297f5 Ensemble8: Fix for RT-30482 Ensemble8: no format checking for X and Y values in charts ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/XYDataVisualizer.java Changeset: bee5e52e68ae Author: John Yoon Date: 2013-12-09 14:28 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/bee5e52e68ae [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview at 2x.png Changeset: 57153bcef81f Author: kcr Date: 2013-12-09 15:15 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/57153bcef81f RT-34389: [doc] cssref.html copyright is incorrect Contributed-by: Tom Schindl ! apps/samples/Ensemble8/build.xml ! apps/samples/Ensemble8/nbproject/project.properties Changeset: c7d6f188d1d3 Author: kcr Date: 2013-12-09 15:17 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/c7d6f188d1d3 RT-19968: Document that Platform.runLater must not be called before FX is initialized ! modules/graphics/src/main/java/javafx/application/Platform.java Changeset: ac015a4a85b7 Author: John Yoon Date: 2013-12-09 17:26 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/ac015a4a85b7 [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/audio/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/audio/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/chart/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/chart/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/curvefitted/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/curvefitted/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/stacked/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/stacked/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/audio/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/audio/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/chart/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/chart/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/horizontal/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/horizontal/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/image/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/image/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/stacked/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/stacked/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/category/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/category/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/chart/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/chart/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/stock/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/stock/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/chart/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/chart/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/drilldown/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/drilldown/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/animated/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/animated/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/chart/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/chart/preview at 2x.png Changeset: d7a20d89aaf4 Author: Alexander Kouznetsov Date: 2013-12-09 18:04 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/d7a20d89aaf4 Ensemble8: Fix for RT-34735 Ensemble8 startup time depends on networking and could be too long ! apps/samples/Ensemble8/src/app/java/ensemble/EnsembleApp.java Changeset: 7a5bed4ab9d8 Author: Alexander Kouznetsov Date: 2013-12-09 18:11 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/7a5bed4ab9d8 Ensemble8: Removed builders from EnsembleApp.java. Code cleanup. ! apps/samples/Ensemble8/src/app/java/ensemble/EnsembleApp.java Changeset: c818e4054cc7 Author: kcr Date: 2013-12-09 18:29 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/c818e4054cc7 RT-32512: Fix URL for JavaFX API docs license terms link Reviewed-by: mtvo ! apps/samples/Ensemble8/build.xml ! build.properties ! modules/fxml/src/main/docs/javafx/fxml/doc-files/introduction_to_fxml.html ! modules/graphics/src/main/docs/javafx/scene/doc-files/cssref.html Changeset: a09aab639ad0 Author: kcr Date: 2013-12-09 18:52 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/a09aab639ad0 RT-34522: Update javafxpackager man pages for JDK/FX 8 Contributed-by: Nancy Hildebrandt - modules/fxpackager/src/main/man/html/javafxpackager.1.html ! modules/fxpackager/src/main/man/man1/javafxpackager.1 Changeset: f1d3a11f6cc4 Author: John Yoon Date: 2013-12-09 19:00 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/f1d3a11f6cc4 [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview at 2x.png Changeset: 58f12825ecac Author: John Yoon Date: 2013-12-09 19:57 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/58f12825ecac [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/accordion/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/accordion/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/colorbutton/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/colorbutton/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/graphicbutton/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/graphicbutton/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/pillbutton/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/pillbutton/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/checkbox/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/checkbox/preview at 2x.png Changeset: 8f0a6f77ec8f Author: Alexander Kouznetsov Date: 2013-12-09 20:19 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/8f0a6f77ec8f Ensemble8: Fix for RT-34006 Simplify Ensemble8 categories ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdt + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdx + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fnm + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.frq + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.nrm + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.prx + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tii + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tis - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fdt - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fdx - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.fnm - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.frq - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.nrm - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.prx - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.tii - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_2.tis ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/listAll.txt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments.gen + apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_1 - apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_3 + apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/TimelineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timeline/TimelineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timelineevents/TimelineEventsApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timelineevents/TimelineEventsApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/FireworksApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/Particle.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/SanFranciscoFireworks.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bubble/BubbleChartApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bubble/chart/BubbleChartApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/Candle.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/CandleStickChart.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/CandleStickChartApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/CandleStickExtraValues.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/TooltipContent.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/Candle.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChart.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickExtraValues.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/TooltipContent.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/DailySales.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/GetDailySalesService.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/GetDailySalesTask.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/DailySales.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/GetDailySalesTask.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/TaskApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/accordion/AccordionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/checkbox/CheckBoxApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/htmleditor/HTMLEditorApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/splitpane/HiddenSplitPaneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/splitpane/hiddensplitpane/HiddenSplitPaneApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/TabPaneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/tabpane/TabPaneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/Person.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tableview/Person.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tableview/TableViewApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tablecellfactory/Person.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tablecellfactory/TableCellFactoryApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tableview/Person.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tableview/TableViewApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/bidi/BidiApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textflow/TextFlowApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/togglebutton/ToggleButtonApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/webview/WebViewApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/Authenticator.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/FXMLLoginDemoApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/LoginController.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/ProfileController.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/User.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Ball.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsPane.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsScreen.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Constants.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Ball.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Bat.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Bonus.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Brick.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/BrickBreakerApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Config.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Level.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/LevelData.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Splash.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Utils.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Calculator.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/CalculatorApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Key.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Util.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/colorfulcircles/ColorfulCirclesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Clock.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Digit.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/DigitalClockApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelf.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelfApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/PerspectiveImage.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/dropshadow/DropShadowApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/gaussianblur/GaussianBlurApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/innershadow/InnerShadowApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/reflection/ReflectionApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/sepiatone/SepiaToneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/gauge/SpeedGaugeApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imagecreation/ImageCreationApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageoperator/ImageOperationApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageproperties/ImagePropertiesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/color/ColorApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/radialgradient/RadialGradientApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Desk.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Piece.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/PuzzlePiecesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/arc/ArcApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/circle/CircleApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/cubiccurve/CubicCurveApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/ellipse/EllipseApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/line/LineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/path/PathApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polygon/PolygonApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polyline/PolylineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/quadcurve/QuadCurveApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/rectangle/RectangleApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Dial.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/DigitalClock.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchButton.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Watch.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/Ball.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/BallsPane.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/BallsScreen.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/BouncingBallsApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/Constants.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Ball.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Bat.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Bonus.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Brick.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/BrickBreakerApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Config.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Level.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/LevelData.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Splash.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Utils.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/Calculator.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/CalculatorApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/Key.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/Util.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/canvas/FireworksApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/canvas/Particle.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/canvas/SanFranciscoFireworks.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/colorfulcircles/ColorfulCirclesApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/digitalclock/Clock.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/digitalclock/Digit.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/digitalclock/DigitalClockApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/displayshelf/DisplayShelf.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/displayshelf/DisplayShelfApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/displayshelf/PerspectiveImage.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/dropshadow/DropShadowApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/gaussianblur/GaussianBlurApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/innershadow/InnerShadowApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/reflection/ReflectionApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/sepiatone/SepiaToneApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/gauge/SpeedGaugeApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/images/imagecreation/ImageCreationApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/images/imageoperator/ImageOperationApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/images/imageproperties/ImagePropertiesApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/paints/color/ColorApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/paints/lineargradient/LinearGradientApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/paints/radialgradient/RadialGradientApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/puzzle/Desk.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/puzzle/Piece.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/puzzle/PuzzlePiecesApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/arc/ArcApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/circle/CircleApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/cubiccurve/CubicCurveApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/ellipse/EllipseApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/line/LineApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/path/PathApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/polygon/PolygonApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/polyline/PolylineApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/quadcurve/QuadCurveApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/rectangle/RectangleApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/Dial.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/DigitalClock.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/StopWatchApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/StopWatchButton.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/Watch.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/stringbinding/StringBindingApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/changelistener/ChangeListenerApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/service/DailySales.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/service/GetDailySalesService.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/service/GetDailySalesTask.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/service/ServiceApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/task/DailySales.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/task/GetDailySalesTask.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/task/TaskApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/Authenticator.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/FXMLLoginDemoApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/LoginController.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/ProfileController.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/User.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/observablelist/ObservableListApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/stringbinding/StringBindingApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/ProcessListener.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SampleTableModel.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SwingInterop.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SwingInteropApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SwingInteropService.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SwingInteropTask.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/borderpane/BorderPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/flowpane/FlowPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/tilepane/TilePaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/audioclip/AudioClipApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/advancedstage/AdvancedStageApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/customnode/CustomNodeApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/customnode/MyNode.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/CustomNodeApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/MyNode.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/nodeproperties/NodePropertiesApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/nodeproperties/NodePropertiesApp.java + apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/StageApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/advancedstage/AdvancedStageApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/stage/StageApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/ProcessListener.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SampleTableModel.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInterop.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropService.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropTask.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/text/bidi/BidiApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/text/textflow/TextFlowApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/webview/WebViewApp.java + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timelineevents/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timelineevents/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/candlestick/CandleStickChart.css + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/candlestick/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/candlestick/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/CandleStickChart.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/htmleditor/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/htmleditor/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/HiddenSplitPane.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/HiddenSplitPane.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tab_16.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/tab_16.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tablecellfactory/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tablecellfactory/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tableview/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tableview/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tablecellfactory/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tablecellfactory/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tableview/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tableview/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/bidi/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/bidi/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textflow/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textflow/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/webview/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/webview/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Login.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Login.fxml - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Profile.fxml - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/bouncingballs/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/bouncingballs/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/brickbreaker/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/brickbreaker/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/calc/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/calc/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/colorfulcircles/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/colorfulcircles/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/digitalclock/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/digitalclock/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/DisplayShelf.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/dropshadow/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/dropshadow/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/gaussianblur/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/gaussianblur/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/innershadow/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/innershadow/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/reflection/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/reflection/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/sepiatone/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/sepiatone/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/gauge/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/gauge/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imagecreation/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imagecreation/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageoperator/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageoperator/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageproperties/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageproperties/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/color/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/color/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/lineargradient/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/lineargradient/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/radialgradient/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/radialgradient/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/puzzle/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/puzzle/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/arc/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/arc/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/circle/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/circle/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/cubiccurve/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/cubiccurve/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/ellipse/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/ellipse/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/line/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/line/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/path/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/path/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polygon/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polygon/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polyline/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polyline/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/quadcurve/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/quadcurve/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/rectangle/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/rectangle/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/stopwatch/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/stopwatch/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/bouncingballs/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/bouncingballs/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/brickbreaker/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/brickbreaker/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/calc/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/calc/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/canvas/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/canvas/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/colorfulcircles/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/colorfulcircles/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/digitalclock/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/digitalclock/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/displayshelf/DisplayShelf.css + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/displayshelf/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/displayshelf/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/dropshadow/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/dropshadow/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/gaussianblur/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/gaussianblur/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/innershadow/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/innershadow/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/reflection/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/reflection/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/sepiatone/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/effects/sepiatone/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/gauge/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/gauge/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/images/imagecreation/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/images/imagecreation/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/images/imageoperator/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/images/imageoperator/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/images/imageproperties/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/images/imageproperties/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/paints/color/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/paints/color/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/paints/lineargradient/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/paints/lineargradient/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/paints/radialgradient/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/paints/radialgradient/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/puzzle/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/puzzle/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/arc/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/arc/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/circle/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/circle/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/cubiccurve/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/cubiccurve/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/ellipse/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/ellipse/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/line/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/line/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/path/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/path/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/polygon/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/polygon/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/polyline/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/polyline/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/quadcurve/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/quadcurve/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/rectangle/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/shapes/rectangle/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/stopwatch/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics2d/stopwatch/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/changelistener/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/changelistener/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/stringbinding/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/stringbinding/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/changelistener/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/changelistener/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/collections/observablelist/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/collections/observablelist/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/concurrency/service/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/concurrency/service/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/concurrency/task/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/concurrency/task/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/fxml/Login.css + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/fxml/Login.fxml + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/fxml/Profile.fxml + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/fxml/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/fxml/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/observablelist/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/observablelist/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/stringbinding/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/stringbinding/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/swing/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/swing/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/advancedstage/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/advancedstage/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/customnode/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/customnode/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/customnode/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/customnode/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/nodeproperties/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/nodeproperties/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/nodeproperties/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/nodeproperties/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/advancedstage/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/advancedstage/preview at 2x.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/stage/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/stage/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/swing/swinginterop/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/swing/swinginterop/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/bidi/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/bidi/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/textflow/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/textflow/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/htmleditor/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/htmleditor/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/webview/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/webview/preview at 2x.png Changeset: 0d24fac99293 Author: Alexander Kouznetsov Date: 2013-12-09 20:36 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/0d24fac99293 Ensemble8: Part #2 of fix for RT-34006 Simplify Ensemble8 categories ! apps/samples/Ensemble8/src/app/java/ensemble/SamplePopoverTreeList.java Changeset: 674968d9c3b6 Author: Alexander Kouznetsov Date: 2013-12-09 20:44 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/674968d9c3b6 Ensemble8: Fix for RT-34716 Ensemble8: xAxis label playground warning ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChartApp.java Changeset: 5fc3e61b4f21 Author: Alexander Kouznetsov Date: 2013-12-09 21:04 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/5fc3e61b4f21 Ensemble8: Fix for RT-34714 Ensemble8: WebView sample limits its size ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/webview/WebViewApp.java Changeset: 50ed24bf65b7 Author: Alexander Kouznetsov Date: 2013-12-09 21:13 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/50ed24bf65b7 Ensemble8: Fix for RT-34786 Ensemble8: Multi-touch sample has bad size ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchApp.java Changeset: 9bbe05e11f94 Author: Alexander Kouznetsov Date: 2013-12-09 21:17 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/9bbe05e11f94 Ensemble8: Fix for RT-33532 Ensemble8: alternative column and row fill visible options doesn't work ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/chart/AreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/stacked/StackedAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/chart/BarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/horizontal/HorizontalBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/image/ImageBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/stacked/StackedBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bubble/BubbleChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/CandleStickChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/category/CategoryLineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/chart/LineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/chart/ScatterChartApp.java Changeset: 6dfa55f03e62 Author: Yves Joan Date: 2013-12-10 08:36 +0100 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/6dfa55f03e62 Sync up SceneBuilder changes + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/CssPanelDelegate.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindowController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderApp.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderTest.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/AboutWindowController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp.properties + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanel.css ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanel.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanelController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBar.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBarController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBarController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanelController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Preferences.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordDocument.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordGlobal.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesWindowController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/BackgroundColor.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/BackgroundColorDialogController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBarController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorPlatform.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/DragController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/AbstractDragSource.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/DocumentDragSource.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/ExternalDragSource.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/LibraryDragSource.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/ContainerXYDropTarget.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/GridPaneDropTarget.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/SceneBuilderKit.properties ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DeleteObjectSelectionJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DuplicateSelectionJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/PasteJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/GridSnapshot.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/GridSnapshotItem.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertColumnConstraintsJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertColumnJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/MoveCellContentJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/MoveColumnContentJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/CompositeJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/AbstractDecoration.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanel.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/HudWindow.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/GridPaneDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneMosaic.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractCurveHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractNodeHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TabHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TableColumnHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TreeTableColumnHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/NodePring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/TabPring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/TableColumnPring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/TreeTableColumnPring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/ImageViewResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/rudder/ResizeRudder.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/HBoxTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/NodeTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/TabTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/TableColumnTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/TreeTableColumnTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/VBoxTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/SelectAndMoveGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/MovingGuideRenderer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/ResizingGuideRenderer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/EditModeController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/BoundsUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/LineEquation.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/Picker.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/RegionRectangle.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssContentMaker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanel.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/AbstractHierarchyPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeCell.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/InspectorPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AnchorPaneConstraintsEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AutoSuggestEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BooleanEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BoundedDoubleEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ControllerClassEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/CursorEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EnumEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/GenericEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/I18nStringEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ImageEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ImageEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/InsetsEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/PropertyEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/RotateEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StringAutoSuggestEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleClassEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StylesheetEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PaintPopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportDialog.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportDialog.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanel.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractFxmlPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/search/Search.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/ObjectSelectionGroup.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/Selection.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMObject.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/glossary/ControllerClass.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/BuiltinLibrary.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/util/JarExplorer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/Metadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ColumnConstraintsPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/DoublePropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/EnumerationPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/RowConstraintsPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/PaintPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/CssInternal.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/GridBounds.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPicker.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPicker.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPicker.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPickerController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/colorpicker/ColorPicker.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/colorpicker/ColorPicker.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/colorpicker/ColorPicker.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPicker.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPicker.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPicker.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/images/chequers.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/images/stop-indicator.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/rotator/RotatorControl.css + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/rotator/RotatorControl.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/rotator/RotatorControl.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/rotator/rotate-handle.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/slider/SliderControl.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/slider/SliderControl.java Changeset: 02682ee93895 Author: Alexander Kouznetsov Date: 2013-12-09 23:52 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/02682ee93895 Ensemble8: Fix for build failure. ! apps/samples/Ensemble8/build.xml Changeset: 3ef2879ea737 Author: Alexander Kouznetsov Date: 2013-12-10 02:59 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/3ef2879ea737 Ensemble8: Fix for RT-34641 Create 3D sample that demonstrates all the features of PhongMaterial + apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/sphere/Simple3DSphereApp.java + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/earth-d.jpg + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/earth-l.jpg + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/earth-n.jpg + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/earth-s.jpg + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/preview.png + apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/preview at 2x.png Changeset: 53fbe438d684 Author: Alexander Kouznetsov Date: 2013-12-10 03:01 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/53fbe438d684 Ensemble8: Fix for RT-34787 Ensemble8: Rebuild SamplesAll java and search index for Ensemble8 ! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdx ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.frq ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.nrm ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.prx ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tii ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tis ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/listAll.txt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_1 Changeset: cbc187e97bb8 Author: John Yoon Date: 2013-12-10 07:56 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/cbc187e97bb8 [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/choicebox/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/choicebox/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/colorpicker/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/colorpicker/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/datepicker/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/datepicker/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/htmleditor/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/htmleditor/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/hyperlink/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/hyperlink/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/horizontallistview/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/horizontallistview/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/listviewcellfactory/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/listviewcellfactory/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/simplelistview/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/simplelistview/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/menu/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/menu/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/pagination/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/pagination/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressbar/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressbar/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressindicator/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressindicator/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/radiobutton/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/radiobutton/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/scrollbar/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/scrollbar/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tablecellfactory/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tablecellfactory/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tableview/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tableview/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/advancedlabel/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/advancedlabel/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/bidi/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/bidi/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/insettext/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/insettext/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/searchbox/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/searchbox/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/simplelabel/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/simplelabel/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textfield/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textfield/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textflow/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textflow/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textvalidator/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textvalidator/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/togglebutton/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/togglebutton/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/styledtoolbar/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/styledtoolbar/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/toolbar/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/toolbar/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treetableview/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treetableview/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treeview/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treeview/preview at 2x.png Changeset: 7624a41f79ce Author: John Yoon Date: 2013-12-10 08:21 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/7624a41f79ce [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cube/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cube/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cubesystem/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cubesystem/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/simple3dbox/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/simple3dbox/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/sphere/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/xylophone/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/xylophone/preview at 2x.png Changeset: 3852407693a0 Author: John Yoon Date: 2013-12-10 09:44 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/3852407693a0 [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/changelistener/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/changelistener/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/observablelist/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/observablelist/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/stringbinding/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/stringbinding/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/swing/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/swing/preview at 2x.png Changeset: 2a14ca6aedf3 Author: kcr Date: 2013-12-10 10:03 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/2a14ca6aedf3 RT-21569: Document that applications should avoid flooding FX with Platform.runLater calls Reviewed-by: anthony ! modules/graphics/src/main/java/javafx/application/Platform.java Changeset: 6a8c274547fa Author: John Yoon Date: 2013-12-10 10:26 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/6a8c274547fa [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/anchorpane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/anchorpane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/borderpane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/borderpane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/flowpane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/flowpane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/gridpane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/gridpane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/hbox/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/hbox/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/stackpane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/stackpane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/tilepane/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/tilepane/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/vbox/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/vbox/preview at 2x.png Changeset: 8a1e5a4a8a19 Author: John Yoon Date: 2013-12-10 10:49 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/8a1e5a4a8a19 [Samples Only][RT-33754] Ensemble Icons ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/advancedmedia/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/advancedmedia/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/alphamediaplayer/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/alphamediaplayer/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/audioclip/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/audioclip/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/overlaymediaplayer/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/overlaymediaplayer/preview at 2x.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/streamingmediaplayer/preview.png ! apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/streamingmediaplayer/preview at 2x.png Changeset: afa4eebb73b8 Author: Alexander Kouznetsov Date: 2013-12-10 11:13 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/afa4eebb73b8 Ensemble8: Fix for RT-33410 Ensemble8: BrickBreaker "jumps" sometimes ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/BrickBreakerApp.java Changeset: 8e8958c52331 Author: kcr Date: 2013-12-10 12:07 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/8e8958c52331 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdt ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdx ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fnm ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.frq ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.nrm ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.prx ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tii ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tis ! apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_1 - apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timeline/TimelineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timelineevents/TimelineEventsApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/FireworksApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/Particle.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/canvas/fireworks/SanFranciscoFireworks.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bubble/chart/BubbleChartApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/Candle.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChart.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickExtraValues.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/TooltipContent.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/DailySales.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/GetDailySalesService.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/GetDailySalesTask.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/DailySales.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/GetDailySalesTask.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/task/TaskApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/splitpane/hiddensplitpane/HiddenSplitPaneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/tabpane/TabPaneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/Person.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tableview/Person.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tableview/TableViewApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/Part.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/Authenticator.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/FXMLLoginDemoApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/LoginController.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/ProfileController.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/User.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Ball.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsPane.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsScreen.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Constants.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Ball.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Bat.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Bonus.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Brick.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/BrickBreakerApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Config.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Level.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/LevelData.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Splash.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Utils.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Calculator.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/CalculatorApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Key.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Util.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/colorfulcircles/ColorfulCirclesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Clock.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Digit.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/DigitalClockApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelf.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelfApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/PerspectiveImage.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/dropshadow/DropShadowApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/gaussianblur/GaussianBlurApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/innershadow/InnerShadowApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/reflection/ReflectionApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/effects/sepiatone/SepiaToneApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/gauge/SpeedGaugeApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imagecreation/ImageCreationApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageoperator/ImageOperationApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageproperties/ImagePropertiesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/color/ColorApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/radialgradient/RadialGradientApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Desk.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Piece.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/PuzzlePiecesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/arc/ArcApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/circle/CircleApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/cubiccurve/CubicCurveApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/ellipse/EllipseApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/line/LineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/path/PathApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polygon/PolygonApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polyline/PolylineApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/quadcurve/QuadCurveApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/rectangle/RectangleApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Dial.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/DigitalClock.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchButton.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Watch.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/stringbinding/StringBindingApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/CustomNodeApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/MyNode.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/nodeproperties/NodePropertiesApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/advancedstage/AdvancedStageApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/stage/StageApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/ProcessListener.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SampleTableModel.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInterop.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropService.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropTask.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/text/bidi/BidiApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/text/textflow/TextFlowApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java - apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/webview/WebViewApp.java - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/CandleStickChart.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/HiddenSplitPane.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/tab_16.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tablecellfactory/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tablecellfactory/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tableview/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tableview/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Login.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Login.fxml - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/Profile.fxml - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/bouncingballs/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/bouncingballs/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/brickbreaker/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/brickbreaker/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/calc/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/calc/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/colorfulcircles/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/colorfulcircles/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/digitalclock/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/digitalclock/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/DisplayShelf.css - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/dropshadow/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/dropshadow/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/gaussianblur/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/gaussianblur/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/innershadow/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/innershadow/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/reflection/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/reflection/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/sepiatone/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/sepiatone/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/gauge/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/gauge/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imagecreation/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imagecreation/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageoperator/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageoperator/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageproperties/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageproperties/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/color/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/color/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/lineargradient/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/lineargradient/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/radialgradient/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/radialgradient/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/puzzle/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/puzzle/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/arc/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/arc/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/circle/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/circle/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/cubiccurve/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/cubiccurve/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/ellipse/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/ellipse/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/line/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/line/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/path/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/path/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polygon/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polygon/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polyline/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polyline/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/quadcurve/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/quadcurve/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/rectangle/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/rectangle/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/stopwatch/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/stopwatch/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/changelistener/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/changelistener/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/stringbinding/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/stringbinding/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/collections/observablelist/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/collections/observablelist/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/customnode/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/customnode/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/nodeproperties/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/nodeproperties/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/advancedstage/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/advancedstage/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/stage/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/stage/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/swing/swinginterop/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/swing/swinginterop/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/bidi/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/bidi/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/textflow/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/textflow/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/htmleditor/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/htmleditor/preview at 2x.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/webview/preview.png - apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/webview/preview at 2x.png ! build.properties - modules/fxpackager/src/main/man/html/javafxpackager.1.html Changeset: 35d622e670f1 Author: Chien Yang Date: 2013-12-10 12:43 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/35d622e670f1 [Doc only] RT-26385: Finish javadoc for FX 8 3D API Reviewed-by: kcr, vadim ! modules/graphics/src/main/java/javafx/scene/SubScene.java ! modules/graphics/src/main/java/javafx/scene/paint/PhongMaterial.java Changeset: c9a2279862ac Author: hudson Date: 2013-12-12 08:22 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/c9a2279862ac Added tag 8.0-b120 for changeset 35d622e670f1 ! .hgtags Changeset: 11513f640f48 Author: mv157916 Date: 2013-12-12 16:00 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/11513f640f48 RT-34877: Update the JDK 8 build number to b120 in rt/build.properties file in the JavaFX 8 Master forest. ! build.properties Changeset: 63a950c66105 Author: kcr Date: 2013-12-12 16:33 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/63a950c66105 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt ! modules/graphics/src/main/java/javafx/scene/Scene.java ! modules/graphics/src/main/java/javafx/scene/layout/GridPane.java From hang.vo at oracle.com Thu Dec 12 17:48:13 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Dec 2013 01:48:13 +0000 Subject: hg: openjfx/8u-dev/rt: Ensemble8: Fix for RT-34881 Modena app tries to load non-existing file Message-ID: <20131213014837.5DC5162C79@hg.openjdk.java.net> Changeset: 1fe2a517b2cc Author: Alexander Kouznetsov Date: 2013-12-12 17:44 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/1fe2a517b2cc Ensemble8: Fix for RT-34881 Modena app tries to load non-existing file ! apps/experiments/Modena/src/main/java/modena/SamplePageHelpers.java ! apps/experiments/Modena/src/main/java/modena/SamplePageTableHelper.java From hang.vo at oracle.com Fri Dec 13 01:48:16 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Dec 2013 09:48:16 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34740: [FXML loader] Cannot load a layout using fx:root with staticLoad=true and no call to setRoot Message-ID: <20131213094855.22F1662CB5@hg.openjdk.java.net> Changeset: e82095d1f3d8 Author: Martin Sladecek Date: 2013-12-13 10:39 +0100 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/e82095d1f3d8 RT-34740: [FXML loader] Cannot load a layout using fx:root with staticLoad=true and no call to setRoot Reviewed by: kcr ! modules/fxml/src/main/java/javafx/fxml/FXMLLoader.java From martin.sladecek at oracle.com Fri Dec 13 02:32:17 2013 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Fri, 13 Dec 2013 11:32:17 +0100 Subject: 8u review request: RT-34882, NullPointerException when chaining DropShadow Effect to Reflection Effect Message-ID: <52AAE231.5060201@oracle.com> Hi Jim, please review the following: https://javafx-jira.kenai.com/browse/RT-34882 webrev: http://cr.openjdk.java.net/~msladecek/rt-34882/webrev.00/ Thanks, -Martin From martin.sladecek at oracle.com Fri Dec 13 04:53:04 2013 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Fri, 13 Dec 2013 13:53:04 +0100 Subject: 8u post-commit review: RT-34849 : AnchorPane doesn't fully respect min size of it's children in certain cases Message-ID: <52AB0330.2020907@oracle.com> http://jfxsrc.us.oracle.com/javafx/8u/dev/rt/rev/1332ba0d7f6a Thanks, -Martin From kevin.rushforth at oracle.com Fri Dec 13 06:31:40 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 13 Dec 2013 06:31:40 -0800 Subject: 8u post-commit review: RT-34849 : AnchorPane doesn't fully respect min size of it's children in certain cases In-Reply-To: <52AB0330.2020907@oracle.com> References: <52AB0330.2020907@oracle.com> Message-ID: <52AB1A4C.1000206@oracle.com> Wrong URL. Here is the right one: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/1332ba0d7f6a Martin Sladecek wrote: > Thanks, > -Martin From hang.vo at oracle.com Fri Dec 13 04:48:05 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Dec 2013 12:48:05 +0000 Subject: hg: openjfx/8u-dev/rt: RT-34849 : AnchorPane doesn't fully respect min size of it's children in certain cases Message-ID: <20131213124905.849AA62CBC@hg.openjdk.java.net> Changeset: 1332ba0d7f6a Author: Martin Sladecek Date: 2013-12-13 13:43 +0100 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/1332ba0d7f6a RT-34849 : AnchorPane doesn't fully respect min size of it's children in certain cases ! modules/graphics/src/main/java/javafx/scene/layout/AnchorPane.java ! modules/graphics/src/test/java/javafx/scene/layout/AnchorPaneTest.java From vadim.pakhnushev at oracle.com Fri Dec 13 07:30:29 2013 From: vadim.pakhnushev at oracle.com (Vadim Pakhnushev) Date: Fri, 13 Dec 2013 19:30:29 +0400 Subject: [8u20] post-commit notification: RT-34820: Self Illumination map issues of PhongMaterial Message-ID: <52AB2815.4070707@oracle.com> Hello, https://javafx-jira.kenai.com/browse/RT-34820 http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/8a5c6817206d Thanks, Vadim From hang.vo at oracle.com Fri Dec 13 07:32:50 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Dec 2013 15:32:50 +0000 Subject: hg: openjfx/8u-dev/rt: RT-34820: Self Illumination map issues of PhongMaterial Message-ID: <20131213153331.D0ABB62CC2@hg.openjdk.java.net> Changeset: 8a5c6817206d Author: vadim Date: 2013-12-13 19:22 +0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/8a5c6817206d RT-34820: Self Illumination map issues of PhongMaterial Summary: Wrong shader was selected in case of zero lights. ! modules/graphics/src/main/native-prism-d3d/D3DPhongShader.cc From steve.x.northover at oracle.com Fri Dec 13 07:59:34 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Fri, 13 Dec 2013 10:59:34 -0500 Subject: [8u20] post-commit notification: RT-34820: Self Illumination map issues of PhongMaterial In-Reply-To: <52AB2815.4070707@oracle.com> References: <52AB2815.4070707@oracle.com> Message-ID: <52AB2EE6.5070309@oracle.com> Hi all, I gentle reminder. When others need to verify a bug, they need to know what code was run to test the fix. In the case of RT-34820 and many others, if you read the JIRA, you can find out pretty quickly. However it's nicer if there is a standard comment at the end of the JIRA so people can scan it quickly. Something like: Tested-with: Ensemble Unit Tests: none Standard templates in comments really help out a lot for manager guys when they need to scan a billion JIRA and try to grasp quickly what is going on. Here is the wiki entry that describes this (hidden at the bottom of the page) https://wiki.openjdk.java.net/display/OpenJFX/Code+Reviews Thanks, Steve On 2013-12-13 10:30 AM, Vadim Pakhnushev wrote: > Hello, > > https://javafx-jira.kenai.com/browse/RT-34820 > http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/8a5c6817206d > > Thanks, > Vadim From kevin.rushforth at oracle.com Fri Dec 13 08:17:51 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 13 Dec 2013 08:17:51 -0800 Subject: [8u20] post-commit notification: RT-34820: Self Illumination map issues of PhongMaterial In-Reply-To: <52AB2EE6.5070309@oracle.com> References: <52AB2815.4070707@oracle.com> <52AB2EE6.5070309@oracle.com> Message-ID: <52AB332F.7020106@oracle.com> Also, if "none" is the answer for "Unit test", then we should add a label added to indicate why there is no unit (regression) test. For example "noreg-hard" or "noreg-build". See the following: http://openjdk.java.net/guide/changePlanning.html#noreg In the case of this specific bug "noreg-trivial" seems like a reasonable answer. We didn't do this consistently for FX 8, but it will help in testing / verification if we all do this for FX 8u20 and forward. Better still, if a regression test is possible we should add one. Thanks. -- Kevin Stephen F Northover wrote: > Hi all, > > I gentle reminder. When others need to verify a bug, they need to > know what code was run to test the fix. In the case of RT-34820 and > many others, if you read the JIRA, you can find out pretty quickly. > However it's nicer if there is a standard comment at the end of the > JIRA so people can scan it quickly. Something like: > > Tested-with: Ensemble > Unit Tests: none > > Standard templates in comments really help out a lot for manager guys > when they need to scan a billion JIRA and try to grasp quickly what is > going on. > > Here is the wiki entry that describes this (hidden at the bottom of > the page) > > https://wiki.openjdk.java.net/display/OpenJFX/Code+Reviews > > Thanks, > Steve > > > On 2013-12-13 10:30 AM, Vadim Pakhnushev wrote: >> Hello, >> >> https://javafx-jira.kenai.com/browse/RT-34820 >> http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/8a5c6817206d >> >> Thanks, >> Vadim > From tomas.mikula at gmail.com Fri Dec 13 11:15:22 2013 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Fri, 13 Dec 2013 20:15:22 +0100 Subject: [ListView] `b.bind(a)` not behaviorally equivalent to `a.addListener(o -> b.set(a.get()))` Message-ID: I just came across a strange case when these two are not equivalent. Maybe that is no surprise to you, but it was to me. The case I stumbled upon most likely has to do with ListView internals. Substitute a := ListView.widthProperty() b := ListCell.prefWidthProperty() and the code that demonstrates the difference: public class Test extends Application { private static class MyCell extends ListCell { public MyCell(ListView lv) { setMaxWidth(Region.USE_PREF_SIZE); // !!! comment out exactly one of the following // !!! two lines to demonstrate the difference prefWidthProperty().bind(lv.widthProperty()); lv.widthProperty().addListener(o -> setPrefWidth(lv.getWidth())); } @Override protected void updateItem(String item, boolean empty) { super.updateItem(item, empty); setGraphic(empty ? null : new TextFlow(new Text(item))); } } @Override public void start(Stage stage) { ListView listView = new ListView<>(); listView.setCellFactory(lv -> new MyCell(lv)); listView.getItems().add("This is a very long line that needs to be wrapped"); StackPane stack = new StackPane(); stack.getChildren().add(listView); Scene scene = new Scene(stack, 200, 100); stage.setScene(scene); stage.show(); } public static void main(String[] args) { launch(args); } } When I run the "bind" version, the text shows up wrapped. When I run the "addListener" version, the text shows up in one long line. Do you think this is a bug in ListView, or is there a reasonable explanation? Just for the record, I consider the "wrapping" behavior to be the correct one. My *speculation* about the possible cause follows: The only case I could come up with when A) b.bind(a) and B) a.addListener(o -> b.set(a.get())) are effectively different is when both of these conditions hold: 1) there is an invalidation listener set on b that causes b to become valid (e.g. calls b.get()); and 2) a is invalidated twice in a row, but recomputes to the same value each time. Now the scenarios for A) and B) differ: Scenario A (b.bind(a)): - a is invalidated for the first time - b's invalidation listener is called for the first time - b is now valid - a is invalidated for the second time - b's invalidation listener is called for the *SECOND* time Scenario B (a.addListener(o -> b.set(a.get()))): - a is invalidated for the first time - b is set to a.get() = x and b's invalidation listener is called for the first time - b is now valid - a is invalidated for the second time - b is set to a.get() = x and b's invalidation listener is *NOT* called for the second time, because b's value did not change In scenario A, b's invalidation listener is called twice, while in scenario B just once. If "weird things" are happening in this invalidation listener, this can result in different behavior. Now, if b is ListCell.prefWidthProperty(), scenario A and scenario B cause it to be invalidated different number of times, which, my *speculation*, could yield different behavior. This is how far I got. Cheers, Tomas From tomas.mikula at gmail.com Fri Dec 13 11:17:21 2013 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Fri, 13 Dec 2013 20:17:21 +0100 Subject: [ListView] `b.bind(a)` not behaviorally equivalent to `a.addListener(o -> b.set(a.get()))` In-Reply-To: References: Message-ID: I guess my main question is: should I file a bug on ListView? Tomas On Fri, Dec 13, 2013 at 8:15 PM, Tomas Mikula wrote: > I just came across a strange case when these two are not equivalent. > Maybe that is no surprise to you, but it was to me. The case I > stumbled upon most likely has to do with ListView internals. > > Substitute > a := ListView.widthProperty() > b := ListCell.prefWidthProperty() > > and the code that demonstrates the difference: > > > public class Test extends Application { > > private static class MyCell extends ListCell { > public MyCell(ListView lv) { > setMaxWidth(Region.USE_PREF_SIZE); > > // !!! comment out exactly one of the following > // !!! two lines to demonstrate the difference > prefWidthProperty().bind(lv.widthProperty()); > lv.widthProperty().addListener(o -> setPrefWidth(lv.getWidth())); > } > > @Override > protected void updateItem(String item, boolean empty) { > super.updateItem(item, empty); > setGraphic(empty ? null : new TextFlow(new Text(item))); > } > } > > @Override > public void start(Stage stage) { > ListView listView = new ListView<>(); > listView.setCellFactory(lv -> new MyCell(lv)); > listView.getItems().add("This is a very long line that needs > to be wrapped"); > > StackPane stack = new StackPane(); > stack.getChildren().add(listView); > Scene scene = new Scene(stack, 200, 100); > stage.setScene(scene); > stage.show(); > } > > public static void main(String[] args) { > launch(args); > } > } > > > When I run the "bind" version, the text shows up wrapped. > When I run the "addListener" version, the text shows up in one long line. > > Do you think this is a bug in ListView, or is there a reasonable explanation? > > Just for the record, I consider the "wrapping" behavior to be the correct one. > > > My *speculation* about the possible cause follows: > > The only case I could come up with when > A) b.bind(a) > and > B) a.addListener(o -> b.set(a.get())) > are effectively different is when both of these conditions hold: > 1) there is an invalidation listener set on b that causes b to become > valid (e.g. calls b.get()); and > 2) a is invalidated twice in a row, but recomputes to the same value each time. > > Now the scenarios for A) and B) differ: > > Scenario A (b.bind(a)): > - a is invalidated for the first time > - b's invalidation listener is called for the first time > - b is now valid > - a is invalidated for the second time > - b's invalidation listener is called for the *SECOND* time > > Scenario B (a.addListener(o -> b.set(a.get()))): > - a is invalidated for the first time > - b is set to a.get() = x and b's invalidation listener is called for > the first time > - b is now valid > - a is invalidated for the second time > - b is set to a.get() = x and b's invalidation listener is *NOT* > called for the second time, because b's value did not change > > In scenario A, b's invalidation listener is called twice, while in > scenario B just once. If "weird things" are happening in this > invalidation listener, this can result in different behavior. > > Now, if b is ListCell.prefWidthProperty(), scenario A and scenario B > cause it to be invalidated different number of times, which, my > *speculation*, could yield different behavior. > This is how far I got. > > Cheers, > Tomas From steve.x.northover at oracle.com Fri Dec 13 11:50:29 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Fri, 13 Dec 2013 14:50:29 -0500 Subject: (In)Sanity Testing Mondays Message-ID: <52AB6505.300@oracle.com> Hello all, As discussed at the committer meetings earlier this week, starting next week we are going to try out "(In)Sanity Testing Mondays". The community is invited to join in. The goal here is to improve our overall quality substantially with a small investment. The testing is NOT intended to take a day, or even half a day - we are targeting 1 hour for testing each week. So clearly this won't be a deep-dive into each test that you run, it's more of a quick high-level sanity test. If there is a particular area you are concerned with, please feel free to spend more time there and less in other areas, but you do need to run each test that is assigned to you. On Monday morning, in your time zone, ensure that you have the latest build and start. We will be running Ensemble and Modena and other tests but anything is fair game. Committers will have various assignments and platforms but these are not set in stone until the end of time. You don't need to put together any type of formal report, but we encourage everyone to be online, reading email and available by IM while running the tests to discuss results real time as necessary. File JIRA for any new bugs you find and call it done! Be sure to check the One True Dashboard to see of your bug has been found already. https://javafx-jira.kenai.com/secure/Dashboard.jspa?selectPageId=11893 At the next committer meeting and on the list, we'll be discussing how things went and how we want to modify and improve the process going forward, so be prepared with your feedback. None of this is set in stone, so if it doesn't go well, don't despair - we intend to tweak this until it does work well. Cheers, and happy testing! Lisa, Kevin and Steve From hjohn at xs4all.nl Fri Dec 13 13:11:59 2013 From: hjohn at xs4all.nl (John Hendrikx) Date: Fri, 13 Dec 2013 22:11:59 +0100 Subject: Dead horse, Bindings spam when something is null Message-ID: <52AB781F.9010803@xs4all.nl> Run the following code. It has a simple ObjectProperty that -can- be null when there is no Media inserted. I want to make a binding that displays this information to the user, but will display "-no-media-" if nothing is inserted. Is it really necessary to spam my logs with fake NPE's when insertedMedia happens to be null ? This seems like a perfectly valid use case, and one that has been working fine up until somewhere halfway through the JavaFX 8 development cycle (and it still works fine, but now it spams me). This is not the only spot I have this in my Application.... almost everything in my Application is dynamically loaded -- user interfaces are shown to the user before all data is present, which means I have lots and lots and lots of bindings that will be null for a short while as they get loaded. Typically this loading occurs on background threads in order not to choke the Event thread, nor force the user to look at some waiting screen while Images get decoded, HTTP requests complete and Database calls get done. For the life of me I cannot figure out what could be "wrong" with an ObjectProperty being null when evaluating a Binding. Either make it catastrophically fail, so this use case is disallowed as it is obviously somehow super (confusing|dangerous|morally wrong|politicaly incorrect) or remove this logging which looks deceptively like a real error, but is not. The only reasonable workaround I've found is to just replace the Bindings class with my own which is a bit more frugal with its logging. I know about when/then/otherwise... it becomes unreadable at several levels deep, not to mention being completely unnecessary. --John import javafx.application.Application; import javafx.beans.binding.Bindings; import javafx.beans.binding.StringBinding; import javafx.beans.property.ObjectProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; import javafx.stage.Stage; public class BindingTest extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage primaryStage) { ObjectProperty insertedMedia = new SimpleObjectProperty<>(); StringBinding x = new StringBinding() { StringBinding selectString = Bindings.selectString(insertedMedia, "title"); { bind(selectString); } @Override protected String computeValue() { return selectString.get() == null ? "-no-media-" : selectString.get(); } }; System.out.println("x = " + x.get()); insertedMedia.set(new Media()); System.out.println("x = " + x.get()); insertedMedia.get().titleProperty().set("B"); System.out.println("x = " + x.get()); insertedMedia.get().titleProperty().set("B2"); System.out.println("x = " + x.get() + " vs. " + insertedMedia.get().titleProperty().get()); } public static class Media { private final StringProperty title = new SimpleStringProperty(); public StringProperty titleProperty() { return title; } public String getTitle() { return title.get(); } public void setTitle(String title) { this.title.set(title); } } } From tomas.mikula at gmail.com Fri Dec 13 14:34:54 2013 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Fri, 13 Dec 2013 23:34:54 +0100 Subject: how to scroll ListView to make a specific item visible (only when not visible already) In-Reply-To: References: Message-ID: On Wed, Sep 25, 2013 at 10:04 PM, Tomas Mikula wrote: > Hi, > > does anyone know of a way to make a specific ListView item visible, > but don't scroll the ListView at all if the item is already in the > viewport? I will answer my question from months ago: I have to dig up the VirtualFlow from ListView and the method VirtualFlow.show(int index) does exactly what I wanted. Best, Tomas > > I am working on a code editor, displaying lines in a ListView. > Whenever the caret moves up/down, I want to bring the current line to > the viewport. > > Thanks, > Tomas > > P.S.: To determine if an item is visible, I tried tracking non-empty > cells by listening to ListCell#emptyProperty(), but a non-empty cell > is not necessarily visible. From steve.x.northover at oracle.com Fri Dec 13 15:30:53 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Fri, 13 Dec 2013 18:30:53 -0500 Subject: how to scroll ListView to make a specific item visible (only when not visible already) In-Reply-To: References: Message-ID: <52AB98AD.9010907@oracle.com> Thank for coming back and answering. Steve On 2013-12-13 5:34 PM, Tomas Mikula wrote: > On Wed, Sep 25, 2013 at 10:04 PM, Tomas Mikula wrote: >> Hi, >> >> does anyone know of a way to make a specific ListView item visible, >> but don't scroll the ListView at all if the item is already in the >> viewport? > I will answer my question from months ago: > > I have to dig up the VirtualFlow from ListView and the method > VirtualFlow.show(int index) > does exactly what I wanted. > > Best, > Tomas > >> I am working on a code editor, displaying lines in a ListView. >> Whenever the caret moves up/down, I want to bring the current line to >> the viewport. >> >> Thanks, >> Tomas >> >> P.S.: To determine if an item is visible, I tried tracking non-empty >> cells by listening to ListCell#emptyProperty(), but a non-empty cell >> is not necessarily visible. From jgodino at yahoo.com Fri Dec 13 16:12:56 2013 From: jgodino at yahoo.com (Francisco Javier Godino) Date: Fri, 13 Dec 2013 16:12:56 -0800 (PST) Subject: Javafxpackager build error on Win7 64 Message-ID: <1386979976.23229.YahooMailNeo@web121701.mail.ne1.yahoo.com> Hello: I ran the build process "gradle sdk" and I'm receiving the following error: LNK1112 module machine type X86 conflicts with target machine type x64 Part of the log: Compiling native files: [] Starting process 'command 'C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Bin/RC.Exe''. Working directory: C:\Desarrollos\javafxopen\rt\modules\fxpackager Command: C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Bin/RC.Exe /nologo /l 0x409 /r /dJFX_DVERSION=8 /dJFX_VERSION=8 /foC:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.res src/main/native/javafxpackager/win/javafxpackager.rc Successfully started process 'command 'C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Bin/RC.Exe'' Process 'command 'C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Bin/RC.Exe'' finished with exit value 0 (state: SUCCEEDED) Starting process 'command 'C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/BIN/amd64/link.exe''. Working directory: C:\Desarrollos\javafxopen\rt\modules\fxpackager Command: C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/BIN/amd64/link.exe /machine:X86 /nologo /opt:REF /incremental:no /manifest kernel32.lib advapi32.lib /out:C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.exe C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.obj C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.res Successfully started process 'command 'C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/BIN/amd64/link.exe'' C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.obj : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86' Process 'command 'C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/BIN/amd64/link.exe'' finished with exit value 1112 (state: FAILED) :fxpackager:buildJavaFXPackager FAILED The line in build.gradle is: doLast { ? ? ? ? ? ? ? ? mkdir "$buildDir/javafxpackager" ? ? ? ? ? ? ? ? exec({ ? ? ? ? ? ? ? ? ? ? commandLine("$WIN.fxpackager.linker", "/nologo", "/opt:REF", "/incremental:no", "/manifest", "kernel32.lib", "advapi32.lib", ? ? ? ? ? ? ? ? ? ? ? ? ? ? "/out:$buildDir/native/javafxpackager/javafxpackager.exe", ? ? ? ? ? ? ? ? ? ? ? ? ? ? "$buildDir/native/javafxpackager/javafxpackager.obj", ? ? ? ? ? ? ? ? ? ? ? ? ? ? "$buildDir/native/javafxpackager/javafxpackager.res") ? ? ? ? ? ? ? ? ? ? environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT) ? ? ? ? ? ? ? ? }) ? ? ? ? ? ? } Do I need to change something? Thanks in advance!! Javier From kevin.rushforth at oracle.com Fri Dec 13 16:42:51 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 13 Dec 2013 16:42:51 -0800 Subject: Javafxpackager build error on Win7 64 In-Reply-To: <1386979976.23229.YahooMailNeo@web121701.mail.ne1.yahoo.com> References: <1386979976.23229.YahooMailNeo@web121701.mail.ne1.yahoo.com> Message-ID: <52ABA98B.1030909@oracle.com> I saw something similar to this when I had a newer version of Microsoft .net installed, but I can't remember if it was exactly the same error. -- Kevin Francisco Javier Godino wrote: > Hello: > > I ran the build process "gradle sdk" and I'm receiving the following error: > > LNK1112 module machine type X86 conflicts with target machine type x64 > > Part of the log: > > Compiling native files: [] > Starting process 'command 'C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Bin/RC.Exe''. Working directory: C:\Desarrollos\javafxopen\rt\modules\fxpackager Command: C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Bin/RC.Exe /nologo /l 0x409 /r /dJFX_DVERSION=8 /dJFX_VERSION=8 /foC:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.res src/main/native/javafxpackager/win/javafxpackager.rc > Successfully started process 'command 'C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Bin/RC.Exe'' > Process 'command 'C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Bin/RC.Exe'' finished with exit value 0 (state: SUCCEEDED) > Starting process 'command 'C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/BIN/amd64/link.exe''. Working directory: C:\Desarrollos\javafxopen\rt\modules\fxpackager Command: C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/BIN/amd64/link.exe /machine:X86 /nologo /opt:REF /incremental:no /manifest kernel32.lib advapi32.lib /out:C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.exe C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.obj C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.res > Successfully started process 'command 'C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/BIN/amd64/link.exe'' > C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.obj : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86' > Process 'command 'C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/BIN/amd64/link.exe'' finished with exit value 1112 (state: FAILED) > :fxpackager:buildJavaFXPackager FAILED > > The line in build.gradle is: > > > > doLast { > mkdir "$buildDir/javafxpackager" > exec({ > commandLine("$WIN.fxpackager.linker", "/nologo", "/opt:REF", "/incremental:no", "/manifest", "kernel32.lib", "advapi32.lib", > "/out:$buildDir/native/javafxpackager/javafxpackager.exe", > "$buildDir/native/javafxpackager/javafxpackager.obj", > "$buildDir/native/javafxpackager/javafxpackager.res") > environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT) > }) > } > > Do I need to change something? > > Thanks in advance!! > > Javier > From vadim.pakhnushev at oracle.com Sat Dec 14 02:07:48 2013 From: vadim.pakhnushev at oracle.com (Vadim Pakhnushev) Date: Sat, 14 Dec 2013 14:07:48 +0400 Subject: Javafxpackager build error on Win7 64 In-Reply-To: <1386979976.23229.YahooMailNeo@web121701.mail.ne1.yahoo.com> References: <1386979976.23229.YahooMailNeo@web121701.mail.ne1.yahoo.com> Message-ID: <52AC2DF4.4010402@oracle.com> Francisco, It seems that somehow /machine:X86 got added to the command line. Please make sure that your environment is consistent, that is you have JAVA_HOME and PATH set to x64 JDK. Then try to gradle clean sdk. Hope this helps, Vadim On 14.12.2013 4:12, Francisco Javier Godino wrote: > Hello: > > I ran the build process "gradle sdk" and I'm receiving the following error: > > LNK1112 module machine type X86 conflicts with target machine type x64 > > Part of the log: > > Compiling native files: [] > Starting process 'command 'C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Bin/RC.Exe''. Working directory: C:\Desarrollos\javafxopen\rt\modules\fxpackager Command: C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Bin/RC.Exe /nologo /l 0x409 /r /dJFX_DVERSION=8 /dJFX_VERSION=8 /foC:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.res src/main/native/javafxpackager/win/javafxpackager.rc > Successfully started process 'command 'C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Bin/RC.Exe'' > Process 'command 'C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Bin/RC.Exe'' finished with exit value 0 (state: SUCCEEDED) > Starting process 'command 'C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/BIN/amd64/link.exe''. Working directory: C:\Desarrollos\javafxopen\rt\modules\fxpackager Command: C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/BIN/amd64/link.exe /machine:X86 /nologo /opt:REF /incremental:no /manifest kernel32.lib advapi32.lib /out:C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.exe C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.obj C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.res > Successfully started process 'command 'C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/BIN/amd64/link.exe'' > C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.obj : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86' > Process 'command 'C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/BIN/amd64/link.exe'' finished with exit value 1112 (state: FAILED) > :fxpackager:buildJavaFXPackager FAILED > > The line in build.gradle is: > > > > doLast { > mkdir "$buildDir/javafxpackager" > exec({ > commandLine("$WIN.fxpackager.linker", "/nologo", "/opt:REF", "/incremental:no", "/manifest", "kernel32.lib", "advapi32.lib", > "/out:$buildDir/native/javafxpackager/javafxpackager.exe", > "$buildDir/native/javafxpackager/javafxpackager.obj", > "$buildDir/native/javafxpackager/javafxpackager.res") > environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT) > }) > } > > Do I need to change something? > > Thanks in advance!! > > Javier From hang.vo at oracle.com Sat Dec 14 10:20:08 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sat, 14 Dec 2013 18:20:08 +0000 Subject: hg: openjfx/8/graphics/rt: 3 new changesets Message-ID: <20131214182259.206B062CEC@hg.openjdk.java.net> Changeset: c9a2279862ac Author: hudson Date: 2013-12-12 08:22 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/c9a2279862ac Added tag 8.0-b120 for changeset 35d622e670f1 ! .hgtags Changeset: 11513f640f48 Author: mv157916 Date: 2013-12-12 16:00 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/11513f640f48 RT-34877: Update the JDK 8 build number to b120 in rt/build.properties file in the JavaFX 8 Master forest. ! build.properties Changeset: 26cb937df4a7 Author: kcr Date: 2013-12-14 10:08 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/26cb937df4a7 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt From jgodino at yahoo.com Sat Dec 14 12:25:32 2013 From: jgodino at yahoo.com (Francisco Javier Godino) Date: Sat, 14 Dec 2013 12:25:32 -0800 (PST) Subject: A lot WARING with CSS Message-ID: <1387052732.57894.YahooMailNeo@web121703.mail.ne1.yahoo.com> I have an application running perfectly with JAVAFX 2. I trying to migrate this application to OpenJFX 8. When I run the program, there is a lot of warning like: Executing C:\Desarrollos\NovoviaSistema8\dist\run1862230921\NovoviaSistema8.jar using platform C:\Program Files\Java\jdk1.8.0/bin/java dic 14, 2013 5:11:24 PM javafx.scene.CssStyleHelper lookup WARNING: caught:? java.lang.ClassCastException: [Ljavafx.geometry.Insets; cannot be cast to [Ljavafx.scene.layout.CornerRadii; and the screen look is different. It's not considering my CSS as JAVAFX 2. Do I need to change somethings? Thanks From pedro.duquevieira at gmail.com Sat Dec 14 13:00:04 2013 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Sat, 14 Dec 2013 21:00:04 +0000 Subject: Converting from svg format to javafx css svg Message-ID: Hi, While working in JMetro (Metro like controls for javafx) I have the following process for creating svg graphics using javafx css: 1- I create the vector graphics in Adobe Illustrator 2- save the file in svg format 3- get the svg path notation from the svg file and use it with javafx -fx-shape css property The thing that I haven't still mastered is how does the size of the vector graphics in Illustrastor translate to the size I have to input in the -fx-padding css property. I know I have to enter half the value of width for the left and right and half the value of the height for the top and bottom but still that doesn't seem to work. It's still more of a process of trial and error for me. Thanks in advance. -- Pedro Duque Vieira From chien.yang at oracle.com Sat Dec 14 13:13:30 2013 From: chien.yang at oracle.com (Chien Yang) Date: Sat, 14 Dec 2013 13:13:30 -0800 Subject: Code Review Request For RT-28883: Rendering artifacts on NVIDIA GeForce 6600 Message-ID: <52ACC9FA.5050107@oracle.com> Hi Kevin and Vadim, Please review my proposed fix: https://javafx-jira.kenai.com/browse/RT-28883 Thanks, - Chien From han.solo at muenster.de Sat Dec 14 15:47:00 2013 From: han.solo at muenster.de (Gerrit Grunwald) Date: Sun, 15 Dec 2013 00:47:00 +0100 Subject: Converting from svg format to javafx css svg In-Reply-To: References: Message-ID: Hi Pedro, If I got you right you have scaling problems with the -fx-shape in css right? So if you use -fx-scale-shape: false; the svg path should be exactly the same size as the original path from Illustrator and if you would like to scale the shape to the size of the Region you just set it to true and set the size if the Region to the size you need the svg path. If your svg path has a certain aspect-ratio you should take care about it by resizing the Region correctly. That is the way I use it everywhere and it works really nicely. I usually don't use the padding for the svg path in css to resize it. Just my 0.02?... Cheers, Gerrit > Am 14.12.2013 um 22:00 schrieb Pedro Duque Vieira : > > Hi, > > While working in JMetro (Metro like controls for javafx) I have the > following process for creating svg graphics using javafx css: > 1- I create the vector graphics in Adobe Illustrator > 2- save the file in svg format > 3- get the svg path notation from the svg file and use it with javafx > -fx-shape css property > > The thing that I haven't still mastered is how does the size of the vector > graphics in Illustrastor translate to the size I have to input in the > -fx-padding css property. I know I have to enter half the value of width > for the left and right and half the value of the height for the top and > bottom but still that doesn't seem to work. It's still more of a process of > trial and error for me. > > Thanks in advance. > > > -- > Pedro Duque Vieira From tomas.mikula at gmail.com Sat Dec 14 20:54:54 2013 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Sun, 15 Dec 2013 05:54:54 +0100 Subject: [announce] InhiBeans: mitigate redundant recalculations Message-ID: Hello, I just published a small extension of javafx bindings and properties that can help you reduce redundant recalculations. They provide two additional methods: public void block(); public void release(); Call p.block() when you suspect your actions will lead to multiple invalidations of p, and call p.release() when you are done and want to deliver a single invalidation notification to p's observers. https://github.com/TomasMikula/InhiBeans Regards, Tomas From pedro.duquevieira at gmail.com Sat Dec 14 22:37:18 2013 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Sun, 15 Dec 2013 06:37:18 +0000 Subject: Converting from svg format to javafx css svg In-Reply-To: References: Message-ID: Hi Gerrit, Yeah, thanks putting -fx-scale-shape: false does make the svg shape the original size as seen in Illustrator. I'm still left with a doubt though, you say you resize the region to make the svg the way you want to, how do you do that? programmatically, through java? How about doing it through CSS? That's why I was using padding, but I don't want to disrupt the aspect ratio.. Thanks, best regards, On Sat, Dec 14, 2013 at 11:47 PM, Gerrit Grunwald wrote: > Hi Pedro, > > If I got you right you have scaling problems with the -fx-shape in css > right? So if you use > -fx-scale-shape: false; > the svg path should be exactly the same size as the original path from > Illustrator and if you would like to scale the shape to the size of the > Region you just set it to true and set the size if the Region to the size > you need the svg path. > If your svg path has a certain aspect-ratio you should take care about it > by resizing the Region correctly. That is the way I use it everywhere and > it works really nicely. I usually don't use the padding for the svg path in > css to resize it. > > Just my 0.02?... > > Cheers, > > Gerrit > > > Am 14.12.2013 um 22:00 schrieb Pedro Duque Vieira < > pedro.duquevieira at gmail.com>: > > > > Hi, > > > > While working in JMetro (Metro like controls for javafx) I have the > > following process for creating svg graphics using javafx css: > > 1- I create the vector graphics in Adobe Illustrator > > 2- save the file in svg format > > 3- get the svg path notation from the svg file and use it with javafx > > -fx-shape css property > > > > The thing that I haven't still mastered is how does the size of the > vector > > graphics in Illustrastor translate to the size I have to input in the > > -fx-padding css property. I know I have to enter half the value of width > > for the left and right and half the value of the height for the top and > > bottom but still that doesn't seem to work. It's still more of a process > of > > trial and error for me. > > > > Thanks in advance. > > > > > > -- > > Pedro Duque Vieira > -- Pedro Duque Vieira From han.solo at muenster.de Sat Dec 14 23:11:44 2013 From: han.solo at muenster.de (Gerrit Grunwald) Date: Sun, 15 Dec 2013 08:11:44 +0100 Subject: Converting from svg format to javafx css svg In-Reply-To: References: Message-ID: Hi Pedro, If you set -fx-scale-shape: true; you just have to know the aspect ratio of your svg path and can control the size of the Region in Java code (either in the skin or in the region class). To be honest I never tried to size a shape by using only padding in css. Cheers, Gerrit > Am 15.12.2013 um 07:37 schrieb Pedro Duque Vieira : > > Hi Gerrit, > > Yeah, thanks putting -fx-scale-shape: false does make the svg shape the original size as seen in Illustrator. > > I'm still left with a doubt though, you say you resize the region to make the svg the way you want to, how do you do that? programmatically, through java? How about doing it through CSS? That's why I was using padding, but I don't want to disrupt the aspect ratio.. > > Thanks, best regards, > > >> On Sat, Dec 14, 2013 at 11:47 PM, Gerrit Grunwald wrote: >> Hi Pedro, >> >> If I got you right you have scaling problems with the -fx-shape in css right? So if you use >> -fx-scale-shape: false; >> the svg path should be exactly the same size as the original path from Illustrator and if you would like to scale the shape to the size of the Region you just set it to true and set the size if the Region to the size you need the svg path. >> If your svg path has a certain aspect-ratio you should take care about it by resizing the Region correctly. That is the way I use it everywhere and it works really nicely. I usually don't use the padding for the svg path in css to resize it. >> >> Just my 0.02?... >> >> Cheers, >> >> Gerrit >> >> > Am 14.12.2013 um 22:00 schrieb Pedro Duque Vieira : >> > >> > Hi, >> > >> > While working in JMetro (Metro like controls for javafx) I have the >> > following process for creating svg graphics using javafx css: >> > 1- I create the vector graphics in Adobe Illustrator >> > 2- save the file in svg format >> > 3- get the svg path notation from the svg file and use it with javafx >> > -fx-shape css property >> > >> > The thing that I haven't still mastered is how does the size of the vector >> > graphics in Illustrastor translate to the size I have to input in the >> > -fx-padding css property. I know I have to enter half the value of width >> > for the left and right and half the value of the height for the top and >> > bottom but still that doesn't seem to work. It's still more of a process of >> > trial and error for me. >> > >> > Thanks in advance. >> > >> > >> > -- >> > Pedro Duque Vieira > > > > -- > Pedro Duque Vieira From pedro.duquevieira at gmail.com Sat Dec 14 23:17:04 2013 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Sun, 15 Dec 2013 07:17:04 +0000 Subject: Converting from svg format to javafx css svg In-Reply-To: References: Message-ID: I think it is an interesting use of CSS - sizing stuff.. I think its the only way that currently exists, i.e. using padding. P.s.: what happened to the width and height property that was discussed in this mailing list? On Dec 15, 2013 7:11 AM, "Gerrit Grunwald" wrote: > Hi Pedro, > > If you set -fx-scale-shape: true; you just have to know the aspect ratio > of your svg path and can control the size of the Region in Java code > (either in the skin or in the region class). > To be honest I never tried to size a shape by using only padding in css. > > Cheers, > > Gerrit > > Am 15.12.2013 um 07:37 schrieb Pedro Duque Vieira < > pedro.duquevieira at gmail.com>: > > Hi Gerrit, > > Yeah, thanks putting -fx-scale-shape: false does make the svg shape the > original size as seen in Illustrator. > > I'm still left with a doubt though, you say you resize the region to make > the svg the way you want to, how do you do that? programmatically, through > java? How about doing it through CSS? That's why I was using padding, but I > don't want to disrupt the aspect ratio.. > > Thanks, best regards, > > > On Sat, Dec 14, 2013 at 11:47 PM, Gerrit Grunwald wrote: > >> Hi Pedro, >> >> If I got you right you have scaling problems with the -fx-shape in css >> right? So if you use >> -fx-scale-shape: false; >> the svg path should be exactly the same size as the original path from >> Illustrator and if you would like to scale the shape to the size of the >> Region you just set it to true and set the size if the Region to the size >> you need the svg path. >> If your svg path has a certain aspect-ratio you should take care about it >> by resizing the Region correctly. That is the way I use it everywhere and >> it works really nicely. I usually don't use the padding for the svg path in >> css to resize it. >> >> Just my 0.02?... >> >> Cheers, >> >> Gerrit >> >> > Am 14.12.2013 um 22:00 schrieb Pedro Duque Vieira < >> pedro.duquevieira at gmail.com>: >> > >> > Hi, >> > >> > While working in JMetro (Metro like controls for javafx) I have the >> > following process for creating svg graphics using javafx css: >> > 1- I create the vector graphics in Adobe Illustrator >> > 2- save the file in svg format >> > 3- get the svg path notation from the svg file and use it with javafx >> > -fx-shape css property >> > >> > The thing that I haven't still mastered is how does the size of the >> vector >> > graphics in Illustrastor translate to the size I have to input in the >> > -fx-padding css property. I know I have to enter half the value of width >> > for the left and right and half the value of the height for the top and >> > bottom but still that doesn't seem to work. It's still more of a >> process of >> > trial and error for me. >> > >> > Thanks in advance. >> > >> > >> > -- >> > Pedro Duque Vieira >> > > > > -- > Pedro Duque Vieira > > From yennick.trevels at gmail.com Sun Dec 15 02:14:36 2013 From: yennick.trevels at gmail.com (Yennick Trevels) Date: Sun, 15 Dec 2013 11:14:36 +0100 Subject: A lot WARING with CSS In-Reply-To: <1387052732.57894.YahooMailNeo@web121703.mail.ne1.yahoo.com> References: <1387052732.57894.YahooMailNeo@web121703.mail.ne1.yahoo.com> Message-ID: <1f9c5dcd-a000-4d76-8078-b5b709d64b51@getmailbird.com> I encountered the same issue when trying to run my demo application on Android with the JavaFx Android port. All my background and border styles wouldn't show up when I had any *-radius styles defined, once I removed those it was working fine. Back then I thought this was only an issue on Android, because when I ran my app on the desktop it was working fine. Regards, Yennick On 14/12/2013 21:27:28, Francisco Javier Godino wrote: I have an application running perfectly with JAVAFX 2. I trying to migrate this application to OpenJFX 8. When I run the program, there is a lot of warning like: Executing C:\Desarrollos\NovoviaSistema8\dist\run1862230921\NovoviaSistema8.jar using platform C:\Program Files\Java\jdk1.8.0/bin/java dic 14, 2013 5:11:24 PM javafx.scene.CssStyleHelper lookup WARNING: caught:? java.lang.ClassCastException: [Ljavafx.geometry.Insets; cannot be cast to [Ljavafx.scene.layout.CornerRadii; and the screen look is different. It's not considering my CSS as JAVAFX 2. Do I need to change somethings? Thanks From tbee at tbee.org Sun Dec 15 02:23:52 2013 From: tbee at tbee.org (Tom Eugelink) Date: Sun, 15 Dec 2013 11:23:52 +0100 Subject: A lot WARING with CSS In-Reply-To: <1f9c5dcd-a000-4d76-8078-b5b709d64b51@getmailbird.com> References: <1387052732.57894.YahooMailNeo@web121703.mail.ne1.yahoo.com> <1f9c5dcd-a000-4d76-8078-b5b709d64b51@getmailbird.com> Message-ID: <52AD8338.2050607@tbee.org> I'm having loads of CSS warnings and one or two class cast exceptions running the JFXtras samples (have been reporting them for a long while already). But there they do not seem to have any visual impact. On 2013-12-15 11:14, Yennick Trevels wrote: > I encountered the same issue when trying to run my demo application on Android with the JavaFx Android port. > All my background and border styles wouldn't show up when I had any *-radius styles defined, once I removed those it was working fine. Back then I thought this was only an issue on Android, because when I ran my app on the desktop it was working fine. > > Regards, > Yennick > On 14/12/2013 21:27:28, Francisco Javier Godino wrote: > I have an application running perfectly with JAVAFX 2. > > I trying to migrate this application to OpenJFX 8. > > When I run the program, there is a lot of warning like: > > Executing C:\Desarrollos\NovoviaSistema8\dist\run1862230921\NovoviaSistema8.jar using platform C:\Program Files\Java\jdk1.8.0/bin/java > dic 14, 2013 5:11:24 PM javafx.scene.CssStyleHelper lookup > WARNING: caught: > java.lang.ClassCastException: [Ljavafx.geometry.Insets; cannot be cast to [Ljavafx.scene.layout.CornerRadii; > > and the screen look is different. It's not considering my CSS as JAVAFX 2. > > Do I need to change somethings? > > Thanks From webczat_200 at poczta.onet.pl Sun Dec 15 04:15:51 2013 From: webczat_200 at poczta.onet.pl (=?UTF-8?B?TWljaGHFgiBaZWdhbg==?=) Date: Sun, 15 Dec 2013 13:15:51 +0100 Subject: accessibility In-Reply-To: <52AD9919.5010706@poczta.onet.pl> References: <52AD9919.5010706@poczta.onet.pl> Message-ID: <52AD9D77.4050203@poczta.onet.pl> Hello, I have the following question: Does javafx support or plan to support accessibility? Another question is: if it is planned, then for what release? From assaf.yavnai at oracle.com Sun Dec 15 07:43:43 2013 From: assaf.yavnai at oracle.com (Assaf Yavnai) Date: Sun, 15 Dec 2013 17:43:43 +0200 Subject: discussion about touch events In-Reply-To: <52AA1CDE.8020503@oracle.com> References: <5280B6B9.2020605@oracle.com> <5280C770.5030600@oracle.com> <52814C8F.5080009@oracle.com> <52820BB6.8020602@oracle.com> <52820CD8.5060604@oracle.com> <5de9f371-cbee-487e-aff2-8a48e738114d@default> <52868D71.7080101@oracle.com> <528A11C9.8060602@oracle.com> <528B7701.8080204@oracle.com> <528CD598.2050307@oracle.com> <52AA1CDE.8020503@oracle.com> Message-ID: <52ADCE2F.1020606@oracle.com> Pavel, I will summarize my answers here, and not inline, I hope I will touch all your points. Let me start my answer with a different perspective. I think that it is correct to try and make mouse oriented application to work under touch screens, but its not the same as looking how UI should behave with touch screens. To explain myself, here an example tested on the iPhone. It doesn't mean that we need to do the same, but rather a pointer for checking how UI can behave under touch. In iPhone, when you press on a control, say send button, and you start dragging it away the button will remain 'armed' for quite large distance, even if you drag it on top of other controls. Only after a large distance is passed, the button is been deactivated and the operation is canceled, this is true a cross the platform. What I'm trying to say that we first need to define how we would like touch behave from UI/UX point of view and only then try to resolve the technical issues. After saying that its very important to note that JFX is cross platform and device specific as smartphones are for example. So I believe that: - mouse events should act as mouse events (regardless to touch) - touch events should act as touch events (regardless to mouse) and - mouse applications that run on a touch device should have 80/20 functionality working i.e usable but not perfect (again the way the application behaved and designed could not overlap in 100%, like small UI elements) - a question how we want touch application work on mouse platform (migrating embedded application to desktop for example) But UI should behave differently on touch platforms and mouse platform, or more accurately when events derived from touch device or a pointer device. And this (mainly) is currently not supported. I would like to suggest the following, hoping its feasible for the next release (8u20 or 9) 1) define UI/UX requirements for touch devices 2) check overlaps and unique behavior between mouse and touch behaviors 3) suggest 3 UI paths 1) mouse based UI 2) touch based UI 3) common behavior 4) discuss and define technical approach We might end up in a solution very similar to what we have now, or as you said, something completely new. The challenge is to come to it with 'empty minds' (that why it would be best if UX engineer will define it and not us) Further more, I think that solutions like "Glass generates a MOUSE_EXITED event any time all touches are released" should be implemented in the shared code in not platform specific point, for obvious reasons as this example provide. I apologize if it was hinted that the technical chalnges are not imoprtent or not challenging, I meant that it isn't the time to tackle them (top down approach vs bottom-up) I believe that we both want to to deliver a top notch platform and not one that works most of the time, the difference between us, I think, is that I focus on the differences and you on the commonalities. Maybe it would be best if we assemble a team to discuss those issues by phone instead of mails, what do you think? Hope its clearer. Assaf On 12/12/2013 10:30 PM, Pavel Safrata wrote: > Hi Assaf, > please see my comments inline. > > On 20.11.2013 16:30, Assaf Yavnai wrote: >> Pavel, >> >> I think that this is a very good example why touch events should be >> processed separately from mouse events. >> For example, if you will press a button with a touch it will remain >> in "hover" state although you released the finger from the screen. >> This is done because the "hover" state listen to the mouse >> coordinates, which is invalid for touch. >> Touch events doesn't have the concept of move, only drag. > > My initial feeling would be for the synthesized mouse events to behave > similarly to touch events - when touching the screen you want the > application respond certain way regardless of the events used. Do we > agree? > > Specifically, the hover problem can be solved quite easily. On iOS, > Glass generates a MOUSE_EXITED event any time all touches are > released, which clears the hover state of everything. I suppose all > platforms can do that (for synthesized mouse events). > >> >> As I mentioned before, from my point of view, the goal of this thread >> is to understand and map the difference and expected behavior between >> touch events and mouse events and have separate behavior depends of >> the type of events (Nodes, Controls and application level). One of >> them is the picking mechanism, the hover is another. I think the >> discussion of how to implement it is currently in lower priority, as >> it is only a technical detail. > > OK. Regarding picking, I believe the logical algorithm "pick each > pixel and find the touch-sensitive one closest to the center if > there's any" is the most natural behavior (just let me note that > implementation is not really a "technical detail" because right now I > don't see any way to implement it, so we might need to do something > different). I already covered hover state. Another major thing on my > mind is that scrollable content needs to become pannable (right now an > attempt to scroll a list by panning in FX results in selecting an > item, or even expanding a tree item, this is just not acceptable). > >> >> Also I think that the synthesize mouse event should only be used for >> making applications that doesn't listen to touch event usable (in >> most cases), but we can't expect them to work 1:1. (touch using a >> finger is a very different device then a mouse of stylus device). >> Touch applications supposed to be 'tailor made' for touch this >> include different UI layout, different UX and of course different >> logic (because the events and there meaning are different then mouse) >> Currently the is no reason for an application to listen to touch >> events, only if you need to support multi-touch, as the events are >> duplicated. > > The touch events were added exactly to support multi-touch. The "look" > is one thing - yes, you'd often use different skins. But I believe the > behavior of the events can be made such that a majority of application > can just use mouse events and their application will "behave" well > with single-touch out of the box, which can save a lot of development > effort on user's side. > >> >> As the mouse events are synthesize in native layer, I think its >> important to know the origin of the event. Maybe the handlers should >> check if the event is synthetic and treat it as touch event in this >> case. We can also double check it by checking if there is currently >> touch device connected, for example. > > I agree, I think many handlers will need to take the isSynthesized() > flag into account. > > Regards, > Pavel > >> >> Assaf >> >> >> On 11/19/2013 04:34 PM, Pavel Safrata wrote: >>> Hello Assaf, >>> there is more to it than just listeners. For instance, every node >>> has its "hover" and "pressed" states that are maintained based on >>> the picking results and used by CSS. So I believe we can't ignore >>> anything during picking. >>> >>> By the way, I suppose this fuzzy picking should happen also for >>> synthesized mouse events so that all the classic apps and standard >>> controls can benefit. If I'm right, we definitely can't restrict it >>> on touch-listening nodes. >>> >>> Pavel >>> >>> On 18.11.2013 14:10, Assaf Yavnai wrote: >>>> I have a question, >>>> >>>> Would it be possible to search only the nodes that have been >>>> registered for touch events notifications instead of the entire >>>> tree? (if it's not already been done) >>>> Of course if one choose to register the root node as the listener, >>>> we will have to go all over the nodes, but it seems as bad practice >>>> and I think its OK to have performance hit on that case >>>> >>>> Assaf >>>> On 11/17/2013 04:09 PM, Daniel Blaukopf wrote: >>>>> Hi Pavel, >>>>> >>>>> I think we we do use CSS to configure feel as well as look - and >>>>> this is feel, not look - but I also don?t feel strongly about >>>>> whether this needs to be in CSS. >>>>> >>>>> I like your idea of simply picking the closest touch sensitive >>>>> node that is within range. That puts the burden on the touch event >>>>> to describe what region it covers. On the touch screens we are >>>>> currently looking at, a region would be defined as an oval - a >>>>> combination of centre point, X diameter and Y diameter. However >>>>> the touch region can be any shape, so might need to be represented >>>>> as a Path. >>>>> Iterating over pixels just isn?t going to work though. If we have >>>>> a 300dpi display the touch region could be 150 pixels across and >>>>> have an area of nearly 18000 pixels. Instead we?d want a way to >>>>> ask a parent node, ?In your node hierarchy, which of your nodes? >>>>> borders is closest to this region?. So we?d need to come up with >>>>> an efficient algorithm to answer this question. We?d only ask this >>>>> question for nodes with extended capture zone. >>>>> >>>>> We could reasonably limit the algorithm to dealing with convex >>>>> shapes. Then we can consider an imaginary line L from the node >>>>> center point to the touch center point. The intersection of L with >>>>> the node perimeter is the closest point of contact. If this point >>>>> is also within the touch area then we have a potential match. We >>>>> iterate over all nearby nodes with extended capture zone in order >>>>> to find the best match. >>>>> >>>>> This will then be O(n) in both time and space for n nearby nodes, >>>>> given constant time to find the intersection of L with the node >>>>> perimeter. This assumption will be true for rectangular, oval and >>>>> rounded rectangle nodes. >>>>> >>>>> Thanks, >>>>> Daniel >>>>> >>>>> >>>>> On Nov 15, 2013, at 11:09 PM, Pavel Safrata >>>>> wrote: >>>>> >>>>>> Hello, >>>>>> let me start with a few comments. >>>>>> >>>>>> "changing behavior based on which nodes have listeners on them" - >>>>>> absolutely not. We have capturing, bubbling, hierarchical event >>>>>> types, so we can't decide which nodes listen (in the extreme >>>>>> case, scene can handle Event.ANY and perform actions on the >>>>>> target node based on the event type). >>>>>> >>>>>> "position does not fall in the boundaries of the node" - I don't >>>>>> think it will be very harmful. Of course it's possible for users >>>>>> to write handlers that will be affected, but I don't think it >>>>>> happens often, it seems quite hard to invent such handler. The >>>>>> delivery mechanism should be absolutely fine with it, we have >>>>>> other cases like that (for instance, dragging can be delivered to >>>>>> a node completely out of mouse position). Of course picking a 3D >>>>>> node in its capture zone would mean useless PickResult (texture >>>>>> coordinates etc.) >>>>>> >>>>>> CSS-accessible vs. property-only - I don't have a strong opinion. >>>>>> I agree it's rather "feel" than "look", on the other hand I think >>>>>> there are such things already (scrollbar policy for instance). >>>>>> >>>>>> >>>>>> Now I'll bring another problem to the concept. Take the situation >>>>>> from Daniel's original picture with two siblings competing for >>>>>> the capture zones: >>>>>> http://i.imgur.com/ELWamYp.png >>>>>> Put each of the red children to its own group - they are no >>>>>> longer siblings, but the competition should still work. >>>>>> >>>>>> The following may be a little wild, but anyway - have one of the >>>>>> siblings with capture zone and the other one without it, the one >>>>>> without it partly covering the one with it. Wouldn't it be great >>>>>> if the capture zone was present around the visible part of the >>>>>> node (reaching over the edge of the upper node)? I think it would >>>>>> be really intuitive (fuzzy picking of what you see), but it's >>>>>> getting pretty complicated. >>>>>> >>>>>> From now on, I'll call the node with enabled capture zone "touch >>>>>> sensitive". >>>>>> >>>>>> The only algorithm I can think of that would provide great >>>>>> results is: >>>>>> - Pick normally at the center. If the picked node is touch >>>>>> sensitive, return it. >>>>>> - Otherwise, run picking for each pixel in the touch area, find >>>>>> the closest one belonging to a touch sensitive node and return >>>>>> that node (if there is none, then of course return the node at >>>>>> the center). >>>>>> >>>>>> Obviously we can hardly do so many picking rounds. But it can be >>>>>> significantly optimized: >>>>>> - Perform the area picking in one pass, filling an array - >>>>>> representing pixels - by the nodes picked on them >>>>>> - Descend only when bounds intersect with the picking area >>>>>> - Don't look farther from the center than the already found best >>>>>> match >>>>>> - Don't look at pixels with already picked node >>>>>> - For many nodes (rectangular, circular, with pickOnBounds etc.), >>>>>> instead of testing containment many times, we can quickly tell >>>>>> the intersection with the picking area >>>>>> - Perhaps also checking each nth pixel would be sufficient >>>>>> >>>>>> This algorithm should be reasonably easy to code and very robust >>>>>> (not suffering from various node-arrangement corner-cases), but >>>>>> I'm still not sure about the performance (depends mostly on >>>>>> the capture zone size - 30-pixel zones may result in calling >>>>>> contains() nearly thousand times which might kill it). But >>>>>> perhaps (hopefully) it can be perfected. Right now I can't see >>>>>> any other algorithm that would work well and would result in more >>>>>> efficient implementation (the search for overlapping nodes and >>>>>> closest borders etc. is going to be pretty complicated as well, >>>>>> if it's even possible to make it work). >>>>>> >>>>>> What do you think? Any better ideas? >>>>>> >>>>>> Pavel >>>>>> >>>>>> >>>>>> On 13.11.2013 22:09, Daniel Blaukopf wrote: >>>>>>> Hi Seeon, >>>>>>> >>>>>>> Summarizing our face to face talk today: >>>>>>> >>>>>>> I see that the case described by Pavel is indeed a problem and >>>>>>> agree with you that not every node needs to be a participant in >>>>>>> the competition for which grabs touch input. However I?m not >>>>>>> keen on the idea of changing behavior based on which nodes have >>>>>>> listeners on them. CSS seems like the place to do this (as I >>>>>>> think Pavel suggested earlier). In Pavel?s case, either: >>>>>>> - the upper child node has the CSS tag saying ?enable extended >>>>>>> capture zone? and the lower child doesn?t: then the upper >>>>>>> child?s capture zone will extend over the lower child >>>>>>> - or both will have the CSS tag, in which case the upper >>>>>>> child?s capture zone would be competing with the lower child?s >>>>>>> capture zone. As in any other competition between capture zones >>>>>>> the nearest node should win. The effect would be the same as if >>>>>>> the regular matching rules were applied on the upper child. It >>>>>>> would also be the same as if only the lower child had an >>>>>>> extended capture zone. However, I?d consider this case to be bad >>>>>>> UI programming. >>>>>>> >>>>>>> We agreed that ?in a competition between capture zones, pick the >>>>>>> node whose border is nearest the touch point? was a reasonable >>>>>>> way to resolve things. >>>>>>> >>>>>>> Thanks, >>>>>>> Daniel >>>>>>> >>>>>>> On Nov 13, 2013, at 12:31 PM, Seeon Birger >>>>>>> wrote: >>>>>>> >>>>>>>> Hi Pavel, >>>>>>>> >>>>>>>> Your example of 'child over child' is an interesting case which >>>>>>>> raises some design aspects of the desired picking algorithm: >>>>>>>> 1. Which node to pick when one node has a 'strict >>>>>>>> containership' over the touch center and the other node only >>>>>>>> has a fuzzy containership (the position falls in the fuzzy area). >>>>>>>> 2. Accounting for z-order for extended capture zone area. >>>>>>>> 3. Accounting for parent-child relationship. >>>>>>>> >>>>>>>> Referring to your 'child over child' example: >>>>>>>> http://i.imgur.com/e92qEJA.jpg >>>>>>>> >>>>>>>> The conflict would arise were touch point center position falls >>>>>>>> in the capture zone area of child2 but also clearly falls in >>>>>>>> the strict bounds of child1. >>>>>>>> Generally, when two control nodes compete on same touch event >>>>>>>> (e.g. child1 & child2 in Daniel's diagram), it seems that we >>>>>>>> would like to give priority to "strict containership" over >>>>>>>> "fuzzy containership". >>>>>>>> But in your case it's probably not the desired behavior. >>>>>>>> >>>>>>>> Also note that in the general case there's almost always exists >>>>>>>> come container/background node that strictly contains the touch >>>>>>>> point, but it would probably be an ancestor of the child node, >>>>>>>> so the usual parent-child relationship order will give >>>>>>>> preference to the child. >>>>>>>> >>>>>>>> One way out it is to honor the usual z-order for the extended >>>>>>>> area of child2, so when a touch center hits the fuzzy area of >>>>>>>> child2, then child2 would be picked. >>>>>>>> >>>>>>>> But is not ideal for Daniel's example: >>>>>>>> http://i.imgur.com/ELWamYp.png >>>>>>>> >>>>>>>> where the 2 nodes don't strictly overlap, but their capture >>>>>>>> zones do. Preferring one child by z-order (which matches the >>>>>>>> order of children in the parent) is not natural here. And we >>>>>>>> might better choose the node which is "closer" >>>>>>>> To the touch point. >>>>>>>> >>>>>>>> So to summarize I suggest this rough picking algorithm: >>>>>>>> 1. Choose all uppermost nodes which are not transparent to >>>>>>>> mouse events and contain the touch point center either strictly >>>>>>>> or by their capture zone. >>>>>>>> 2. Remove all nodes that is strictly overlapped by another node >>>>>>>> and is below that node by z-order. >>>>>>>> 3. Out of those left choose the "closest" node. (the concept of >>>>>>>> "closet" should employ some calculation which might not be >>>>>>>> trivial in the general case). >>>>>>>> 4. Once a node has been picked, we follow the usual node chain >>>>>>>> list for event processing. >>>>>>>> >>>>>>>> Care must be taken so we not break the current model for event >>>>>>>> processing. For example, if a node is picked by its capture >>>>>>>> zone, it means that the position does not fall in the >>>>>>>> boundaries of the node, so existing event handling code that >>>>>>>> relies on that would break. So I think the capture zone feature >>>>>>>> should be selectively enabled for certain type of nodes such >>>>>>>> buttons or other classic controls. >>>>>>>> >>>>>>>> Regards, >>>>>>>> Seeon >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -----Original Message----- >>>>>>>> From: Pavel Safrata >>>>>>>> Sent: Tuesday, November 12, 2013 1:11 PM >>>>>>>> To: Daniel Blaukopf >>>>>>>> Cc: OpenJFX >>>>>>>> Subject: Re: discussion about touch events >>>>>>>> >>>>>>>> (Now my answer using external link) >>>>>>>> >>>>>>>> Hello Daniel, >>>>>>>> this is quite similar to my idea described earlier. The major >>>>>>>> difference is the "fair division of capture zones" among >>>>>>>> siblings. It's an interesting idea, let's explore it. What pops >>>>>>>> first is that children can also overlap. So I think it would >>>>>>>> behave like this (green capture zones >>>>>>>> omitted): >>>>>>>> >>>>>>>> Child in parent vs. Child over child: >>>>>>>> http://i.imgur.com/e92qEJA.jpg >>>>>>>> >>>>>>>> ..wouldn't it? From user's point of view this seems confusing, >>>>>>>> both cases look the same but behave differently. Note that in >>>>>>>> the case on the right, the parent may be still the same, >>>>>>>> developer only adds a fancy background as a new child and >>>>>>>> suddenly the red child can't be hit that easily. What do you >>>>>>>> think? Is it an issue? Or would it not behave this way? >>>>>>>> >>>>>>>> Regards, >>>>>>>> Pavel >>>>>>>> >>>>>>>> On 12.11.2013 12:06, Daniel Blaukopf wrote: >>>>>>>>> (My original message didn't get through to openjfx-dev because >>>>>>>>> I used >>>>>>>>> inline images. I've replaced those images with external links) >>>>>>>>> >>>>>>>>> On Nov 11, 2013, at 11:30 PM, Pavel Safrata >>>>>>>>> >>>>>>>> > wrote: >>>>>>>>> >>>>>>>>>> On 11.11.2013 17:49, Tomas Mikula wrote: >>>>>>>>>>> On Mon, Nov 11, 2013 at 1:28 PM, Philipp D?rfler >>>>>>>>>>> > wrote: >>>>>>>>>>>> I see the need to be aware of the area that is covered by >>>>>>>>>>>> fingers >>>>>>>>>>>> rather than just considering that area's center point. >>>>>>>>>>>> I'd guess that this adds a new layer of complexity, though. >>>>>>>>>>>> For >>>>>>>>>>>> instance: >>>>>>>>>>>> Say we have a button on some background and both the >>>>>>>>>>>> background and >>>>>>>>>>>> the button do have an onClick listener attached. If you tap >>>>>>>>>>>> the >>>>>>>>>>>> button in a way that the touched area's center point is >>>>>>>>>>>> outside of >>>>>>>>>>>> the buttons boundaries - what event will be fired? Will >>>>>>>>>>>> both the >>>>>>>>>>>> background and the button receive a click event? Or just >>>>>>>>>>>> either the >>>>>>>>>>>> background or the button exclusively? Will there be a new >>>>>>>>>>>> event >>>>>>>>>>>> type which gets fired in case of such area-based taps? >>>>>>>>>>>> >>>>>>>>>>>> My suggestion would therefore be to have an additional area >>>>>>>>>>>> tap >>>>>>>>>>>> event which gives precise information about diameter and >>>>>>>>>>>> center of >>>>>>>>>>>> the tap. Besides that there should be some kind of >>>>>>>>>>>> "priority" for >>>>>>>>>>>> choosing which node's onClick will be called. >>>>>>>>>>> What about picking the one that is closest to the center of >>>>>>>>>>> the touch? >>>>>>>>>>> >>>>>>>>>> There is always something directly on the center of the touch >>>>>>>>>> (possibly the scene background, but it can have event >>>>>>>>>> handlers too). >>>>>>>>>> That's what we pick right now. >>>>>>>>>> Pavel >>>>>>>>> What Seeon, Assaf and I discussed earlier was building some >>>>>>>>> fuzziness >>>>>>>>> into the node picker so that instead of each node capturing only >>>>>>>>> events directly on top of it: >>>>>>>>> >>>>>>>>> Non-fuzzy picker: http://i.imgur.com/uszql8V.png >>>>>>>>> >>>>>>>>> ..nodes at each level of the hierarchy would capture events >>>>>>>>> beyond >>>>>>>>> their borders as well: >>>>>>>>> >>>>>>>>> Fuzzy picker: http://i.imgur.com/ELWamYp.png >>>>>>>>> >>>>>>>>> In the above, "Parent" would capture touch events within a >>>>>>>>> certain >>>>>>>>> radius around it, as would its children "Child 1" and "Child >>>>>>>>> 2". Since >>>>>>>>> "Child 1" and "Child 2" are peers, they would have a sharp >>>>>>>>> division >>>>>>>>> between them, a watershed on either side of which events would >>>>>>>>> go to >>>>>>>>> one child node or the other. This would also apply if the peer >>>>>>>>> nodes >>>>>>>>> were further apart; they would divide the no-man's land >>>>>>>>> between them. >>>>>>>>> Of course this no-man's land would be part of "Parent" and >>>>>>>>> could could >>>>>>>>> be touch-sensitive - but we won't consider "Parent" as an >>>>>>>>> event target >>>>>>>>> until we have ruled out using one of its children's extended >>>>>>>>> capture >>>>>>>>> zones. >>>>>>>>> >>>>>>>>> The capture radius could either be a styleable property on the >>>>>>>>> nodes, >>>>>>>>> or could be determined by the X and Y size of a touch point as >>>>>>>>> reported by the touch screen. We'd still be reporting a touch >>>>>>>>> point, >>>>>>>>> not a touch area. The touch target would be, as now, a single >>>>>>>>> node. >>>>>>>>> >>>>>>>>> This would get us more reliable touch capture at leaf nodes of >>>>>>>>> the >>>>>>>>> node hierarchy at the expense of it being harder to tap the >>>>>>>>> background. This is likely to be a good trade-off. >>>>>>>>> >>>>>>>>> Daniel >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>>> Tomas >>>>>>>>>>> >>>>>>>>>>>> Maybe the draw order / order in the scene graph / z buffer >>>>>>>>>>>> value >>>>>>>>>>>> might be sufficient to model what would happen in the real, >>>>>>>>>>>> physical world. >>>>>>>>>>>> Am 11.11.2013 13:05 schrieb "Assaf Yavnai" >>>>>>>>>>>> >>>>>>>>>>> >: >>>>>>>>>>>> >>>>>>>>>>>>> The ascii sketch looked fine on my screen before I sent >>>>>>>>>>>>> the mail >>>>>>>>>>>>> :( I hope the idea is clear from the text (now in the >>>>>>>>>>>>> reply dialog >>>>>>>>>>>>> its also look good) >>>>>>>>>>>>> >>>>>>>>>>>>> Assaf >>>>>>>>>>>>> On 11/11/2013 12:51 PM, Assaf Yavnai wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi Guys, >>>>>>>>>>>>>> >>>>>>>>>>>>>> I hope that I'm right about this, but it seems that touch >>>>>>>>>>>>>> events >>>>>>>>>>>>>> in glass are translated (and reported) as a single point >>>>>>>>>>>>>> events >>>>>>>>>>>>>> (x & y) without an area, like pointer events. >>>>>>>>>>>>>> AFAIK, the controls response for touch events same as mouse >>>>>>>>>>>>>> events (using the same pickers) and as a result a button >>>>>>>>>>>>>> press, >>>>>>>>>>>>>> for example, will only triggered if the x & y of the >>>>>>>>>>>>>> touch event >>>>>>>>>>>>>> is within the control area. >>>>>>>>>>>>>> >>>>>>>>>>>>>> This means that small controls, or even quite large controls >>>>>>>>>>>>>> (like buttons with text) will often get missed because >>>>>>>>>>>>>> the 'strict' >>>>>>>>>>>>>> node picking, >>>>>>>>>>>>>> although from a UX point of view it is strange as the user >>>>>>>>>>>>>> clearly pressed on a node (the finger was clearly above >>>>>>>>>>>>>> it) but >>>>>>>>>>>>>> nothing happens... >>>>>>>>>>>>>> >>>>>>>>>>>>>> With current implementation its hard to use small >>>>>>>>>>>>>> features in >>>>>>>>>>>>>> controls, like scrollbars in lists, and it almost >>>>>>>>>>>>>> impossible to >>>>>>>>>>>>>> implement something like 'screen navigator' (the series >>>>>>>>>>>>>> of small >>>>>>>>>>>>>> dots in the bottom of a smart phones screen which allow >>>>>>>>>>>>>> you to >>>>>>>>>>>>>> jump directly to a 'far away' >>>>>>>>>>>>>> screen) >>>>>>>>>>>>>> >>>>>>>>>>>>>> To illustrate it consider the bellow low resolution >>>>>>>>>>>>>> sketch, where >>>>>>>>>>>>>> the "+" >>>>>>>>>>>>>> is the actual x,y reported, the ellipse is the finger >>>>>>>>>>>>>> touch area >>>>>>>>>>>>>> and the rectangle is the node. >>>>>>>>>>>>>> With current implementation this type of tap will not >>>>>>>>>>>>>> trigger the >>>>>>>>>>>>>> node handlers >>>>>>>>>>>>>> >>>>>>>>>>>>>> __ >>>>>>>>>>>>>> / \ >>>>>>>>>>>>>> / \ >>>>>>>>>>>>>> ___/ __+_ \___ in this scenario the 'button' >>>>>>>>>>>>>> will not get >>>>>>>>>>>>>> pressed >>>>>>>>>>>>>> | \ / | >>>>>>>>>>>>>> |___\ ___ / __ | >>>>>>>>>>>>>> \___/ >>>>>>>>>>>>>> >>>>>>>>>>>>>> If your smart phone support it, turn on the touch debugging >>>>>>>>>>>>>> options in settings and see that each point translate to >>>>>>>>>>>>>> a quite >>>>>>>>>>>>>> large circle and what ever fall in it, or reasonably >>>>>>>>>>>>>> close to it, >>>>>>>>>>>>>> get picked. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I want to start a discussion to understand if my >>>>>>>>>>>>>> perspective is >>>>>>>>>>>>>> accurate and to understand what can be done, if any, for the >>>>>>>>>>>>>> coming release or the next one. >>>>>>>>>>>>>> >>>>>>>>>>>>>> We might use recently opened RT-34136 >>>>>>>>>>>>>> >>>>>>>>>>>>> com/browse/RT-34136> for logging this, or open a new JIRA >>>>>>>>>>>>>> for it >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>> Assaf >>>> >>> >> > From swpalmer at gmail.com Sun Dec 15 09:39:37 2013 From: swpalmer at gmail.com (Scott Palmer) Date: Sun, 15 Dec 2013 12:39:37 -0500 Subject: [announce] InhiBeans: mitigate redundant recalculations In-Reply-To: References: Message-ID: Interesting idea. There is a case I have been curious about and wonder what the best practices are for it. Suppose you have a case when you are changing multiple different properties that will be used in a single calculation. You want to deal with a single change to all of them in one go. E.g. imagine you have an "area" property that is bound to both "width" and "height". You want to write code like: obj.setWidth(w); obj.setHeight(h); and have only ONE recalculation of the area property happen. Currently the way bindings work the area will be calculated twice. The intermediate calculation is really not a value that you ever want to observe. Are there helpers for this sort of situation? Are there guidelines in the JavaFX docs somewhere? Regards, Scott On Sat, Dec 14, 2013 at 11:54 PM, Tomas Mikula wrote: > Hello, > > I just published a small extension of javafx bindings and properties > that can help you reduce redundant recalculations. > > They provide two additional methods: > > public void block(); > public void release(); > > Call p.block() when you suspect your actions will lead to multiple > invalidations of p, and call p.release() when you are done and want to > deliver a single invalidation notification to p's observers. > > https://github.com/TomasMikula/InhiBeans > > Regards, > Tomas > From hjohn at xs4all.nl Sun Dec 15 11:30:27 2013 From: hjohn at xs4all.nl (John Hendrikx) Date: Sun, 15 Dec 2013 20:30:27 +0100 Subject: [announce] InhiBeans: mitigate redundant recalculations In-Reply-To: References: Message-ID: <52AE0353.9020204@xs4all.nl> Since you are only allowed to modify properties on the JavaFX thread (in most cases), I've been using Platform.runLater() to make sure I observe only complete changes. Basically I register an InvalidationListener on the properties that are relevant, and when one gets triggered I set a boolean and trigger a Runnable that will be run on the JavaFX thread later (and after the change completes). The Runnable checks the relevant values and acts on them, then resets the boolean. I use this mechanism for example when I'm observing Objects with many properties that need to be stored in a database. To make sure I only store consistent objects, I only observe the values of the properties when my own little piece of observer code runs on the JavaFX thread. Since nothing can modify the properties except on the JavaFX thread, this is almost like a form of transactions, ensuring that every change has completed before observing the results. --John On 15/12/2013 18:39, Scott Palmer wrote: > Interesting idea. > > There is a case I have been curious about and wonder what the best > practices are for it. Suppose you have a case when you are changing > multiple different properties that will be used in a single calculation. > You want to deal with a single change to all of them in one go. E.g. > imagine you have an "area" property that is bound to both "width" and > "height". You want to write code like: > > obj.setWidth(w); > obj.setHeight(h); > > and have only ONE recalculation of the area property happen. Currently the > way bindings work the area will be calculated twice. The intermediate > calculation is really not a value that you ever want to observe. > > Are there helpers for this sort of situation? Are there guidelines in the > JavaFX docs somewhere? > > Regards, > > Scott > > > On Sat, Dec 14, 2013 at 11:54 PM, Tomas Mikulawrote: > >> Hello, >> >> I just published a small extension of javafx bindings and properties >> that can help you reduce redundant recalculations. >> >> They provide two additional methods: >> >> public void block(); >> public void release(); >> >> Call p.block() when you suspect your actions will lead to multiple >> invalidations of p, and call p.release() when you are done and want to >> deliver a single invalidation notification to p's observers. >> >> https://github.com/TomasMikula/InhiBeans >> >> Regards, >> Tomas >> From swpalmer at gmail.com Sun Dec 15 11:55:53 2013 From: swpalmer at gmail.com (Scott Palmer) Date: Sun, 15 Dec 2013 14:55:53 -0500 Subject: [announce] InhiBeans: mitigate redundant recalculations In-Reply-To: <52AE0353.9020204@xs4all.nl> References: <52AE0353.9020204@xs4all.nl> Message-ID: Yes, that does the trick, but this basically means you can't use bindings for such things. I'm wondering if there might be an opportunity for another enhancement similar to the block() resume() that Tomas has implemented, but for receiving size of the notification mechanism. Effectively it would operate on a bound property and prevent the re-evaluation until the resume() is called. When resume is called the property binding would check if it was invalidated since it was blocked and do the appropriate recalculation. E.g. property.blockEvaluation(), property.resumeEvaluation(), only callable on a property that is bound. I haven't thought it through yet, so I'm not sure if it buys much. Scott On Sun, Dec 15, 2013 at 2:30 PM, John Hendrikx wrote: > Since you are only allowed to modify properties on the JavaFX thread (in > most cases), I've been using Platform.runLater() to make sure I observe > only complete changes. > > Basically I register an InvalidationListener on the properties that are > relevant, and when one gets triggered I set a boolean and trigger a > Runnable that > will be run on the JavaFX thread later (and after the change completes). > The Runnable checks the relevant values and acts on them, then resets the > boolean. > > I use this mechanism for example when I'm observing Objects with many > properties that need to be stored in a database. To make sure I only store > consistent objects, I only observe the values of the properties when my own > little piece of observer code runs on the JavaFX thread. Since nothing can > modify the properties except on the JavaFX thread, this is almost like a > form of transactions, ensuring that every change has completed before > observing the results. > > --John > > > On 15/12/2013 18:39, Scott Palmer wrote: > >> Interesting idea. >> >> There is a case I have been curious about and wonder what the best >> practices are for it. Suppose you have a case when you are changing >> multiple different properties that will be used in a single calculation. >> You want to deal with a single change to all of them in one go. E.g. >> imagine you have an "area" property that is bound to both "width" and >> "height". You want to write code like: >> >> obj.setWidth(w); >> obj.setHeight(h); >> >> and have only ONE recalculation of the area property happen. Currently >> the >> way bindings work the area will be calculated twice. The intermediate >> calculation is really not a value that you ever want to observe. >> >> Are there helpers for this sort of situation? Are there guidelines in the >> JavaFX docs somewhere? >> >> Regards, >> >> Scott >> >> >> On Sat, Dec 14, 2013 at 11:54 PM, Tomas Mikula >> wrote: >> >> Hello, >>> >>> I just published a small extension of javafx bindings and properties >>> that can help you reduce redundant recalculations. >>> >>> They provide two additional methods: >>> >>> public void block(); >>> public void release(); >>> >>> Call p.block() when you suspect your actions will lead to multiple >>> invalidations of p, and call p.release() when you are done and want to >>> deliver a single invalidation notification to p's observers. >>> >>> https://github.com/TomasMikula/InhiBeans >>> >>> Regards, >>> Tomas >>> >>> > From hang.vo at oracle.com Sun Dec 15 12:33:21 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sun, 15 Dec 2013 20:33:21 +0000 Subject: hg: openjfx/8u-dev/rt: RT-34564: PieChart labels are overlapped by control Message-ID: <20131215203502.0535662D01@hg.openjdk.java.net> Changeset: dd01cc258204 Author: jgiles Date: 2013-12-13 11:59 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/dd01cc258204 RT-34564: PieChart labels are overlapped by control ! modules/controls/src/main/java/javafx/scene/chart/PieChart.java From webczat_200 at poczta.onet.pl Sun Dec 15 12:42:43 2013 From: webczat_200 at poczta.onet.pl (=?UTF-8?B?TWljaGHFgiBaZWdhbg==?=) Date: Sun, 15 Dec 2013 21:42:43 +0100 Subject: Fwd: Re: accessibility In-Reply-To: <52ADD363.7090405@poczta.onet.pl> References: <52ADD363.7090405@poczta.onet.pl> Message-ID: <52AE1443.1030407@poczta.onet.pl> Resending because of wrong recipient: -- Tre?? oryginalnej wiadomo?ci -- Temat: Re: accessibility Data: Sun, 15 Dec 2013 17:05:55 +0100 Nadawca: Micha? Zegan Adresat: Joe McGlynn Unless my informations are outdated, I know that at this time java fx 8 does not have any accessibility or accessibility-related api, so it's the reason for the question W dniu 2013-12-15 16:05, Joe McGlynn pisze: > Hi Micha?, > > This is a top priority for us, look for more information here as plans > firm up. > > > > > > On Dec 15, 2013, at 4:15 AM, Micha? Zegan > wrote: > >> Hello, >> >> I have the following question: >> Does javafx support or plan to support accessibility? >> Another question is: if it is planned, then for what release? >> >> > From tomas.mikula at gmail.com Sun Dec 15 14:49:52 2013 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Sun, 15 Dec 2013 23:49:52 +0100 Subject: [announce] InhiBeans: mitigate redundant recalculations In-Reply-To: References: Message-ID: On Sun, Dec 15, 2013 at 6:39 PM, Scott Palmer wrote: > Interesting idea. > > There is a case I have been curious about and wonder what the best practices > are for it. Suppose you have a case when you are changing multiple > different properties that will be used in a single calculation. You want to > deal with a single change to all of them in one go. E.g. imagine you have > an "area" property that is bound to both "width" and "height". You want to > write code like: > > obj.setWidth(w); > obj.setHeight(h); > > and have only ONE recalculation of the area property happen. Currently the > way bindings work the area will be calculated twice. The intermediate > calculation is really not a value that you ever want to observe. Hi Scott, this is precisely the problem that I'm trying to address here. Now, the question is whether you have control over the implementation of obj. If yes, then it is the same case as the AND gate "motivational example" from InhiBeans page. You provide a method setSize(w, h) and use block()/release() to implement it in a way that causes only one change of the area property. If you cannot change the implementation of obj, what you can do is to bind an inhibeans.binding.DoubleBinding to the "area" value, call it relaxedArea, and listen to that one for all your purposes. Then you resize obj like this: relaxedArea.block(); obj.setWidth(); obj.setHeight(); relaxedArea.release(); Only one change of relaxedArea is emitted. Best, Tomas > > Are there helpers for this sort of situation? Are there guidelines in the > JavaFX docs somewhere? > > Regards, > > Scott > > > On Sat, Dec 14, 2013 at 11:54 PM, Tomas Mikula > wrote: >> >> Hello, >> >> I just published a small extension of javafx bindings and properties >> that can help you reduce redundant recalculations. >> >> They provide two additional methods: >> >> public void block(); >> public void release(); >> >> Call p.block() when you suspect your actions will lead to multiple >> invalidations of p, and call p.release() when you are done and want to >> deliver a single invalidation notification to p's observers. >> >> https://github.com/TomasMikula/InhiBeans >> >> Regards, >> Tomas > > From swpalmer at gmail.com Sun Dec 15 15:39:12 2013 From: swpalmer at gmail.com (Scott Palmer) Date: Sun, 15 Dec 2013 18:39:12 -0500 Subject: [announce] InhiBeans: mitigate redundant recalculations In-Reply-To: References: Message-ID: Good stuff! This is the sort of thing that might make a good contribution to extend the standard Bindings class. Scott On Sun, Dec 15, 2013 at 5:49 PM, Tomas Mikula wrote: > On Sun, Dec 15, 2013 at 6:39 PM, Scott Palmer wrote: > > Interesting idea. > > > > There is a case I have been curious about and wonder what the best > practices > > are for it. Suppose you have a case when you are changing multiple > > different properties that will be used in a single calculation. You > want to > > deal with a single change to all of them in one go. E.g. imagine you > have > > an "area" property that is bound to both "width" and "height". You want > to > > write code like: > > > > obj.setWidth(w); > > obj.setHeight(h); > > > > and have only ONE recalculation of the area property happen. Currently > the > > way bindings work the area will be calculated twice. The intermediate > > calculation is really not a value that you ever want to observe. > > Hi Scott, > > this is precisely the problem that I'm trying to address here. Now, > the question is whether you have control over the implementation of > obj. > > If yes, then it is the same case as the AND gate "motivational > example" from InhiBeans page. You provide a method setSize(w, h) and > use block()/release() to implement it in a way that causes only one > change of the area property. > > If you cannot change the implementation of obj, what you can do is to > bind an inhibeans.binding.DoubleBinding to the "area" value, call it > relaxedArea, and listen to that one for all your purposes. > Then you resize obj like this: > > relaxedArea.block(); > obj.setWidth(); > obj.setHeight(); > relaxedArea.release(); > > Only one change of relaxedArea is emitted. > > Best, > Tomas > > > > > Are there helpers for this sort of situation? Are there guidelines in > the > > JavaFX docs somewhere? > > > > Regards, > > > > Scott > > > > > > On Sat, Dec 14, 2013 at 11:54 PM, Tomas Mikula > > wrote: > >> > >> Hello, > >> > >> I just published a small extension of javafx bindings and properties > >> that can help you reduce redundant recalculations. > >> > >> They provide two additional methods: > >> > >> public void block(); > >> public void release(); > >> > >> Call p.block() when you suspect your actions will lead to multiple > >> invalidations of p, and call p.release() when you are done and want to > >> deliver a single invalidation notification to p's observers. > >> > >> https://github.com/TomasMikula/InhiBeans > >> > >> Regards, > >> Tomas > > > > > From david.grieve at oracle.com Sun Dec 15 16:06:13 2013 From: david.grieve at oracle.com (David Grieve) Date: Sun, 15 Dec 2013 19:06:13 -0500 Subject: A lot WARING with CSS In-Reply-To: <1387052732.57894.YahooMailNeo@web121703.mail.ne1.yahoo.com> References: <1387052732.57894.YahooMailNeo@web121703.mail.ne1.yahoo.com> Message-ID: <6CFE44AB-CBD5-45D0-BF66-944FA100947E@oracle.com> This is of concern to me as I have tried to maintain backward compatibility. It would be helpful if you would file a bug on this and include your .css file, if possible. On Dec 14, 2013, at 3:25 PM, Francisco Javier Godino wrote: > I have an application running perfectly with JAVAFX 2. > > I trying to migrate this application to OpenJFX 8. > > When I run the program, there is a lot of warning like: > > Executing C:\Desarrollos\NovoviaSistema8\dist\run1862230921\NovoviaSistema8.jar using platform C:\Program Files\Java\jdk1.8.0/bin/java > dic 14, 2013 5:11:24 PM javafx.scene.CssStyleHelper lookup > WARNING: caught: > java.lang.ClassCastException: [Ljavafx.geometry.Insets; cannot be cast to [Ljavafx.scene.layout.CornerRadii; > > and the screen look is different. It's not considering my CSS as JAVAFX 2. > > Do I need to change somethings? > > Thanks From tomas.mikula at gmail.com Sun Dec 15 16:20:03 2013 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Mon, 16 Dec 2013 01:20:03 +0100 Subject: [announce] InhiBeans: mitigate redundant recalculations In-Reply-To: <52AE0353.9020204@xs4all.nl> References: <52AE0353.9020204@xs4all.nl> Message-ID: On Sun, Dec 15, 2013 at 8:30 PM, John Hendrikx wrote: > Since you are only allowed to modify properties on the JavaFX thread (in > most cases), I've been using Platform.runLater() to make sure I observe only > complete changes. > > Basically I register an InvalidationListener on the properties that are > relevant, and when one gets triggered I set a boolean and trigger a Runnable > that > will be run on the JavaFX thread later (and after the change completes). > The Runnable checks the relevant values and acts on them, then resets the > boolean. Hi John, this approach works fine if the effects of the Runnable run later are not observable to the client code. In most cases though, it is reasonable to expect the following assertion to hold: obj.setWidth(w); obj.setHeight(h); assert obj.getArea() == w*h; Regards, Tomas > > I use this mechanism for example when I'm observing Objects with many > properties that need to be stored in a database. To make sure I only store > consistent objects, I only observe the values of the properties when my own > little piece of observer code runs on the JavaFX thread. Since nothing can > modify the properties except on the JavaFX thread, this is almost like a > form of transactions, ensuring that every change has completed before > observing the results. > > --John > > > On 15/12/2013 18:39, Scott Palmer wrote: >> >> Interesting idea. >> >> There is a case I have been curious about and wonder what the best >> practices are for it. Suppose you have a case when you are changing >> multiple different properties that will be used in a single calculation. >> You want to deal with a single change to all of them in one go. E.g. >> imagine you have an "area" property that is bound to both "width" and >> "height". You want to write code like: >> >> obj.setWidth(w); >> obj.setHeight(h); >> >> and have only ONE recalculation of the area property happen. Currently >> the >> way bindings work the area will be calculated twice. The intermediate >> calculation is really not a value that you ever want to observe. >> >> Are there helpers for this sort of situation? Are there guidelines in the >> JavaFX docs somewhere? >> >> Regards, >> >> Scott >> >> >> On Sat, Dec 14, 2013 at 11:54 PM, Tomas >> Mikulawrote: >> >>> Hello, >>> >>> I just published a small extension of javafx bindings and properties >>> that can help you reduce redundant recalculations. >>> >>> They provide two additional methods: >>> >>> public void block(); >>> public void release(); >>> >>> Call p.block() when you suspect your actions will lead to multiple >>> invalidations of p, and call p.release() when you are done and want to >>> deliver a single invalidation notification to p's observers. >>> >>> https://github.com/TomasMikula/InhiBeans >>> >>> Regards, >>> Tomas >>> > From tomas.mikula at gmail.com Sun Dec 15 16:47:56 2013 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Mon, 16 Dec 2013 01:47:56 +0100 Subject: Fwd: [announce] InhiBeans: mitigate redundant recalculations In-Reply-To: References: Message-ID: On Mon, Dec 16, 2013 at 1:07 AM, Scott Palmer wrote: > Interesting, no worse than John's pattern though. > I thought of using a try/finally to make sure release was called and that > naturally lead to thinking of try-with-resources, where the "resource" in > this case is a binding of some sort (or a wrapper around a binding) that is > invalidated on close() if needed. That is an interesting idea. I didn't intend blockWhile() to be safe with respect to exceptions, but merely void blockWhile(Runnable r) { block(); r.run(); release(); } Enhancement you are suggesting could be fleshed out as block() returning an AutoCloseable and the usage would be try(AutoCloseable a = relaxedArea.block()) { obj.setWidth(w); obj.setHeight(h); } I wish I could omit the "AutoCloseable a = " when I don't use "a" inside the try block. Regards, Tomas > > > Scott > > > > On Sun, Dec 15, 2013 at 6:57 PM, Tomas Mikula > wrote: >> >> On Sun, Dec 15, 2013 at 11:49 PM, Tomas Mikula >> wrote: >> > On Sun, Dec 15, 2013 at 6:39 PM, Scott Palmer >> > wrote: >> >> Interesting idea. >> >> >> >> There is a case I have been curious about and wonder what the best >> >> practices >> >> are for it. Suppose you have a case when you are changing multiple >> >> different properties that will be used in a single calculation. You >> >> want to >> >> deal with a single change to all of them in one go. E.g. imagine you >> >> have >> >> an "area" property that is bound to both "width" and "height". You >> >> want to >> >> write code like: >> >> >> >> obj.setWidth(w); >> >> obj.setHeight(h); >> >> >> >> and have only ONE recalculation of the area property happen. Currently >> >> the >> >> way bindings work the area will be calculated twice. The intermediate >> >> calculation is really not a value that you ever want to observe. >> > >> > Hi Scott, >> > >> > this is precisely the problem that I'm trying to address here. Now, >> > the question is whether you have control over the implementation of >> > obj. >> > >> > If yes, then it is the same case as the AND gate "motivational >> > example" from InhiBeans page. You provide a method setSize(w, h) and >> > use block()/release() to implement it in a way that causes only one >> > change of the area property. >> > >> > If you cannot change the implementation of obj, what you can do is to >> > bind an inhibeans.binding.DoubleBinding to the "area" value, call it >> > relaxedArea, and listen to that one for all your purposes. >> > Then you resize obj like this: >> > >> > relaxedArea.block(); >> > obj.setWidth(); >> > obj.setHeight(); >> > relaxedArea.release(); >> >> I just thought of an enhancement: add method blockWhile(Runnable). >> >> The above example would become >> >> relaxedArea.blockWhile(() -> { >> obj.setWidth(w); >> obj.setHeight(h); >> }); >> >> This way you wouldn't have to worry about forgetting to call >> release(), but comes with a penalty of creating a closure. >> >> Regards, >> Tomas >> >> > >> > Only one change of relaxedArea is emitted. >> > >> > Best, >> > Tomas >> > >> >> >> >> Are there helpers for this sort of situation? Are there guidelines in >> >> the >> >> JavaFX docs somewhere? >> >> >> >> Regards, >> >> >> >> Scott >> >> >> >> >> >> On Sat, Dec 14, 2013 at 11:54 PM, Tomas Mikula >> >> wrote: >> >>> >> >>> Hello, >> >>> >> >>> I just published a small extension of javafx bindings and properties >> >>> that can help you reduce redundant recalculations. >> >>> >> >>> They provide two additional methods: >> >>> >> >>> public void block(); >> >>> public void release(); >> >>> >> >>> Call p.block() when you suspect your actions will lead to multiple >> >>> invalidations of p, and call p.release() when you are done and want to >> >>> deliver a single invalidation notification to p's observers. >> >>> >> >>> https://github.com/TomasMikula/InhiBeans >> >>> >> >>> Regards, >> >>> Tomas >> >> >> >> > > From tbee at tbee.org Sun Dec 15 22:56:35 2013 From: tbee at tbee.org (Tom Eugelink) Date: Mon, 16 Dec 2013 07:56:35 +0100 Subject: [announce] InhiBeans: mitigate redundant recalculations In-Reply-To: References: Message-ID: <52AEA423.8080802@tbee.org> I understand what you are trying to do. I was wondering if a more coarse grained approach would be preferable, so a central registration of whether or not to postpone change events. So: Central.postponeAllChangeEvents() Central.resumeAllChangeEvents() Or maybe both: p.postponeChangeEvents() p.resumeChangeEvents() I also foresee some unexpected behavior; suppose you have two properties bound bidirectionally. You set 1 on the first and 2 on the second, in the end both properties will be set to 2. Now you postpone change events and do the same, the end value depends on the order in which the components are resumed; if first component "2" is resumed its change event is fired before "1" so in the end the properties will be set to 1. If there were a central toggle and postponed events were registered to that central toggle, than resuming events would "play back" the events in the same order they happened. Just some considerations. Tom On 2013-12-16 0:39, Scott Palmer wrote: > Good stuff! This is the sort of thing that might make a good contribution > to extend the standard Bindings class. > > Scott > > > On Sun, Dec 15, 2013 at 5:49 PM, Tomas Mikula wrote: > >> On Sun, Dec 15, 2013 at 6:39 PM, Scott Palmer wrote: >>> Interesting idea. >>> >>> There is a case I have been curious about and wonder what the best >> practices >>> are for it. Suppose you have a case when you are changing multiple >>> different properties that will be used in a single calculation. You >> want to >>> deal with a single change to all of them in one go. E.g. imagine you >> have >>> an "area" property that is bound to both "width" and "height". You want >> to >>> write code like: >>> >>> obj.setWidth(w); >>> obj.setHeight(h); >>> >>> and have only ONE recalculation of the area property happen. Currently >> the >>> way bindings work the area will be calculated twice. The intermediate >>> calculation is really not a value that you ever want to observe. >> Hi Scott, >> >> this is precisely the problem that I'm trying to address here. Now, >> the question is whether you have control over the implementation of >> obj. >> >> If yes, then it is the same case as the AND gate "motivational >> example" from InhiBeans page. You provide a method setSize(w, h) and >> use block()/release() to implement it in a way that causes only one >> change of the area property. >> >> If you cannot change the implementation of obj, what you can do is to >> bind an inhibeans.binding.DoubleBinding to the "area" value, call it >> relaxedArea, and listen to that one for all your purposes. >> Then you resize obj like this: >> >> relaxedArea.block(); >> obj.setWidth(); >> obj.setHeight(); >> relaxedArea.release(); >> >> Only one change of relaxedArea is emitted. >> >> Best, >> Tomas >> >>> Are there helpers for this sort of situation? Are there guidelines in >> the >>> JavaFX docs somewhere? >>> >>> Regards, >>> >>> Scott >>> >>> >>> On Sat, Dec 14, 2013 at 11:54 PM, Tomas Mikula >>> wrote: >>>> Hello, >>>> >>>> I just published a small extension of javafx bindings and properties >>>> that can help you reduce redundant recalculations. >>>> >>>> They provide two additional methods: >>>> >>>> public void block(); >>>> public void release(); >>>> >>>> Call p.block() when you suspect your actions will lead to multiple >>>> invalidations of p, and call p.release() when you are done and want to >>>> deliver a single invalidation notification to p's observers. >>>> >>>> https://github.com/TomasMikula/InhiBeans >>>> >>>> Regards, >>>> Tomas >>> From peter.penzov at gmail.com Mon Dec 16 00:22:01 2013 From: peter.penzov at gmail.com (Peter Penzov) Date: Mon, 16 Dec 2013 10:22:01 +0200 Subject: Option to keep Stages always on top on JavaFX 8 ? In-Reply-To: References: Message-ID: Hi All, I'm also interested in this. Can you share some information? Regards, Peter On Thu, Dec 12, 2013 at 12:27 AM, Herve Girod wrote: > I know that this option is not available for JavaFX 2.2, but is it planned > for Java 8, and for what time frame if the answer is yes (for example, for > initial release or later ?) . > > This is an important feature for us, because we need to show JavaFX content > on top of Windows created on other programs (for example, elements on top > of a cartographic system produced by a C++ program, but it's just an > example). > > As there is no alwaysOnTop API on Stage in JavaFX, a workaround is to > create a Swing Window, put a JFXPanel in it, and the Scene in the JFXPanel. > However, multitouch gestures are not handled by Swing, so these are not > working in this case. > > Our only option is then to put a Stage toFront(), and hope that the other > content won't pop on top of JavaFX while the user click on it. > > This is OK if no part of our Stage need to be transparent to user events, > and also if all of the other Windows are created prior to the JavaFX stage > is created, but it is not always possible, and we envision cases where our > workaround won't work. > > Regards, > > Herv? > From artem.ananiev at oracle.com Mon Dec 16 01:06:06 2013 From: artem.ananiev at oracle.com (Artem Ananiev) Date: Mon, 16 Dec 2013 13:06:06 +0400 Subject: Javafxpackager build error on Win7 64 In-Reply-To: <52AC2DF4.4010402@oracle.com> References: <1386979976.23229.YahooMailNeo@web121701.mail.ne1.yahoo.com> <52AC2DF4.4010402@oracle.com> Message-ID: <52AEC27E.1070401@oracle.com> Francisco, it can also be caused by using Windows SDK 7.0A, which is bundled with Visual Studio 2010 Express. It can't be used to build 64-bit FX, you need either VS 2010 Pro, or Windows SDK 7.1 (downloaded as a separate bundle from MS site). Thanks, Artem On 12/14/2013 2:07 PM, Vadim Pakhnushev wrote: > Francisco, > > It seems that somehow /machine:X86 got added to the command line. > Please make sure that your environment is consistent, that is you have > JAVA_HOME and PATH set to x64 JDK. > Then try to gradle clean sdk. > > Hope this helps, > Vadim > > On 14.12.2013 4:12, Francisco Javier Godino wrote: >> Hello: >> >> I ran the build process "gradle sdk" and I'm receiving the following >> error: >> >> LNK1112 module machine type X86 conflicts with target machine type x64 >> >> Part of the log: >> >> Compiling native files: [] >> Starting process 'command 'C:/Program Files (x86)/Microsoft >> SDKs/Windows/v7.0A/Bin/RC.Exe''. Working directory: >> C:\Desarrollos\javafxopen\rt\modules\fxpackager Command: C:/Program >> Files (x86)/Microsoft SDKs/Windows/v7.0A/Bin/RC.Exe /nologo /l 0x409 >> /r /dJFX_DVERSION=8 /dJFX_VERSION=8 >> /foC:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.res >> src/main/native/javafxpackager/win/javafxpackager.rc >> Successfully started process 'command 'C:/Program Files >> (x86)/Microsoft SDKs/Windows/v7.0A/Bin/RC.Exe'' >> Process 'command 'C:/Program Files (x86)/Microsoft >> SDKs/Windows/v7.0A/Bin/RC.Exe'' finished with exit value 0 (state: >> SUCCEEDED) >> Starting process 'command 'C:/Program Files (x86)/Microsoft Visual >> Studio 10.0/VC/BIN/amd64/link.exe''. Working directory: >> C:\Desarrollos\javafxopen\rt\modules\fxpackager Command: C:/Program >> Files (x86)/Microsoft Visual Studio 10.0/VC/BIN/amd64/link.exe >> /machine:X86 /nologo /opt:REF /incremental:no /manifest kernel32.lib >> advapi32.lib >> /out:C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.exe >> C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.obj >> C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.res >> >> Successfully started process 'command 'C:/Program Files >> (x86)/Microsoft Visual Studio 10.0/VC/BIN/amd64/link.exe'' >> C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.obj >> : fatal error LNK1112: module machine type 'x64' conflicts with target >> machine type 'X86' >> Process 'command 'C:/Program Files (x86)/Microsoft Visual Studio >> 10.0/VC/BIN/amd64/link.exe'' finished with exit value 1112 (state: >> FAILED) >> :fxpackager:buildJavaFXPackager FAILED >> >> The line in build.gradle is: >> >> >> >> doLast { >> mkdir "$buildDir/javafxpackager" >> exec({ >> commandLine("$WIN.fxpackager.linker", "/nologo", >> "/opt:REF", "/incremental:no", "/manifest", "kernel32.lib", >> "advapi32.lib", >> >> "/out:$buildDir/native/javafxpackager/javafxpackager.exe", >> >> "$buildDir/native/javafxpackager/javafxpackager.obj", >> >> "$buildDir/native/javafxpackager/javafxpackager.res") >> environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT) >> }) >> } >> >> Do I need to change something? >> >> Thanks in advance!! >> >> Javier > From tomas.mikula at gmail.com Mon Dec 16 03:17:35 2013 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Mon, 16 Dec 2013 12:17:35 +0100 Subject: [announce] InhiBeans: mitigate redundant recalculations In-Reply-To: <52AEA423.8080802@tbee.org> References: <52AEA423.8080802@tbee.org> Message-ID: On Mon, Dec 16, 2013 at 7:56 AM, Tom Eugelink wrote: > > I understand what you are trying to do. I was wondering if a more coarse > grained approach would be preferable, so a central registration of whether > or not to postpone change events. > > So: > Central.postponeAllChangeEvents() > Central.resumeAllChangeEvents() > > Or maybe both: > p.postponeChangeEvents() > p.resumeChangeEvents() > > > I also foresee some unexpected behavior; suppose you have two properties > bound bidirectionally. You set 1 on the first and 2 on the second, in the > end both properties will be set to 2. Now you postpone change events and do > the same, the end value depends on the order in which the components are > resumed; if first component "2" is resumed its change event is fired before > "1" so in the end the properties will be set to 1. If there were a central > toggle and postponed events were registered to that central toggle, than > resuming events would "play back" the events in the same order they > happened. > > Just some considerations. > > Tom Hi Tom, global postpone/resume defeats the original goal of avoiding multiple change events. Consider Central.postponeAllChangeEvents(); obj.setWidth(w); obj.setHeight(h); Central.resumeAllChangeEvents(); Now, if the changes are replayed, the width change causes one change of the area property, and height change another one. You are right about the problem with bidirectionally bound properties. I don't know all the useful use cases for bidirectional bindings (I never used them personally), but it might as well be the case that the scenario you described never happens. InhiBeans are intended for internal implementation of a component. Only the component itself would call block()/release(). These methods aren't even available to the client of the component without downcasting the properties. Methods of the component can call block() internally, but should release() before returning. Regards, Tomas > > > On 2013-12-16 0:39, Scott Palmer wrote: >> >> Good stuff! This is the sort of thing that might make a good >> contribution >> to extend the standard Bindings class. >> >> Scott >> >> >> On Sun, Dec 15, 2013 at 5:49 PM, Tomas Mikula >> wrote: >> >>> On Sun, Dec 15, 2013 at 6:39 PM, Scott Palmer wrote: >>>> >>>> Interesting idea. >>>> >>>> There is a case I have been curious about and wonder what the best >>> >>> practices >>>> >>>> are for it. Suppose you have a case when you are changing multiple >>>> different properties that will be used in a single calculation. You >>> >>> want to >>>> >>>> deal with a single change to all of them in one go. E.g. imagine you >>> >>> have >>>> >>>> an "area" property that is bound to both "width" and "height". You want >>> >>> to >>>> >>>> write code like: >>>> >>>> obj.setWidth(w); >>>> obj.setHeight(h); >>>> >>>> and have only ONE recalculation of the area property happen. Currently >>> >>> the >>>> >>>> way bindings work the area will be calculated twice. The intermediate >>>> calculation is really not a value that you ever want to observe. >>> >>> Hi Scott, >>> >>> this is precisely the problem that I'm trying to address here. Now, >>> the question is whether you have control over the implementation of >>> obj. >>> >>> If yes, then it is the same case as the AND gate "motivational >>> example" from InhiBeans page. You provide a method setSize(w, h) and >>> use block()/release() to implement it in a way that causes only one >>> change of the area property. >>> >>> If you cannot change the implementation of obj, what you can do is to >>> bind an inhibeans.binding.DoubleBinding to the "area" value, call it >>> relaxedArea, and listen to that one for all your purposes. >>> Then you resize obj like this: >>> >>> relaxedArea.block(); >>> obj.setWidth(); >>> obj.setHeight(); >>> relaxedArea.release(); >>> >>> Only one change of relaxedArea is emitted. >>> >>> Best, >>> Tomas >>> >>>> Are there helpers for this sort of situation? Are there guidelines in >>> >>> the >>>> >>>> JavaFX docs somewhere? >>>> >>>> Regards, >>>> >>>> Scott >>>> >>>> >>>> On Sat, Dec 14, 2013 at 11:54 PM, Tomas Mikula >>>> wrote: >>>>> >>>>> Hello, >>>>> >>>>> I just published a small extension of javafx bindings and properties >>>>> that can help you reduce redundant recalculations. >>>>> >>>>> They provide two additional methods: >>>>> >>>>> public void block(); >>>>> public void release(); >>>>> >>>>> Call p.block() when you suspect your actions will lead to multiple >>>>> invalidations of p, and call p.release() when you are done and want to >>>>> deliver a single invalidation notification to p's observers. >>>>> >>>>> https://github.com/TomasMikula/InhiBeans >>>>> >>>>> Regards, >>>>> Tomas >>>> >>>> > > From tomas.mikula at gmail.com Mon Dec 16 03:23:39 2013 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Mon, 16 Dec 2013 12:23:39 +0100 Subject: [announce] InhiBeans: mitigate redundant recalculations In-Reply-To: References: <52AEA423.8080802@tbee.org> Message-ID: On Mon, Dec 16, 2013 at 12:17 PM, Tomas Mikula wrote: > On Mon, Dec 16, 2013 at 7:56 AM, Tom Eugelink wrote: >> >> I understand what you are trying to do. I was wondering if a more coarse >> grained approach would be preferable, so a central registration of whether >> or not to postpone change events. >> >> So: >> Central.postponeAllChangeEvents() >> Central.resumeAllChangeEvents() >> >> Or maybe both: >> p.postponeChangeEvents() >> p.resumeChangeEvents() >> >> >> I also foresee some unexpected behavior; suppose you have two properties >> bound bidirectionally. You set 1 on the first and 2 on the second, in the >> end both properties will be set to 2. Now you postpone change events and do >> the same, the end value depends on the order in which the components are >> resumed; if first component "2" is resumed its change event is fired before >> "1" so in the end the properties will be set to 1. If there were a central >> toggle and postponed events were registered to that central toggle, than >> resuming events would "play back" the events in the same order they >> happened. >> >> Just some considerations. >> >> Tom > > Hi Tom, > > global postpone/resume defeats the original goal of avoiding multiple > change events. Consider > > Central.postponeAllChangeEvents(); > obj.setWidth(w); > obj.setHeight(h); > Central.resumeAllChangeEvents(); > > Now, if the changes are replayed, the width change causes one change > of the area property, and height change another one. > > You are right about the problem with bidirectionally bound properties. > I don't know all the useful use cases for bidirectional bindings (I > never used them personally), but it might as well be the case that the > scenario you described never happens. I should have added that I assume that you never use bidirectional binding within one component, but only to bind properties of two components. > InhiBeans are intended for > internal implementation of a component. Only the component itself > would call block()/release(). These methods aren't even available to > the client of the component without downcasting the properties. > Methods of the component can call block() internally, but should > release() before returning. > > Regards, > Tomas > >> >> >> On 2013-12-16 0:39, Scott Palmer wrote: >>> >>> Good stuff! This is the sort of thing that might make a good >>> contribution >>> to extend the standard Bindings class. >>> >>> Scott >>> >>> >>> On Sun, Dec 15, 2013 at 5:49 PM, Tomas Mikula >>> wrote: >>> >>>> On Sun, Dec 15, 2013 at 6:39 PM, Scott Palmer wrote: >>>>> >>>>> Interesting idea. >>>>> >>>>> There is a case I have been curious about and wonder what the best >>>> >>>> practices >>>>> >>>>> are for it. Suppose you have a case when you are changing multiple >>>>> different properties that will be used in a single calculation. You >>>> >>>> want to >>>>> >>>>> deal with a single change to all of them in one go. E.g. imagine you >>>> >>>> have >>>>> >>>>> an "area" property that is bound to both "width" and "height". You want >>>> >>>> to >>>>> >>>>> write code like: >>>>> >>>>> obj.setWidth(w); >>>>> obj.setHeight(h); >>>>> >>>>> and have only ONE recalculation of the area property happen. Currently >>>> >>>> the >>>>> >>>>> way bindings work the area will be calculated twice. The intermediate >>>>> calculation is really not a value that you ever want to observe. >>>> >>>> Hi Scott, >>>> >>>> this is precisely the problem that I'm trying to address here. Now, >>>> the question is whether you have control over the implementation of >>>> obj. >>>> >>>> If yes, then it is the same case as the AND gate "motivational >>>> example" from InhiBeans page. You provide a method setSize(w, h) and >>>> use block()/release() to implement it in a way that causes only one >>>> change of the area property. >>>> >>>> If you cannot change the implementation of obj, what you can do is to >>>> bind an inhibeans.binding.DoubleBinding to the "area" value, call it >>>> relaxedArea, and listen to that one for all your purposes. >>>> Then you resize obj like this: >>>> >>>> relaxedArea.block(); >>>> obj.setWidth(); >>>> obj.setHeight(); >>>> relaxedArea.release(); >>>> >>>> Only one change of relaxedArea is emitted. >>>> >>>> Best, >>>> Tomas >>>> >>>>> Are there helpers for this sort of situation? Are there guidelines in >>>> >>>> the >>>>> >>>>> JavaFX docs somewhere? >>>>> >>>>> Regards, >>>>> >>>>> Scott >>>>> >>>>> >>>>> On Sat, Dec 14, 2013 at 11:54 PM, Tomas Mikula >>>>> wrote: >>>>>> >>>>>> Hello, >>>>>> >>>>>> I just published a small extension of javafx bindings and properties >>>>>> that can help you reduce redundant recalculations. >>>>>> >>>>>> They provide two additional methods: >>>>>> >>>>>> public void block(); >>>>>> public void release(); >>>>>> >>>>>> Call p.block() when you suspect your actions will lead to multiple >>>>>> invalidations of p, and call p.release() when you are done and want to >>>>>> deliver a single invalidation notification to p's observers. >>>>>> >>>>>> https://github.com/TomasMikula/InhiBeans >>>>>> >>>>>> Regards, >>>>>> Tomas >>>>> >>>>> >> >> From vadim.pakhnushev at oracle.com Mon Dec 16 03:45:38 2013 From: vadim.pakhnushev at oracle.com (Vadim Pakhnushev) Date: Mon, 16 Dec 2013 15:45:38 +0400 Subject: Javafxpackager build error on Win7 64 In-Reply-To: <52AEC27E.1070401@oracle.com> References: <1386979976.23229.YahooMailNeo@web121701.mail.ne1.yahoo.com> <52AC2DF4.4010402@oracle.com> <52AEC27E.1070401@oracle.com> Message-ID: <52AEE7E2.3020108@oracle.com> Artem, That was exactly the case, as we discussed off-list. I've asked Francisco to follow up on the list about that and file a JIRA. The problem seems to be that the build system doesn't pick up WinSDK 7.1 installed with the VS2010 Express. Thanks, Vadim On 16.12.2013 13:06, Artem Ananiev wrote: > Francisco, > > it can also be caused by using Windows SDK 7.0A, which is bundled with > Visual Studio 2010 Express. It can't be used to build 64-bit FX, you > need either VS 2010 Pro, or Windows SDK 7.1 (downloaded as a separate > bundle from MS site). > > Thanks, > > Artem > > On 12/14/2013 2:07 PM, Vadim Pakhnushev wrote: >> Francisco, >> >> It seems that somehow /machine:X86 got added to the command line. >> Please make sure that your environment is consistent, that is you have >> JAVA_HOME and PATH set to x64 JDK. >> Then try to gradle clean sdk. >> >> Hope this helps, >> Vadim >> >> On 14.12.2013 4:12, Francisco Javier Godino wrote: >>> Hello: >>> >>> I ran the build process "gradle sdk" and I'm receiving the following >>> error: >>> >>> LNK1112 module machine type X86 conflicts with target machine type x64 >>> >>> Part of the log: >>> >>> Compiling native files: [] >>> Starting process 'command 'C:/Program Files (x86)/Microsoft >>> SDKs/Windows/v7.0A/Bin/RC.Exe''. Working directory: >>> C:\Desarrollos\javafxopen\rt\modules\fxpackager Command: C:/Program >>> Files (x86)/Microsoft SDKs/Windows/v7.0A/Bin/RC.Exe /nologo /l 0x409 >>> /r /dJFX_DVERSION=8 /dJFX_VERSION=8 >>> /foC:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.res >>> >>> src/main/native/javafxpackager/win/javafxpackager.rc >>> Successfully started process 'command 'C:/Program Files >>> (x86)/Microsoft SDKs/Windows/v7.0A/Bin/RC.Exe'' >>> Process 'command 'C:/Program Files (x86)/Microsoft >>> SDKs/Windows/v7.0A/Bin/RC.Exe'' finished with exit value 0 (state: >>> SUCCEEDED) >>> Starting process 'command 'C:/Program Files (x86)/Microsoft Visual >>> Studio 10.0/VC/BIN/amd64/link.exe''. Working directory: >>> C:\Desarrollos\javafxopen\rt\modules\fxpackager Command: C:/Program >>> Files (x86)/Microsoft Visual Studio 10.0/VC/BIN/amd64/link.exe >>> /machine:X86 /nologo /opt:REF /incremental:no /manifest kernel32.lib >>> advapi32.lib >>> /out:C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.exe >>> >>> C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.obj >>> >>> C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.res >>> >>> >>> Successfully started process 'command 'C:/Program Files >>> (x86)/Microsoft Visual Studio 10.0/VC/BIN/amd64/link.exe'' >>> C:\Desarrollos\javafxopen\rt\modules\fxpackager\build/native/javafxpackager/javafxpackager.obj >>> >>> : fatal error LNK1112: module machine type 'x64' conflicts with target >>> machine type 'X86' >>> Process 'command 'C:/Program Files (x86)/Microsoft Visual Studio >>> 10.0/VC/BIN/amd64/link.exe'' finished with exit value 1112 (state: >>> FAILED) >>> :fxpackager:buildJavaFXPackager FAILED >>> >>> The line in build.gradle is: >>> >>> >>> >>> doLast { >>> mkdir "$buildDir/javafxpackager" >>> exec({ >>> commandLine("$WIN.fxpackager.linker", "/nologo", >>> "/opt:REF", "/incremental:no", "/manifest", "kernel32.lib", >>> "advapi32.lib", >>> >>> "/out:$buildDir/native/javafxpackager/javafxpackager.exe", >>> >>> "$buildDir/native/javafxpackager/javafxpackager.obj", >>> >>> "$buildDir/native/javafxpackager/javafxpackager.res") >>> environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT) >>> }) >>> } >>> >>> Do I need to change something? >>> >>> Thanks in advance!! >>> >>> Javier >> From tbee at tbee.org Mon Dec 16 04:12:00 2013 From: tbee at tbee.org (Tom Eugelink) Date: Mon, 16 Dec 2013 13:12:00 +0100 Subject: [announce] InhiBeans: mitigate redundant recalculations In-Reply-To: References: <52AEA423.8080802@tbee.org> Message-ID: <52AEEE10.5080309@tbee.org> Point made. Tom On 2013-12-16 12:17, Tomas Mikula wrote: > On Mon, Dec 16, 2013 at 7:56 AM, Tom Eugelink wrote: >> I understand what you are trying to do. I was wondering if a more coarse >> grained approach would be preferable, so a central registration of whether >> or not to postpone change events. >> >> So: >> Central.postponeAllChangeEvents() >> Central.resumeAllChangeEvents() >> >> Or maybe both: >> p.postponeChangeEvents() >> p.resumeChangeEvents() >> >> >> I also foresee some unexpected behavior; suppose you have two properties >> bound bidirectionally. You set 1 on the first and 2 on the second, in the >> end both properties will be set to 2. Now you postpone change events and do >> the same, the end value depends on the order in which the components are >> resumed; if first component "2" is resumed its change event is fired before >> "1" so in the end the properties will be set to 1. If there were a central >> toggle and postponed events were registered to that central toggle, than >> resuming events would "play back" the events in the same order they >> happened. >> >> Just some considerations. >> >> Tom > Hi Tom, > > global postpone/resume defeats the original goal of avoiding multiple > change events. Consider > > Central.postponeAllChangeEvents(); > obj.setWidth(w); > obj.setHeight(h); > Central.resumeAllChangeEvents(); > > Now, if the changes are replayed, the width change causes one change > of the area property, and height change another one. > > You are right about the problem with bidirectionally bound properties. > I don't know all the useful use cases for bidirectional bindings (I > never used them personally), but it might as well be the case that the > scenario you described never happens. InhiBeans are intended for > internal implementation of a component. Only the component itself > would call block()/release(). These methods aren't even available to > the client of the component without downcasting the properties. > Methods of the component can call block() internally, but should > release() before returning. > > Regards, > Tomas > >> >> On 2013-12-16 0:39, Scott Palmer wrote: >>> Good stuff! This is the sort of thing that might make a good >>> contribution >>> to extend the standard Bindings class. >>> >>> Scott >>> >>> >>> On Sun, Dec 15, 2013 at 5:49 PM, Tomas Mikula >>> wrote: >>> >>>> On Sun, Dec 15, 2013 at 6:39 PM, Scott Palmer wrote: >>>>> Interesting idea. >>>>> >>>>> There is a case I have been curious about and wonder what the best >>>> practices >>>>> are for it. Suppose you have a case when you are changing multiple >>>>> different properties that will be used in a single calculation. You >>>> want to >>>>> deal with a single change to all of them in one go. E.g. imagine you >>>> have >>>>> an "area" property that is bound to both "width" and "height". You want >>>> to >>>>> write code like: >>>>> >>>>> obj.setWidth(w); >>>>> obj.setHeight(h); >>>>> >>>>> and have only ONE recalculation of the area property happen. Currently >>>> the >>>>> way bindings work the area will be calculated twice. The intermediate >>>>> calculation is really not a value that you ever want to observe. >>>> Hi Scott, >>>> >>>> this is precisely the problem that I'm trying to address here. Now, >>>> the question is whether you have control over the implementation of >>>> obj. >>>> >>>> If yes, then it is the same case as the AND gate "motivational >>>> example" from InhiBeans page. You provide a method setSize(w, h) and >>>> use block()/release() to implement it in a way that causes only one >>>> change of the area property. >>>> >>>> If you cannot change the implementation of obj, what you can do is to >>>> bind an inhibeans.binding.DoubleBinding to the "area" value, call it >>>> relaxedArea, and listen to that one for all your purposes. >>>> Then you resize obj like this: >>>> >>>> relaxedArea.block(); >>>> obj.setWidth(); >>>> obj.setHeight(); >>>> relaxedArea.release(); >>>> >>>> Only one change of relaxedArea is emitted. >>>> >>>> Best, >>>> Tomas >>>> >>>>> Are there helpers for this sort of situation? Are there guidelines in >>>> the >>>>> JavaFX docs somewhere? >>>>> >>>>> Regards, >>>>> >>>>> Scott >>>>> >>>>> >>>>> On Sat, Dec 14, 2013 at 11:54 PM, Tomas Mikula >>>>> wrote: >>>>>> Hello, >>>>>> >>>>>> I just published a small extension of javafx bindings and properties >>>>>> that can help you reduce redundant recalculations. >>>>>> >>>>>> They provide two additional methods: >>>>>> >>>>>> public void block(); >>>>>> public void release(); >>>>>> >>>>>> Call p.block() when you suspect your actions will lead to multiple >>>>>> invalidations of p, and call p.release() when you are done and want to >>>>>> deliver a single invalidation notification to p's observers. >>>>>> >>>>>> https://github.com/TomasMikula/InhiBeans >>>>>> >>>>>> Regards, >>>>>> Tomas >>>>> >> From anthony.petrov at oracle.com Mon Dec 16 05:54:06 2013 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Mon, 16 Dec 2013 17:54:06 +0400 Subject: Option to keep Stages always on top on JavaFX 8 ? In-Reply-To: References: Message-ID: <52AF05FE.70205@oracle.com> Hi Peter, You might want to watch this bug: https://javafx-jira.kenai.com/browse/RT-153 -- best regards, Anthony On 12/16/2013 12:22 PM, Peter Penzov wrote: > Hi All, > I'm also interested in this. Can you share some information? > > Regards, > Peter > > > On Thu, Dec 12, 2013 at 12:27 AM, Herve Girod wrote: > >> I know that this option is not available for JavaFX 2.2, but is it planned >> for Java 8, and for what time frame if the answer is yes (for example, for >> initial release or later ?) . >> >> This is an important feature for us, because we need to show JavaFX content >> on top of Windows created on other programs (for example, elements on top >> of a cartographic system produced by a C++ program, but it's just an >> example). >> >> As there is no alwaysOnTop API on Stage in JavaFX, a workaround is to >> create a Swing Window, put a JFXPanel in it, and the Scene in the JFXPanel. >> However, multitouch gestures are not handled by Swing, so these are not >> working in this case. >> >> Our only option is then to put a Stage toFront(), and hope that the other >> content won't pop on top of JavaFX while the user click on it. >> >> This is OK if no part of our Stage need to be transparent to user events, >> and also if all of the other Windows are created prior to the JavaFX stage >> is created, but it is not always possible, and we envision cases where our >> workaround won't work. >> >> Regards, >> >> Herv? >> From peter.penzov at gmail.com Mon Dec 16 06:18:24 2013 From: peter.penzov at gmail.com (Peter Penzov) Date: Mon, 16 Dec 2013 16:18:24 +0200 Subject: Progress Bar into Combo Box is not working properly Message-ID: Hi All, I want to implement Progress Bar into Combo Box. I pasted the code here: http://stackoverflow.com/questions/20518329/combobox-with-progress-bars-is-not-working-properly When I run the code the progress bar is empty. There is no selected Progress Bar which is displayed by default. And also after a time the progress bar is not responsible. I tested the code with Java 8b119. Maybe this is a bug. Can you please assist me to fix this issue? Regards, Peter From steve.x.northover at oracle.com Mon Dec 16 08:03:47 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Mon, 16 Dec 2013 11:03:47 -0500 Subject: Option to keep Stages always on top on JavaFX 8 ? In-Reply-To: <52AF05FE.70205@oracle.com> References: <52AF05FE.70205@oracle.com> Message-ID: <52AF2463.80309@oracle.com> Look how low the bug number is ... we must fix this. Steve On 2013-12-16 8:54 AM, Anthony Petrov wrote: > Hi Peter, > > You might want to watch this bug: > > https://javafx-jira.kenai.com/browse/RT-153 > > -- > best regards, > Anthony > > On 12/16/2013 12:22 PM, Peter Penzov wrote: >> Hi All, >> I'm also interested in this. Can you share some information? >> >> Regards, >> Peter >> >> >> On Thu, Dec 12, 2013 at 12:27 AM, Herve Girod >> wrote: >> >>> I know that this option is not available for JavaFX 2.2, but is it >>> planned >>> for Java 8, and for what time frame if the answer is yes (for >>> example, for >>> initial release or later ?) . >>> >>> This is an important feature for us, because we need to show JavaFX >>> content >>> on top of Windows created on other programs (for example, elements >>> on top >>> of a cartographic system produced by a C++ program, but it's just an >>> example). >>> >>> As there is no alwaysOnTop API on Stage in JavaFX, a workaround is to >>> create a Swing Window, put a JFXPanel in it, and the Scene in the >>> JFXPanel. >>> However, multitouch gestures are not handled by Swing, so these are not >>> working in this case. >>> >>> Our only option is then to put a Stage toFront(), and hope that the >>> other >>> content won't pop on top of JavaFX while the user click on it. >>> >>> This is OK if no part of our Stage need to be transparent to user >>> events, >>> and also if all of the other Windows are created prior to the JavaFX >>> stage >>> is created, but it is not always possible, and we envision cases >>> where our >>> workaround won't work. >>> >>> Regards, >>> >>> Herv? >>> From tomas.mikula at gmail.com Mon Dec 16 08:09:17 2013 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Mon, 16 Dec 2013 17:09:17 +0100 Subject: [announce] InhiBeans: mitigate redundant recalculations In-Reply-To: References: Message-ID: On Mon, Dec 16, 2013 at 1:47 AM, Tomas Mikula wrote: > On Mon, Dec 16, 2013 at 1:07 AM, Scott Palmer wrote: >> Interesting, no worse than John's pattern though. >> I thought of using a try/finally to make sure release was called and that >> naturally lead to thinking of try-with-resources, where the "resource" in >> this case is a binding of some sort (or a wrapper around a binding) that is >> invalidated on close() if needed. > > That is an interesting idea. I didn't intend blockWhile() to be safe > with respect to exceptions, but merely > > void blockWhile(Runnable r) { > block(); > r.run(); > release(); > } > > Enhancement you are suggesting could be fleshed out as block() > returning an AutoCloseable and the usage would be > > try(AutoCloseable a = relaxedArea.block()) { > obj.setWidth(w); > obj.setHeight(h); > } OK, done. I implemented both: 1. added the blockWhile() method; 2. made bindings AutoCloseable, and block() returns `this`. Tomas From assaf.yavnai at oracle.com Mon Dec 16 08:17:30 2013 From: assaf.yavnai at oracle.com (Assaf Yavnai) Date: Mon, 16 Dec 2013 18:17:30 +0200 Subject: discussion about touch events In-Reply-To: <52ADCE2F.1020606@oracle.com> References: <5280B6B9.2020605@oracle.com> <5280C770.5030600@oracle.com> <52814C8F.5080009@oracle.com> <52820BB6.8020602@oracle.com> <52820CD8.5060604@oracle.com> <5de9f371-cbee-487e-aff2-8a48e738114d@default> <52868D71.7080101@oracle.com> <528A11C9.8060602@oracle.com> <528B7701.8080204@oracle.com> <528CD598.2050307@oracle.com> <52AA1CDE.8020503@oracle.com> <52ADCE2F.1020606@oracle.com> Message-ID: <52AF279A.20504@oracle.com> Pavel, See RT-34945 for a good example to the case that touch and mouse event should behave differently on controls. Assaf On 12/15/2013 05:43 PM, Assaf Yavnai wrote: > Pavel, > > I will summarize my answers here, and not inline, I hope I will touch > all your points. > > Let me start my answer with a different perspective. > I think that it is correct to try and make mouse oriented application > to work under touch screens, but its not the same as looking how UI > should behave with touch screens. > To explain myself, here an example tested on the iPhone. It doesn't > mean that we need to do the same, but rather a pointer for checking > how UI can behave under touch. > In iPhone, when you press on a control, say send button, and you start > dragging it away the button will remain 'armed' for quite large > distance, even if you drag it on top of other controls. Only after a > large distance is passed, the button is been deactivated and the > operation is canceled, this is true a cross the platform. > > What I'm trying to say that we first need to define how we would like > touch behave from UI/UX point of view and only then try to resolve the > technical issues. > > After saying that its very important to note that JFX is cross > platform and device specific as smartphones are for example. So I > believe that: > - mouse events should act as mouse events (regardless to touch) > - touch events should act as touch events (regardless to mouse) > and > - mouse applications that run on a touch device should have 80/20 > functionality working i.e usable but not perfect (again the way the > application behaved and designed could not overlap in 100%, like small > UI elements) > - a question how we want touch application work on mouse platform > (migrating embedded application to desktop for example) > But > UI should behave differently on touch platforms and mouse platform, or > more accurately when events derived from touch device or a pointer > device. And this (mainly) is currently not supported. > > I would like to suggest the following, hoping its feasible for the > next release (8u20 or 9) > 1) define UI/UX requirements for touch devices > 2) check overlaps and unique behavior between mouse and touch behaviors > 3) suggest 3 UI paths 1) mouse based UI 2) touch based UI 3) common > behavior > 4) discuss and define technical approach > > We might end up in a solution very similar to what we have now, or as > you said, something completely new. The challenge is to come to it > with 'empty minds' (that why it would be best if UX engineer will > define it and not us) > > Further more, I think that solutions like "Glass generates a > MOUSE_EXITED event any time all touches are released" should be > implemented in the shared code in not platform specific point, for > obvious reasons as this example provide. > > I apologize if it was hinted that the technical chalnges are not > imoprtent or not challenging, I meant that it isn't the time to tackle > them (top down approach vs bottom-up) > > I believe that we both want to to deliver a top notch platform and not > one that works most of the time, the difference between us, I think, > is that I focus on the differences and you on the commonalities. > > Maybe it would be best if we assemble a team to discuss those issues > by phone instead of mails, what do you think? > > Hope its clearer. > > Assaf > On 12/12/2013 10:30 PM, Pavel Safrata wrote: >> Hi Assaf, >> please see my comments inline. >> >> On 20.11.2013 16:30, Assaf Yavnai wrote: >>> Pavel, >>> >>> I think that this is a very good example why touch events should be >>> processed separately from mouse events. >>> For example, if you will press a button with a touch it will remain >>> in "hover" state although you released the finger from the screen. >>> This is done because the "hover" state listen to the mouse >>> coordinates, which is invalid for touch. >>> Touch events doesn't have the concept of move, only drag. >> >> My initial feeling would be for the synthesized mouse events to >> behave similarly to touch events - when touching the screen you want >> the application respond certain way regardless of the events used. Do >> we agree? >> >> Specifically, the hover problem can be solved quite easily. On iOS, >> Glass generates a MOUSE_EXITED event any time all touches are >> released, which clears the hover state of everything. I suppose all >> platforms can do that (for synthesized mouse events). >> >>> >>> As I mentioned before, from my point of view, the goal of this >>> thread is to understand and map the difference and expected behavior >>> between touch events and mouse events and have separate behavior >>> depends of the type of events (Nodes, Controls and application >>> level). One of them is the picking mechanism, the hover is another. >>> I think the discussion of how to implement it is currently in lower >>> priority, as it is only a technical detail. >> >> OK. Regarding picking, I believe the logical algorithm "pick each >> pixel and find the touch-sensitive one closest to the center if >> there's any" is the most natural behavior (just let me note that >> implementation is not really a "technical detail" because right now I >> don't see any way to implement it, so we might need to do something >> different). I already covered hover state. Another major thing on my >> mind is that scrollable content needs to become pannable (right now >> an attempt to scroll a list by panning in FX results in selecting an >> item, or even expanding a tree item, this is just not acceptable). >> >>> >>> Also I think that the synthesize mouse event should only be used for >>> making applications that doesn't listen to touch event usable (in >>> most cases), but we can't expect them to work 1:1. (touch using a >>> finger is a very different device then a mouse of stylus device). >>> Touch applications supposed to be 'tailor made' for touch this >>> include different UI layout, different UX and of course different >>> logic (because the events and there meaning are different then >>> mouse) Currently the is no reason for an application to listen to >>> touch events, only if you need to support multi-touch, as the events >>> are duplicated. >> >> The touch events were added exactly to support multi-touch. The >> "look" is one thing - yes, you'd often use different skins. But I >> believe the behavior of the events can be made such that a majority >> of application can just use mouse events and their application will >> "behave" well with single-touch out of the box, which can save a lot >> of development effort on user's side. >> >>> >>> As the mouse events are synthesize in native layer, I think its >>> important to know the origin of the event. Maybe the handlers should >>> check if the event is synthetic and treat it as touch event in this >>> case. We can also double check it by checking if there is currently >>> touch device connected, for example. >> >> I agree, I think many handlers will need to take the isSynthesized() >> flag into account. >> >> Regards, >> Pavel >> >>> >>> Assaf >>> >>> >>> On 11/19/2013 04:34 PM, Pavel Safrata wrote: >>>> Hello Assaf, >>>> there is more to it than just listeners. For instance, every node >>>> has its "hover" and "pressed" states that are maintained based on >>>> the picking results and used by CSS. So I believe we can't ignore >>>> anything during picking. >>>> >>>> By the way, I suppose this fuzzy picking should happen also for >>>> synthesized mouse events so that all the classic apps and standard >>>> controls can benefit. If I'm right, we definitely can't restrict it >>>> on touch-listening nodes. >>>> >>>> Pavel >>>> >>>> On 18.11.2013 14:10, Assaf Yavnai wrote: >>>>> I have a question, >>>>> >>>>> Would it be possible to search only the nodes that have been >>>>> registered for touch events notifications instead of the entire >>>>> tree? (if it's not already been done) >>>>> Of course if one choose to register the root node as the listener, >>>>> we will have to go all over the nodes, but it seems as bad >>>>> practice and I think its OK to have performance hit on that case >>>>> >>>>> Assaf >>>>> On 11/17/2013 04:09 PM, Daniel Blaukopf wrote: >>>>>> Hi Pavel, >>>>>> >>>>>> I think we we do use CSS to configure feel as well as look - and >>>>>> this is feel, not look - but I also don?t feel strongly about >>>>>> whether this needs to be in CSS. >>>>>> >>>>>> I like your idea of simply picking the closest touch sensitive >>>>>> node that is within range. That puts the burden on the touch >>>>>> event to describe what region it covers. On the touch screens we >>>>>> are currently looking at, a region would be defined as an oval - >>>>>> a combination of centre point, X diameter and Y diameter. However >>>>>> the touch region can be any shape, so might need to be >>>>>> represented as a Path. >>>>>> Iterating over pixels just isn?t going to work though. If we have >>>>>> a 300dpi display the touch region could be 150 pixels across and >>>>>> have an area of nearly 18000 pixels. Instead we?d want a way to >>>>>> ask a parent node, ?In your node hierarchy, which of your nodes? >>>>>> borders is closest to this region?. So we?d need to come up with >>>>>> an efficient algorithm to answer this question. We?d only ask >>>>>> this question for nodes with extended capture zone. >>>>>> >>>>>> We could reasonably limit the algorithm to dealing with convex >>>>>> shapes. Then we can consider an imaginary line L from the node >>>>>> center point to the touch center point. The intersection of L >>>>>> with the node perimeter is the closest point of contact. If this >>>>>> point is also within the touch area then we have a potential >>>>>> match. We iterate over all nearby nodes with extended capture >>>>>> zone in order to find the best match. >>>>>> >>>>>> This will then be O(n) in both time and space for n nearby nodes, >>>>>> given constant time to find the intersection of L with the node >>>>>> perimeter. This assumption will be true for rectangular, oval and >>>>>> rounded rectangle nodes. >>>>>> >>>>>> Thanks, >>>>>> Daniel >>>>>> >>>>>> >>>>>> On Nov 15, 2013, at 11:09 PM, Pavel Safrata >>>>>> wrote: >>>>>> >>>>>>> Hello, >>>>>>> let me start with a few comments. >>>>>>> >>>>>>> "changing behavior based on which nodes have listeners on them" >>>>>>> - absolutely not. We have capturing, bubbling, hierarchical >>>>>>> event types, so we can't decide which nodes listen (in the >>>>>>> extreme case, scene can handle Event.ANY and perform actions on >>>>>>> the target node based on the event type). >>>>>>> >>>>>>> "position does not fall in the boundaries of the node" - I don't >>>>>>> think it will be very harmful. Of course it's possible for users >>>>>>> to write handlers that will be affected, but I don't think >>>>>>> it happens often, it seems quite hard to invent such handler. >>>>>>> The delivery mechanism should be absolutely fine with it, we >>>>>>> have other cases like that (for instance, dragging can be >>>>>>> delivered to a node completely out of mouse position). Of course >>>>>>> picking a 3D node in its capture zone would mean useless >>>>>>> PickResult (texture coordinates etc.) >>>>>>> >>>>>>> CSS-accessible vs. property-only - I don't have a strong >>>>>>> opinion. I agree it's rather "feel" than "look", on the other >>>>>>> hand I think there are such things already (scrollbar policy for >>>>>>> instance). >>>>>>> >>>>>>> >>>>>>> Now I'll bring another problem to the concept. Take the >>>>>>> situation from Daniel's original picture with two siblings >>>>>>> competing for the capture zones: >>>>>>> http://i.imgur.com/ELWamYp.png >>>>>>> Put each of the red children to its own group - they are no >>>>>>> longer siblings, but the competition should still work. >>>>>>> >>>>>>> The following may be a little wild, but anyway - have one of the >>>>>>> siblings with capture zone and the other one without it, the one >>>>>>> without it partly covering the one with it. Wouldn't it be great >>>>>>> if the capture zone was present around the visible part of the >>>>>>> node (reaching over the edge of the upper node)? I think it >>>>>>> would be really intuitive (fuzzy picking of what you see), but >>>>>>> it's getting pretty complicated. >>>>>>> >>>>>>> From now on, I'll call the node with enabled capture zone >>>>>>> "touch sensitive". >>>>>>> >>>>>>> The only algorithm I can think of that would provide great >>>>>>> results is: >>>>>>> - Pick normally at the center. If the picked node is touch >>>>>>> sensitive, return it. >>>>>>> - Otherwise, run picking for each pixel in the touch area, find >>>>>>> the closest one belonging to a touch sensitive node and return >>>>>>> that node (if there is none, then of course return the node at >>>>>>> the center). >>>>>>> >>>>>>> Obviously we can hardly do so many picking rounds. But it can be >>>>>>> significantly optimized: >>>>>>> - Perform the area picking in one pass, filling an array - >>>>>>> representing pixels - by the nodes picked on them >>>>>>> - Descend only when bounds intersect with the picking area >>>>>>> - Don't look farther from the center than the already found best >>>>>>> match >>>>>>> - Don't look at pixels with already picked node >>>>>>> - For many nodes (rectangular, circular, with pickOnBounds >>>>>>> etc.), instead of testing containment many times, we can quickly >>>>>>> tell the intersection with the picking area >>>>>>> - Perhaps also checking each nth pixel would be sufficient >>>>>>> >>>>>>> This algorithm should be reasonably easy to code and very robust >>>>>>> (not suffering from various node-arrangement corner-cases), but >>>>>>> I'm still not sure about the performance (depends mostly on >>>>>>> the capture zone size - 30-pixel zones may result in calling >>>>>>> contains() nearly thousand times which might kill it). But >>>>>>> perhaps (hopefully) it can be perfected. Right now I can't see >>>>>>> any other algorithm that would work well and would result in >>>>>>> more efficient implementation (the search for overlapping nodes >>>>>>> and closest borders etc. is going to be pretty complicated as >>>>>>> well, if it's even possible to make it work). >>>>>>> >>>>>>> What do you think? Any better ideas? >>>>>>> >>>>>>> Pavel >>>>>>> >>>>>>> >>>>>>> On 13.11.2013 22:09, Daniel Blaukopf wrote: >>>>>>>> Hi Seeon, >>>>>>>> >>>>>>>> Summarizing our face to face talk today: >>>>>>>> >>>>>>>> I see that the case described by Pavel is indeed a problem and >>>>>>>> agree with you that not every node needs to be a participant in >>>>>>>> the competition for which grabs touch input. However I?m not >>>>>>>> keen on the idea of changing behavior based on which nodes have >>>>>>>> listeners on them. CSS seems like the place to do this (as I >>>>>>>> think Pavel suggested earlier). In Pavel?s case, either: >>>>>>>> - the upper child node has the CSS tag saying ?enable >>>>>>>> extended capture zone? and the lower child doesn?t: then the >>>>>>>> upper child?s capture zone will extend over the lower child >>>>>>>> - or both will have the CSS tag, in which case the upper >>>>>>>> child?s capture zone would be competing with the lower child?s >>>>>>>> capture zone. As in any other competition between capture zones >>>>>>>> the nearest node should win. The effect would be the same as if >>>>>>>> the regular matching rules were applied on the upper child. It >>>>>>>> would also be the same as if only the lower child had an >>>>>>>> extended capture zone. However, I?d consider this case to be >>>>>>>> bad UI programming. >>>>>>>> >>>>>>>> We agreed that ?in a competition between capture zones, pick >>>>>>>> the node whose border is nearest the touch point? was a >>>>>>>> reasonable way to resolve things. >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Daniel >>>>>>>> >>>>>>>> On Nov 13, 2013, at 12:31 PM, Seeon Birger >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi Pavel, >>>>>>>>> >>>>>>>>> Your example of 'child over child' is an interesting case >>>>>>>>> which raises some design aspects of the desired picking >>>>>>>>> algorithm: >>>>>>>>> 1. Which node to pick when one node has a 'strict >>>>>>>>> containership' over the touch center and the other node only >>>>>>>>> has a fuzzy containership (the position falls in the fuzzy area). >>>>>>>>> 2. Accounting for z-order for extended capture zone area. >>>>>>>>> 3. Accounting for parent-child relationship. >>>>>>>>> >>>>>>>>> Referring to your 'child over child' example: >>>>>>>>> http://i.imgur.com/e92qEJA.jpg >>>>>>>>> >>>>>>>>> The conflict would arise were touch point center position >>>>>>>>> falls in the capture zone area of child2 but also clearly >>>>>>>>> falls in the strict bounds of child1. >>>>>>>>> Generally, when two control nodes compete on same touch event >>>>>>>>> (e.g. child1 & child2 in Daniel's diagram), it seems that we >>>>>>>>> would like to give priority to "strict containership" over >>>>>>>>> "fuzzy containership". >>>>>>>>> But in your case it's probably not the desired behavior. >>>>>>>>> >>>>>>>>> Also note that in the general case there's almost always >>>>>>>>> exists come container/background node that strictly contains >>>>>>>>> the touch point, but it would probably be an ancestor of the >>>>>>>>> child node, so the usual parent-child relationship order will >>>>>>>>> give preference to the child. >>>>>>>>> >>>>>>>>> One way out it is to honor the usual z-order for the extended >>>>>>>>> area of child2, so when a touch center hits the fuzzy area of >>>>>>>>> child2, then child2 would be picked. >>>>>>>>> >>>>>>>>> But is not ideal for Daniel's example: >>>>>>>>> http://i.imgur.com/ELWamYp.png >>>>>>>>> >>>>>>>>> where the 2 nodes don't strictly overlap, but their capture >>>>>>>>> zones do. Preferring one child by z-order (which matches the >>>>>>>>> order of children in the parent) is not natural here. And we >>>>>>>>> might better choose the node which is "closer" >>>>>>>>> To the touch point. >>>>>>>>> >>>>>>>>> So to summarize I suggest this rough picking algorithm: >>>>>>>>> 1. Choose all uppermost nodes which are not transparent to >>>>>>>>> mouse events and contain the touch point center either >>>>>>>>> strictly or by their capture zone. >>>>>>>>> 2. Remove all nodes that is strictly overlapped by another >>>>>>>>> node and is below that node by z-order. >>>>>>>>> 3. Out of those left choose the "closest" node. (the concept >>>>>>>>> of "closet" should employ some calculation which might not be >>>>>>>>> trivial in the general case). >>>>>>>>> 4. Once a node has been picked, we follow the usual node chain >>>>>>>>> list for event processing. >>>>>>>>> >>>>>>>>> Care must be taken so we not break the current model for event >>>>>>>>> processing. For example, if a node is picked by its capture >>>>>>>>> zone, it means that the position does not fall in the >>>>>>>>> boundaries of the node, so existing event handling code that >>>>>>>>> relies on that would break. So I think the capture zone >>>>>>>>> feature should be selectively enabled for certain type of >>>>>>>>> nodes such buttons or other classic controls. >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> Seeon >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -----Original Message----- >>>>>>>>> From: Pavel Safrata >>>>>>>>> Sent: Tuesday, November 12, 2013 1:11 PM >>>>>>>>> To: Daniel Blaukopf >>>>>>>>> Cc: OpenJFX >>>>>>>>> Subject: Re: discussion about touch events >>>>>>>>> >>>>>>>>> (Now my answer using external link) >>>>>>>>> >>>>>>>>> Hello Daniel, >>>>>>>>> this is quite similar to my idea described earlier. The major >>>>>>>>> difference is the "fair division of capture zones" among >>>>>>>>> siblings. It's an interesting idea, let's explore it. What >>>>>>>>> pops first is that children can also overlap. So I think it >>>>>>>>> would behave like this (green capture zones >>>>>>>>> omitted): >>>>>>>>> >>>>>>>>> Child in parent vs. Child over child: >>>>>>>>> http://i.imgur.com/e92qEJA.jpg >>>>>>>>> >>>>>>>>> ..wouldn't it? From user's point of view this seems confusing, >>>>>>>>> both cases look the same but behave differently. Note that in >>>>>>>>> the case on the right, the parent may be still the same, >>>>>>>>> developer only adds a fancy background as a new child and >>>>>>>>> suddenly the red child can't be hit that easily. What do you >>>>>>>>> think? Is it an issue? Or would it not behave this way? >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> Pavel >>>>>>>>> >>>>>>>>> On 12.11.2013 12:06, Daniel Blaukopf wrote: >>>>>>>>>> (My original message didn't get through to openjfx-dev >>>>>>>>>> because I used >>>>>>>>>> inline images. I've replaced those images with external links) >>>>>>>>>> >>>>>>>>>> On Nov 11, 2013, at 11:30 PM, Pavel Safrata >>>>>>>>>> >>>>>>>>> > wrote: >>>>>>>>>> >>>>>>>>>>> On 11.11.2013 17:49, Tomas Mikula wrote: >>>>>>>>>>>> On Mon, Nov 11, 2013 at 1:28 PM, Philipp D?rfler >>>>>>>>>>>> > wrote: >>>>>>>>>>>>> I see the need to be aware of the area that is covered by >>>>>>>>>>>>> fingers >>>>>>>>>>>>> rather than just considering that area's center point. >>>>>>>>>>>>> I'd guess that this adds a new layer of complexity, >>>>>>>>>>>>> though. For >>>>>>>>>>>>> instance: >>>>>>>>>>>>> Say we have a button on some background and both the >>>>>>>>>>>>> background and >>>>>>>>>>>>> the button do have an onClick listener attached. If you >>>>>>>>>>>>> tap the >>>>>>>>>>>>> button in a way that the touched area's center point is >>>>>>>>>>>>> outside of >>>>>>>>>>>>> the buttons boundaries - what event will be fired? Will >>>>>>>>>>>>> both the >>>>>>>>>>>>> background and the button receive a click event? Or just >>>>>>>>>>>>> either the >>>>>>>>>>>>> background or the button exclusively? Will there be a new >>>>>>>>>>>>> event >>>>>>>>>>>>> type which gets fired in case of such area-based taps? >>>>>>>>>>>>> >>>>>>>>>>>>> My suggestion would therefore be to have an additional >>>>>>>>>>>>> area tap >>>>>>>>>>>>> event which gives precise information about diameter and >>>>>>>>>>>>> center of >>>>>>>>>>>>> the tap. Besides that there should be some kind of >>>>>>>>>>>>> "priority" for >>>>>>>>>>>>> choosing which node's onClick will be called. >>>>>>>>>>>> What about picking the one that is closest to the center of >>>>>>>>>>>> the touch? >>>>>>>>>>>> >>>>>>>>>>> There is always something directly on the center of the touch >>>>>>>>>>> (possibly the scene background, but it can have event >>>>>>>>>>> handlers too). >>>>>>>>>>> That's what we pick right now. >>>>>>>>>>> Pavel >>>>>>>>>> What Seeon, Assaf and I discussed earlier was building some >>>>>>>>>> fuzziness >>>>>>>>>> into the node picker so that instead of each node capturing only >>>>>>>>>> events directly on top of it: >>>>>>>>>> >>>>>>>>>> Non-fuzzy picker: http://i.imgur.com/uszql8V.png >>>>>>>>>> >>>>>>>>>> ..nodes at each level of the hierarchy would capture events >>>>>>>>>> beyond >>>>>>>>>> their borders as well: >>>>>>>>>> >>>>>>>>>> Fuzzy picker: http://i.imgur.com/ELWamYp.png >>>>>>>>>> >>>>>>>>>> In the above, "Parent" would capture touch events within a >>>>>>>>>> certain >>>>>>>>>> radius around it, as would its children "Child 1" and "Child >>>>>>>>>> 2". Since >>>>>>>>>> "Child 1" and "Child 2" are peers, they would have a sharp >>>>>>>>>> division >>>>>>>>>> between them, a watershed on either side of which events >>>>>>>>>> would go to >>>>>>>>>> one child node or the other. This would also apply if the >>>>>>>>>> peer nodes >>>>>>>>>> were further apart; they would divide the no-man's land >>>>>>>>>> between them. >>>>>>>>>> Of course this no-man's land would be part of "Parent" and >>>>>>>>>> could could >>>>>>>>>> be touch-sensitive - but we won't consider "Parent" as an >>>>>>>>>> event target >>>>>>>>>> until we have ruled out using one of its children's extended >>>>>>>>>> capture >>>>>>>>>> zones. >>>>>>>>>> >>>>>>>>>> The capture radius could either be a styleable property on >>>>>>>>>> the nodes, >>>>>>>>>> or could be determined by the X and Y size of a touch point as >>>>>>>>>> reported by the touch screen. We'd still be reporting a touch >>>>>>>>>> point, >>>>>>>>>> not a touch area. The touch target would be, as now, a single >>>>>>>>>> node. >>>>>>>>>> >>>>>>>>>> This would get us more reliable touch capture at leaf nodes >>>>>>>>>> of the >>>>>>>>>> node hierarchy at the expense of it being harder to tap the >>>>>>>>>> background. This is likely to be a good trade-off. >>>>>>>>>> >>>>>>>>>> Daniel >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>>> Tomas >>>>>>>>>>>> >>>>>>>>>>>>> Maybe the draw order / order in the scene graph / z buffer >>>>>>>>>>>>> value >>>>>>>>>>>>> might be sufficient to model what would happen in the real, >>>>>>>>>>>>> physical world. >>>>>>>>>>>>> Am 11.11.2013 13:05 schrieb "Assaf Yavnai" >>>>>>>>>>>>> >>>>>>>>>>>> >: >>>>>>>>>>>>> >>>>>>>>>>>>>> The ascii sketch looked fine on my screen before I sent >>>>>>>>>>>>>> the mail >>>>>>>>>>>>>> :( I hope the idea is clear from the text (now in the >>>>>>>>>>>>>> reply dialog >>>>>>>>>>>>>> its also look good) >>>>>>>>>>>>>> >>>>>>>>>>>>>> Assaf >>>>>>>>>>>>>> On 11/11/2013 12:51 PM, Assaf Yavnai wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Hi Guys, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I hope that I'm right about this, but it seems that >>>>>>>>>>>>>>> touch events >>>>>>>>>>>>>>> in glass are translated (and reported) as a single point >>>>>>>>>>>>>>> events >>>>>>>>>>>>>>> (x & y) without an area, like pointer events. >>>>>>>>>>>>>>> AFAIK, the controls response for touch events same as mouse >>>>>>>>>>>>>>> events (using the same pickers) and as a result a button >>>>>>>>>>>>>>> press, >>>>>>>>>>>>>>> for example, will only triggered if the x & y of the >>>>>>>>>>>>>>> touch event >>>>>>>>>>>>>>> is within the control area. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> This means that small controls, or even quite large >>>>>>>>>>>>>>> controls >>>>>>>>>>>>>>> (like buttons with text) will often get missed because >>>>>>>>>>>>>>> the 'strict' >>>>>>>>>>>>>>> node picking, >>>>>>>>>>>>>>> although from a UX point of view it is strange as the user >>>>>>>>>>>>>>> clearly pressed on a node (the finger was clearly above >>>>>>>>>>>>>>> it) but >>>>>>>>>>>>>>> nothing happens... >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> With current implementation its hard to use small >>>>>>>>>>>>>>> features in >>>>>>>>>>>>>>> controls, like scrollbars in lists, and it almost >>>>>>>>>>>>>>> impossible to >>>>>>>>>>>>>>> implement something like 'screen navigator' (the series >>>>>>>>>>>>>>> of small >>>>>>>>>>>>>>> dots in the bottom of a smart phones screen which allow >>>>>>>>>>>>>>> you to >>>>>>>>>>>>>>> jump directly to a 'far away' >>>>>>>>>>>>>>> screen) >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> To illustrate it consider the bellow low resolution >>>>>>>>>>>>>>> sketch, where >>>>>>>>>>>>>>> the "+" >>>>>>>>>>>>>>> is the actual x,y reported, the ellipse is the finger >>>>>>>>>>>>>>> touch area >>>>>>>>>>>>>>> and the rectangle is the node. >>>>>>>>>>>>>>> With current implementation this type of tap will not >>>>>>>>>>>>>>> trigger the >>>>>>>>>>>>>>> node handlers >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> __ >>>>>>>>>>>>>>> / \ >>>>>>>>>>>>>>> / \ >>>>>>>>>>>>>>> ___/ __+_ \___ in this scenario the 'button' >>>>>>>>>>>>>>> will not get >>>>>>>>>>>>>>> pressed >>>>>>>>>>>>>>> | \ / | >>>>>>>>>>>>>>> |___\ ___ / __ | >>>>>>>>>>>>>>> \___/ >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> If your smart phone support it, turn on the touch debugging >>>>>>>>>>>>>>> options in settings and see that each point translate to >>>>>>>>>>>>>>> a quite >>>>>>>>>>>>>>> large circle and what ever fall in it, or reasonably >>>>>>>>>>>>>>> close to it, >>>>>>>>>>>>>>> get picked. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I want to start a discussion to understand if my >>>>>>>>>>>>>>> perspective is >>>>>>>>>>>>>>> accurate and to understand what can be done, if any, for >>>>>>>>>>>>>>> the >>>>>>>>>>>>>>> coming release or the next one. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> We might use recently opened RT-34136 >>>>>>>>>>>>>>> >>>>>>>>>>>>>> com/browse/RT-34136> for logging this, or open a new >>>>>>>>>>>>>>> JIRA for it >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>> Assaf >>>>> >>>> >>> >> > From richard.bair at oracle.com Mon Dec 16 08:30:36 2013 From: richard.bair at oracle.com (Richard Bair) Date: Mon, 16 Dec 2013 08:30:36 -0800 Subject: [announce] InhiBeans: mitigate redundant recalculations In-Reply-To: References: Message-ID: <9ADEA3F6-18D2-43D1-8C48-B0217E40DEAB@oracle.com> Have you looked at https://github.com/Netflix/RxJava by chance? I've been dying to see somebody do an RxJava in JavaFX ever since devoxx and it looks like you may have inadvertently started down that path :-). Richard On Dec 16, 2013, at 8:09 AM, Tomas Mikula wrote: > On Mon, Dec 16, 2013 at 1:47 AM, Tomas Mikula wrote: >> On Mon, Dec 16, 2013 at 1:07 AM, Scott Palmer wrote: >>> Interesting, no worse than John's pattern though. >>> I thought of using a try/finally to make sure release was called and that >>> naturally lead to thinking of try-with-resources, where the "resource" in >>> this case is a binding of some sort (or a wrapper around a binding) that is >>> invalidated on close() if needed. >> >> That is an interesting idea. I didn't intend blockWhile() to be safe >> with respect to exceptions, but merely >> >> void blockWhile(Runnable r) { >> block(); >> r.run(); >> release(); >> } >> >> Enhancement you are suggesting could be fleshed out as block() >> returning an AutoCloseable and the usage would be >> >> try(AutoCloseable a = relaxedArea.block()) { >> obj.setWidth(w); >> obj.setHeight(h); >> } > > OK, done. I implemented both: > 1. added the blockWhile() method; > 2. made bindings AutoCloseable, and block() returns `this`. > > Tomas From tomas.mikula at gmail.com Mon Dec 16 09:19:13 2013 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Mon, 16 Dec 2013 18:19:13 +0100 Subject: [announce] InhiBeans: mitigate redundant recalculations In-Reply-To: <9ADEA3F6-18D2-43D1-8C48-B0217E40DEAB@oracle.com> References: <9ADEA3F6-18D2-43D1-8C48-B0217E40DEAB@oracle.com> Message-ID: As a matter of fact, I have. Only to the extent of the "Principles of Reactive Programming" [1] course that is currently in progress on Coursera. From what I have seen so far, it's all about asynchronous composition (with emphasis on both "asynchronous" and "composition"). I didn't see it addressing this specific problem of multiple redundant updates, but I might be wrong. The truth is, this problem doesn't even exist if you don't have any eager observers (i.e. when you don't ever attach any ChangeListeners, and InvalidationListeners only propagate invalidation and never require the value to be recomputed). The problem is, although you can design your component without any eager evaluation (JavaFX bindings are already composed this way), you then bind a Label.textProperty() to the end of a binding chain and it all becomes eager. Regards, Tomas [1] https://www.coursera.org/course/reactive On Mon, Dec 16, 2013 at 5:30 PM, Richard Bair wrote: > Have you looked at https://github.com/Netflix/RxJava by chance? I've been dying to see somebody do an RxJava in JavaFX ever since devoxx and it looks like you may have inadvertently started down that path :-). > > Richard > > On Dec 16, 2013, at 8:09 AM, Tomas Mikula wrote: > >> On Mon, Dec 16, 2013 at 1:47 AM, Tomas Mikula wrote: >>> On Mon, Dec 16, 2013 at 1:07 AM, Scott Palmer wrote: >>>> Interesting, no worse than John's pattern though. >>>> I thought of using a try/finally to make sure release was called and that >>>> naturally lead to thinking of try-with-resources, where the "resource" in >>>> this case is a binding of some sort (or a wrapper around a binding) that is >>>> invalidated on close() if needed. >>> >>> That is an interesting idea. I didn't intend blockWhile() to be safe >>> with respect to exceptions, but merely >>> >>> void blockWhile(Runnable r) { >>> block(); >>> r.run(); >>> release(); >>> } >>> >>> Enhancement you are suggesting could be fleshed out as block() >>> returning an AutoCloseable and the usage would be >>> >>> try(AutoCloseable a = relaxedArea.block()) { >>> obj.setWidth(w); >>> obj.setHeight(h); >>> } >> >> OK, done. I implemented both: >> 1. added the blockWhile() method; >> 2. made bindings AutoCloseable, and block() returns `this`. >> >> Tomas > From John_Smith at symantec.com Mon Dec 16 10:31:34 2013 From: John_Smith at symantec.com (John Smith) Date: Mon, 16 Dec 2013 10:31:34 -0800 Subject: [announce] InhiBeans: mitigate redundant recalculations In-Reply-To: References: <9ADEA3F6-18D2-43D1-8C48-B0217E40DEAB@oracle.com> Message-ID: <411E73D23DEC4C46BA48F2B6D8BF3D22168DC98CA3@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> Perhaps reactive programming is different from the problem Tomas is solving, but I think a research project which combined some of the principles of functional reactive programming (http://lampwww.epfl.ch/~imaier/pub/DeprecatingObserversTR2010.pdf) with JavaFX properties using Java 8 lambdas and streams would be quite interesting and perhaps very useful. John -----Original Message----- From: openjfx-dev-bounces at openjdk.java.net [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Tomas Mikula Sent: Monday, December 16, 2013 9:19 AM To: Richard Bair Cc: openjfx-dev at openjdk.java.net Subject: Re: [announce] InhiBeans: mitigate redundant recalculations As a matter of fact, I have. Only to the extent of the "Principles of Reactive Programming" [1] course that is currently in progress on Coursera. From what I have seen so far, it's all about asynchronous composition (with emphasis on both "asynchronous" and "composition"). I didn't see it addressing this specific problem of multiple redundant updates, but I might be wrong. The truth is, this problem doesn't even exist if you don't have any eager observers (i.e. when you don't ever attach any ChangeListeners, and InvalidationListeners only propagate invalidation and never require the value to be recomputed). The problem is, although you can design your component without any eager evaluation (JavaFX bindings are already composed this way), you then bind a Label.textProperty() to the end of a binding chain and it all becomes eager. Regards, Tomas [1] https://www.coursera.org/course/reactive On Mon, Dec 16, 2013 at 5:30 PM, Richard Bair wrote: > Have you looked at https://github.com/Netflix/RxJava by chance? I've been dying to see somebody do an RxJava in JavaFX ever since devoxx and it looks like you may have inadvertently started down that path :-). > > Richard > > On Dec 16, 2013, at 8:09 AM, Tomas Mikula wrote: > >> On Mon, Dec 16, 2013 at 1:47 AM, Tomas Mikula wrote: >>> On Mon, Dec 16, 2013 at 1:07 AM, Scott Palmer wrote: >>>> Interesting, no worse than John's pattern though. >>>> I thought of using a try/finally to make sure release was called >>>> and that naturally lead to thinking of try-with-resources, where >>>> the "resource" in this case is a binding of some sort (or a wrapper >>>> around a binding) that is invalidated on close() if needed. >>> >>> That is an interesting idea. I didn't intend blockWhile() to be safe >>> with respect to exceptions, but merely >>> >>> void blockWhile(Runnable r) { >>> block(); >>> r.run(); >>> release(); >>> } >>> >>> Enhancement you are suggesting could be fleshed out as block() >>> returning an AutoCloseable and the usage would be >>> >>> try(AutoCloseable a = relaxedArea.block()) { >>> obj.setWidth(w); >>> obj.setHeight(h); >>> } >> >> OK, done. I implemented both: >> 1. added the blockWhile() method; >> 2. made bindings AutoCloseable, and block() returns `this`. >> >> Tomas > From richard.bair at oracle.com Mon Dec 16 11:34:25 2013 From: richard.bair at oracle.com (Richard Bair) Date: Mon, 16 Dec 2013 11:34:25 -0800 Subject: [announce] InhiBeans: mitigate redundant recalculations In-Reply-To: <411E73D23DEC4C46BA48F2B6D8BF3D22168DC98CA3@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> References: <9ADEA3F6-18D2-43D1-8C48-B0217E40DEAB@oracle.com> <411E73D23DEC4C46BA48F2B6D8BF3D22168DC98CA3@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> Message-ID: <11A6B08E-2812-449A-AC18-1CC756A62070@oracle.com> I agree, that's more of what I was thinking. On Dec 16, 2013, at 10:31 AM, John Smith wrote: > Perhaps reactive programming is different from the problem Tomas is solving, but I think a research project which combined some of the principles of functional reactive programming (http://lampwww.epfl.ch/~imaier/pub/DeprecatingObserversTR2010.pdf) with JavaFX properties using Java 8 lambdas and streams would be quite interesting and perhaps very useful. > > John > > -----Original Message----- > From: openjfx-dev-bounces at openjdk.java.net [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Tomas Mikula > Sent: Monday, December 16, 2013 9:19 AM > To: Richard Bair > Cc: openjfx-dev at openjdk.java.net > Subject: Re: [announce] InhiBeans: mitigate redundant recalculations > > As a matter of fact, I have. Only to the extent of the "Principles of Reactive Programming" [1] course that is currently in progress on Coursera. From what I have seen so far, it's all about asynchronous composition (with emphasis on both "asynchronous" and "composition"). > I didn't see it addressing this specific problem of multiple redundant updates, but I might be wrong. The truth is, this problem doesn't even exist if you don't have any eager observers (i.e. when you don't ever attach any ChangeListeners, and InvalidationListeners only propagate invalidation and never require the value to be recomputed). The problem is, although you can design your component without any eager evaluation (JavaFX bindings are already composed this way), you then bind a Label.textProperty() to the end of a binding chain and it all becomes eager. > > Regards, > Tomas > > [1] https://www.coursera.org/course/reactive > > On Mon, Dec 16, 2013 at 5:30 PM, Richard Bair wrote: >> Have you looked at https://github.com/Netflix/RxJava by chance? I've been dying to see somebody do an RxJava in JavaFX ever since devoxx and it looks like you may have inadvertently started down that path :-). >> >> Richard >> >> On Dec 16, 2013, at 8:09 AM, Tomas Mikula wrote: >> >>> On Mon, Dec 16, 2013 at 1:47 AM, Tomas Mikula wrote: >>>> On Mon, Dec 16, 2013 at 1:07 AM, Scott Palmer wrote: >>>>> Interesting, no worse than John's pattern though. >>>>> I thought of using a try/finally to make sure release was called >>>>> and that naturally lead to thinking of try-with-resources, where >>>>> the "resource" in this case is a binding of some sort (or a wrapper >>>>> around a binding) that is invalidated on close() if needed. >>>> >>>> That is an interesting idea. I didn't intend blockWhile() to be safe >>>> with respect to exceptions, but merely >>>> >>>> void blockWhile(Runnable r) { >>>> block(); >>>> r.run(); >>>> release(); >>>> } >>>> >>>> Enhancement you are suggesting could be fleshed out as block() >>>> returning an AutoCloseable and the usage would be >>>> >>>> try(AutoCloseable a = relaxedArea.block()) { >>>> obj.setWidth(w); >>>> obj.setHeight(h); >>>> } >>> >>> OK, done. I implemented both: >>> 1. added the blockWhile() method; >>> 2. made bindings AutoCloseable, and block() returns `this`. >>> >>> Tomas >> From anthony.petrov at oracle.com Mon Dec 16 11:37:53 2013 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Mon, 16 Dec 2013 23:37:53 +0400 Subject: [ListView] `b.bind(a)` not behaviorally equivalent to `a.addListener(o -> b.set(a.get()))` In-Reply-To: References: Message-ID: <52AF5691.4030403@oracle.com> Filing a bug never hurts. We'll either fix it, or close it and explain why it's not a bug then. -- best regards, Anthony On 12/13/2013 11:17 PM, Tomas Mikula wrote: > I guess my main question is: should I file a bug on ListView? > > Tomas > > On Fri, Dec 13, 2013 at 8:15 PM, Tomas Mikula wrote: >> I just came across a strange case when these two are not equivalent. >> Maybe that is no surprise to you, but it was to me. The case I >> stumbled upon most likely has to do with ListView internals. >> >> Substitute >> a := ListView.widthProperty() >> b := ListCell.prefWidthProperty() >> >> and the code that demonstrates the difference: >> >> >> public class Test extends Application { >> >> private static class MyCell extends ListCell { >> public MyCell(ListView lv) { >> setMaxWidth(Region.USE_PREF_SIZE); >> >> // !!! comment out exactly one of the following >> // !!! two lines to demonstrate the difference >> prefWidthProperty().bind(lv.widthProperty()); >> lv.widthProperty().addListener(o -> setPrefWidth(lv.getWidth())); >> } >> >> @Override >> protected void updateItem(String item, boolean empty) { >> super.updateItem(item, empty); >> setGraphic(empty ? null : new TextFlow(new Text(item))); >> } >> } >> >> @Override >> public void start(Stage stage) { >> ListView listView = new ListView<>(); >> listView.setCellFactory(lv -> new MyCell(lv)); >> listView.getItems().add("This is a very long line that needs >> to be wrapped"); >> >> StackPane stack = new StackPane(); >> stack.getChildren().add(listView); >> Scene scene = new Scene(stack, 200, 100); >> stage.setScene(scene); >> stage.show(); >> } >> >> public static void main(String[] args) { >> launch(args); >> } >> } >> >> >> When I run the "bind" version, the text shows up wrapped. >> When I run the "addListener" version, the text shows up in one long line. >> >> Do you think this is a bug in ListView, or is there a reasonable explanation? >> >> Just for the record, I consider the "wrapping" behavior to be the correct one. >> >> >> My *speculation* about the possible cause follows: >> >> The only case I could come up with when >> A) b.bind(a) >> and >> B) a.addListener(o -> b.set(a.get())) >> are effectively different is when both of these conditions hold: >> 1) there is an invalidation listener set on b that causes b to become >> valid (e.g. calls b.get()); and >> 2) a is invalidated twice in a row, but recomputes to the same value each time. >> >> Now the scenarios for A) and B) differ: >> >> Scenario A (b.bind(a)): >> - a is invalidated for the first time >> - b's invalidation listener is called for the first time >> - b is now valid >> - a is invalidated for the second time >> - b's invalidation listener is called for the *SECOND* time >> >> Scenario B (a.addListener(o -> b.set(a.get()))): >> - a is invalidated for the first time >> - b is set to a.get() = x and b's invalidation listener is called for >> the first time >> - b is now valid >> - a is invalidated for the second time >> - b is set to a.get() = x and b's invalidation listener is *NOT* >> called for the second time, because b's value did not change >> >> In scenario A, b's invalidation listener is called twice, while in >> scenario B just once. If "weird things" are happening in this >> invalidation listener, this can result in different behavior. >> >> Now, if b is ListCell.prefWidthProperty(), scenario A and scenario B >> cause it to be invalidated different number of times, which, my >> *speculation*, could yield different behavior. >> This is how far I got. >> >> Cheers, >> Tomas From steve.x.northover at oracle.com Mon Dec 16 12:49:24 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Mon, 16 Dec 2013 15:49:24 -0500 Subject: accessibility In-Reply-To: <52AD9D77.4050203@poczta.onet.pl> References: <52AD9919.5010706@poczta.onet.pl> <52AD9D77.4050203@poczta.onet.pl> Message-ID: <52AF6754.8020805@oracle.com> Hi Michael, Accessibility has been on and off the radar for OpenJFX for quite a while now. Some preliminary work was done, but a final implementation and API was never reached. Further, the people who were working on it either left the company or left to work some place else. The thing that makes accessibility difficult is that it is platform specific, has a big API and touches many different component areas. If you think about it, in the case of a visually impaired user, accessibility is presenting a widget system to be navigated that is independent of any output. Although nothing is official, we are looking to deliver accessibility in JDK9. If something is ready earlier, it is possible that it could appear in an earlier release. Thanks for being so patient with us. Steve On 2013-12-15 7:15 AM, Micha? Zegan wrote: > Hello, > > I have the following question: > Does javafx support or plan to support accessibility? > Another question is: if it is planned, then for what release? > > From tomas.mikula at gmail.com Mon Dec 16 12:51:19 2013 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Mon, 16 Dec 2013 21:51:19 +0100 Subject: [ListView] `b.bind(a)` not behaviorally equivalent to `a.addListener(o -> b.set(a.get()))` In-Reply-To: <52AF5691.4030403@oracle.com> References: <52AF5691.4030403@oracle.com> Message-ID: Never mind, b.bind(a); should not be equivalent to a.addListener(o -> b.set(a.get())); in the first place, but rather to a.addListener(o -> b.set(a.get())); b.set(a.get()); // don't forget this! When I fixed my example, I'm not observing any difference in behavior. I'm still not getting the behavior I want, but due to https://javafx-jira.kenai.com/browse/RT-34897. Thanks, Tomas On Mon, Dec 16, 2013 at 8:37 PM, Anthony Petrov wrote: > Filing a bug never hurts. We'll either fix it, or close it and explain why > it's not a bug then. > > -- > best regards, > Anthony > > > On 12/13/2013 11:17 PM, Tomas Mikula wrote: >> >> I guess my main question is: should I file a bug on ListView? >> >> Tomas >> >> On Fri, Dec 13, 2013 at 8:15 PM, Tomas Mikula >> wrote: >>> >>> I just came across a strange case when these two are not equivalent. >>> Maybe that is no surprise to you, but it was to me. The case I >>> stumbled upon most likely has to do with ListView internals. >>> >>> Substitute >>> a := ListView.widthProperty() >>> b := ListCell.prefWidthProperty() >>> >>> and the code that demonstrates the difference: >>> >>> >>> public class Test extends Application { >>> >>> private static class MyCell extends ListCell { >>> public MyCell(ListView lv) { >>> setMaxWidth(Region.USE_PREF_SIZE); >>> >>> // !!! comment out exactly one of the following >>> // !!! two lines to demonstrate the difference >>> prefWidthProperty().bind(lv.widthProperty()); >>> lv.widthProperty().addListener(o -> >>> setPrefWidth(lv.getWidth())); >>> } >>> >>> @Override >>> protected void updateItem(String item, boolean empty) { >>> super.updateItem(item, empty); >>> setGraphic(empty ? null : new TextFlow(new Text(item))); >>> } >>> } >>> >>> @Override >>> public void start(Stage stage) { >>> ListView listView = new ListView<>(); >>> listView.setCellFactory(lv -> new MyCell(lv)); >>> listView.getItems().add("This is a very long line that needs >>> to be wrapped"); >>> >>> StackPane stack = new StackPane(); >>> stack.getChildren().add(listView); >>> Scene scene = new Scene(stack, 200, 100); >>> stage.setScene(scene); >>> stage.show(); >>> } >>> >>> public static void main(String[] args) { >>> launch(args); >>> } >>> } >>> >>> >>> When I run the "bind" version, the text shows up wrapped. >>> When I run the "addListener" version, the text shows up in one long line. >>> >>> Do you think this is a bug in ListView, or is there a reasonable >>> explanation? >>> >>> Just for the record, I consider the "wrapping" behavior to be the correct >>> one. >>> >>> >>> My *speculation* about the possible cause follows: >>> >>> The only case I could come up with when >>> A) b.bind(a) >>> and >>> B) a.addListener(o -> b.set(a.get())) >>> are effectively different is when both of these conditions hold: >>> 1) there is an invalidation listener set on b that causes b to become >>> valid (e.g. calls b.get()); and >>> 2) a is invalidated twice in a row, but recomputes to the same value each >>> time. >>> >>> Now the scenarios for A) and B) differ: >>> >>> Scenario A (b.bind(a)): >>> - a is invalidated for the first time >>> - b's invalidation listener is called for the first time >>> - b is now valid >>> - a is invalidated for the second time >>> - b's invalidation listener is called for the *SECOND* time >>> >>> Scenario B (a.addListener(o -> b.set(a.get()))): >>> - a is invalidated for the first time >>> - b is set to a.get() = x and b's invalidation listener is called for >>> the first time >>> - b is now valid >>> - a is invalidated for the second time >>> - b is set to a.get() = x and b's invalidation listener is *NOT* >>> called for the second time, because b's value did not change >>> >>> In scenario A, b's invalidation listener is called twice, while in >>> scenario B just once. If "weird things" are happening in this >>> invalidation listener, this can result in different behavior. >>> >>> Now, if b is ListCell.prefWidthProperty(), scenario A and scenario B >>> cause it to be invalidated different number of times, which, my >>> *speculation*, could yield different behavior. >>> This is how far I got. >>> >>> Cheers, >>> Tomas From steve.x.northover at oracle.com Mon Dec 16 15:06:11 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Mon, 16 Dec 2013 18:06:11 -0500 Subject: (In)Sanity Testing Mondays In-Reply-To: <52AB6505.300@oracle.com> References: <52AB6505.300@oracle.com> Message-ID: <52AF8763.5080603@oracle.com> Hi all, So we tested and found problems. Let's talk about our findings tomorrow and summarize the results to the list. It's likely faster than back and forth email or posts. I didn't see anyone (in)sane enough in the community taking part. If you tested, you get an opinion on the process. Committers: Tomorrow is the last meeting for the year. We won't meet Christmas or New Years Eve. Even I am not that horrible. "You can't fool me. There ain't no Sanity Clause!" Steve On 2013-12-13 2:50 PM, Stephen F Northover wrote: > Hello all, > > As discussed at the committer meetings earlier this week, starting > next week we are going to try out "(In)Sanity Testing Mondays". The > community is invited to join in. > > The goal here is to improve our overall quality substantially with a > small investment. The testing is NOT intended to take a day, or even > half a day - we are targeting 1 hour for testing each week. So clearly > this won't be a deep-dive into each test that you run, it's more of a > quick high-level sanity test. If there is a particular area you are > concerned with, please feel free to spend more time there and less in > other areas, but you do need to run each test that is assigned to you. > > On Monday morning, in your time zone, ensure that you have the latest > build and start. We will be running Ensemble and Modena and other > tests but anything is fair game. Committers will have various > assignments and platforms but these are not set in stone until the end > of time. > > You don't need to put together any type of formal report, but we > encourage everyone to be online, reading email and available by IM > while running the tests to discuss results real time as necessary. > File JIRA for any new bugs you find and call it done! Be sure to check > the One True Dashboard to see of your bug has been found already. > > https://javafx-jira.kenai.com/secure/Dashboard.jspa?selectPageId=11893 > > At the next committer meeting and on the list, we'll be discussing how > things went and how we want to modify and improve the process going > forward, so be prepared with your feedback. None of this is set in > stone, so if it doesn't go well, don't despair - we intend to tweak > this until it does work well. > > Cheers, and happy testing! > > Lisa, Kevin and Steve From hang.vo at oracle.com Mon Dec 16 16:47:30 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 17 Dec 2013 00:47:30 +0000 Subject: hg: openjfx/8u-dev/rt: Ensemble8: Fix for RT-34953 [Ensemble] Brick Breaker game is unplayable using the keyboard Message-ID: <20131217004855.504CE62D43@hg.openjdk.java.net> Changeset: 19ee893eda91 Author: Alexander Kouznetsov Date: 2013-12-16 16:33 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/19ee893eda91 Ensemble8: Fix for RT-34953 [Ensemble] Brick Breaker game is unplayable using the keyboard ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Level.java From hang.vo at oracle.com Mon Dec 16 17:03:02 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 17 Dec 2013 01:03:02 +0000 Subject: hg: openjfx/8u-dev/rt: Ensemble8: Fix for RT-31716 java.lang.IndexOutOfBoundsException in Modena Message-ID: <20131217010318.0BF8B62D44@hg.openjdk.java.net> Changeset: f339e7628486 Author: Alexander Kouznetsov Date: 2013-12-16 16:54 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/f339e7628486 Ensemble8: Fix for RT-31716 java.lang.IndexOutOfBoundsException in Modena ! apps/experiments/Modena/src/main/java/modena/Modena.java ! apps/experiments/Modena/src/main/java/modena/SamplePageHelpers.java From tomas.mikula at gmail.com Mon Dec 16 23:24:29 2013 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Tue, 17 Dec 2013 08:24:29 +0100 Subject: [announce] InhiBeans: mitigate redundant recalculations In-Reply-To: <11A6B08E-2812-449A-AC18-1CC756A62070@oracle.com> References: <9ADEA3F6-18D2-43D1-8C48-B0217E40DEAB@oracle.com> <411E73D23DEC4C46BA48F2B6D8BF3D22168DC98CA3@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> <11A6B08E-2812-449A-AC18-1CC756A62070@oracle.com> Message-ID: I had a quick look at Java 8 streams and I'm afraid they are of no use for reactive programming. The fundamental problem is that in java.util.stream, computation is driven by the stream consumer, rather than the stream source, which is a complete opposite of "reactive". On the other hand, JavaFX ObservableValue doubles as a poor man's event stream, but it would be confusing to use it as such. Not to mention that we still want map, filter, etc... on an event stream. Regards, Tomas On Mon, Dec 16, 2013 at 8:34 PM, Richard Bair wrote: > I agree, that's more of what I was thinking. > > On Dec 16, 2013, at 10:31 AM, John Smith wrote: > >> Perhaps reactive programming is different from the problem Tomas is solving, but I think a research project which combined some of the principles of functional reactive programming (http://lampwww.epfl.ch/~imaier/pub/DeprecatingObserversTR2010.pdf) with JavaFX properties using Java 8 lambdas and streams would be quite interesting and perhaps very useful. >> >> John >> >> -----Original Message----- >> From: openjfx-dev-bounces at openjdk.java.net [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Tomas Mikula >> Sent: Monday, December 16, 2013 9:19 AM >> To: Richard Bair >> Cc: openjfx-dev at openjdk.java.net >> Subject: Re: [announce] InhiBeans: mitigate redundant recalculations >> >> As a matter of fact, I have. Only to the extent of the "Principles of Reactive Programming" [1] course that is currently in progress on Coursera. From what I have seen so far, it's all about asynchronous composition (with emphasis on both "asynchronous" and "composition"). >> I didn't see it addressing this specific problem of multiple redundant updates, but I might be wrong. The truth is, this problem doesn't even exist if you don't have any eager observers (i.e. when you don't ever attach any ChangeListeners, and InvalidationListeners only propagate invalidation and never require the value to be recomputed). The problem is, although you can design your component without any eager evaluation (JavaFX bindings are already composed this way), you then bind a Label.textProperty() to the end of a binding chain and it all becomes eager. >> >> Regards, >> Tomas >> >> [1] https://www.coursera.org/course/reactive >> >> On Mon, Dec 16, 2013 at 5:30 PM, Richard Bair wrote: >>> Have you looked at https://github.com/Netflix/RxJava by chance? I've been dying to see somebody do an RxJava in JavaFX ever since devoxx and it looks like you may have inadvertently started down that path :-). >>> >>> Richard >>> >>> On Dec 16, 2013, at 8:09 AM, Tomas Mikula wrote: >>> >>>> On Mon, Dec 16, 2013 at 1:47 AM, Tomas Mikula wrote: >>>>> On Mon, Dec 16, 2013 at 1:07 AM, Scott Palmer wrote: >>>>>> Interesting, no worse than John's pattern though. >>>>>> I thought of using a try/finally to make sure release was called >>>>>> and that naturally lead to thinking of try-with-resources, where >>>>>> the "resource" in this case is a binding of some sort (or a wrapper >>>>>> around a binding) that is invalidated on close() if needed. >>>>> >>>>> That is an interesting idea. I didn't intend blockWhile() to be safe >>>>> with respect to exceptions, but merely >>>>> >>>>> void blockWhile(Runnable r) { >>>>> block(); >>>>> r.run(); >>>>> release(); >>>>> } >>>>> >>>>> Enhancement you are suggesting could be fleshed out as block() >>>>> returning an AutoCloseable and the usage would be >>>>> >>>>> try(AutoCloseable a = relaxedArea.block()) { >>>>> obj.setWidth(w); >>>>> obj.setHeight(h); >>>>> } >>>> >>>> OK, done. I implemented both: >>>> 1. added the blockWhile() method; >>>> 2. made bindings AutoCloseable, and block() returns `this`. >>>> >>>> Tomas >>> > From neugens.limasoftware at gmail.com Tue Dec 17 01:47:50 2013 From: neugens.limasoftware at gmail.com (Mario Torre) Date: Tue, 17 Dec 2013 10:47:50 +0100 Subject: accessibility In-Reply-To: <52AF6754.8020805@oracle.com> References: <52AD9919.5010706@poczta.onet.pl> <52AD9D77.4050203@poczta.onet.pl> <52AF6754.8020805@oracle.com> Message-ID: It would probably make sense to try doing this together rather than waiting for things to happen, this way you could use this wonderful workforce that your community is! Can you maybe point to bugs and/or share with us specific issues (and pain points) yet unresolved? Cheers, Mario 2013/12/16 Stephen F Northover : > Hi Michael, > > Accessibility has been on and off the radar for OpenJFX for quite a while > now. Some preliminary work was done, but a final implementation and API was > never reached. Further, the people who were working on it either left the > company or left to work some place else. The thing that makes accessibility > difficult is that it is platform specific, has a big API and touches many > different component areas. If you think about it, in the case of a visually > impaired user, accessibility is presenting a widget system to be navigated > that is independent of any output. > > Although nothing is official, we are looking to deliver accessibility in > JDK9. If something is ready earlier, it is possible that it could appear in > an earlier release. > > Thanks for being so patient with us. > > Steve > > > On 2013-12-15 7:15 AM, Micha? Zegan wrote: >> >> Hello, >> >> I have the following question: >> Does javafx support or plan to support accessibility? >> Another question is: if it is planned, then for what release? >> >> > -- pgp key: http://subkeys.pgp.net/ PGP Key ID: 80F240CF Fingerprint: BA39 9666 94EC 8B73 27FA FC7C 4086 63E3 80F2 40CF IcedRobot: www.icedrobot.org Proud GNU Classpath developer: http://www.classpath.org/ Read About us at: http://planet.classpath.org OpenJDK: http://openjdk.java.net/projects/caciocavallo/ Please, support open standards: http://endsoftpatents.org/ From hang.vo at oracle.com Tue Dec 17 04:17:51 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 17 Dec 2013 12:17:51 +0000 Subject: hg: openjfx/8/graphics/rt: Sync up SceneBuilder changes Message-ID: <20131217121855.0B7DA62D56@hg.openjdk.java.net> Changeset: f2b1198606d6 Author: Yves Joan Date: 2013-12-17 13:13 +0100 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/f2b1198606d6 Sync up SceneBuilder changes ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindow.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindowController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderApp.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SplitController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp.properties ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBarController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBar.css ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBar.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBarController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanel.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanelController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/file-dirty.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Background-Blue-Grid.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Background-Neutral-Grid.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Background-Neutral-Uniform.png ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Preferences.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordDocument.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordGlobal.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesWindowController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/background-shadow.png ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/PreviewWindowController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonBuffer.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindow.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindow.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindowController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/DefaultContent.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/JobManager.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/DragController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/GridPaneDropTarget.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/SceneBuilderKit.properties ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertColumnConstraintsJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertColumnJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertRowConstraintsJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertRowJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/MoveRowContentJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/messagelog/MessageLog.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanel.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanel.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/BorderPaneDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/FlowPaneDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/GridPaneDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TableViewDesignInfoX.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TableViewDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TextFlowDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/ToolBarDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TreeTableViewDesignInfoX.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TreeTableViewDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneMosaic.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPanePring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/SplitPaneHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TableViewHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TreeTableViewHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/GridPaneColumnResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/GridPaneRowResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/TableColumnResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/TreeTableColumnResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/AbstractNodeTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/BorderPaneTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/GenericParentTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/HBoxTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/NodeTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/VBoxTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/DragGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeColumnGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeRowGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeTableColumnGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeTreeTableColumnGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/SelectAndMoveGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/EditModeController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssContentMaker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanel.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/SelectionPath.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/AbstractHierarchyPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyTaskScheduler.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableCell.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableRow.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableView.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableViewController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeCell.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeView.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeViewController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/Inspector.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/InspectorPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DividerPositionsEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DoubleField.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/InsetsEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/Point3DEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/Point3DEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleClassEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StylesheetEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/TextAlignmentEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/TextAlignmentEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/text-alignment-center.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/text-alignment-justify.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/text-alignment-left.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/text-alignment-right.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/BoundsPopupEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/BoundsPopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PaintPopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/StringPopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractFxmlWindowController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/Selection.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMDocument.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMObject.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueDocument.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueElement.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueLoader.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueSnapshot.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/XMLAttrComparator.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/XMLBuffer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/AbstractSampleData.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/ListViewSampleData.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/PieChartSampleData.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/SampleDataGenerator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/TableViewSampleData.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/TreeTableViewSampleData.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/TreeViewSampleData.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ToolBar.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/Metadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ColorEncoder.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/CssInternal.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/MathUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPicker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPickerController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/colorpicker/ColorPicker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPicker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.java From webczat_200 at poczta.onet.pl Tue Dec 17 08:32:41 2013 From: webczat_200 at poczta.onet.pl (=?UTF-8?B?TWljaGHFgiBaZWdhbg==?=) Date: Tue, 17 Dec 2013 17:32:41 +0100 Subject: accessibility In-Reply-To: References: <52AD9919.5010706@poczta.onet.pl> <52AD9D77.4050203@poczta.onet.pl> <52AF6754.8020805@oracle.com> Message-ID: <52B07CA9.30406@poczta.onet.pl> hmm, so I will need to wait few years to be able to develop javafx things at all? Of course, I'm myself blind so making fx apps does not make sense if I cannot test it or use it. As for issues, this is just one pretty obvious thing: when using screenreaders except those (maybe) that read the display to get what's on it and that is something that for example windows8 has removed, do not and will never, unless accessibility is implemented, get anything inside program windows at all in any case, except the window title and only because it's a window manager/system thing and the window title is presented in the taskbar. W dniu 2013-12-17 10:47, Mario Torre pisze: > It would probably make sense to try doing this together rather than > waiting for things to happen, this way you could use this wonderful > workforce that your community is! > > Can you maybe point to bugs and/or share with us specific issues (and > pain points) yet unresolved? > > Cheers, > Mario > > 2013/12/16 Stephen F Northover : >> Hi Michael, >> >> Accessibility has been on and off the radar for OpenJFX for quite a while >> now. Some preliminary work was done, but a final implementation and API was >> never reached. Further, the people who were working on it either left the >> company or left to work some place else. The thing that makes accessibility >> difficult is that it is platform specific, has a big API and touches many >> different component areas. If you think about it, in the case of a visually >> impaired user, accessibility is presenting a widget system to be navigated >> that is independent of any output. >> >> Although nothing is official, we are looking to deliver accessibility in >> JDK9. If something is ready earlier, it is possible that it could appear in >> an earlier release. >> >> Thanks for being so patient with us. >> >> Steve >> >> >> On 2013-12-15 7:15 AM, Micha? Zegan wrote: >>> >>> Hello, >>> >>> I have the following question: >>> Does javafx support or plan to support accessibility? >>> Another question is: if it is planned, then for what release? >>> >>> >> > > > From hang.vo at oracle.com Tue Dec 17 09:03:05 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 17 Dec 2013 17:03:05 +0000 Subject: hg: openjfx/8u-dev/rt: RT-34981: Remove obsolete file javafxpackager.html Message-ID: <20131217170424.DE7B062D5C@hg.openjdk.java.net> Changeset: 009c117c6ec9 Author: kcr Date: 2013-12-17 08:53 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/009c117c6ec9 RT-34981: Remove obsolete file javafxpackager.html Summary: This file was previously used in translation, but Michael Fang confirmed that it is no longer used - modules/fxpackager/src/main/man/ja_JP.UTF-8/html/javafxpackager.html From steve.x.northover at oracle.com Tue Dec 17 09:37:12 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Tue, 17 Dec 2013 12:37:12 -0500 Subject: accessibility In-Reply-To: References: <52AD9919.5010706@poczta.onet.pl> <52AD9D77.4050203@poczta.onet.pl> <52AF6754.8020805@oracle.com> Message-ID: <52B08BC8.2010402@oracle.com> Hi Mario, There is nothing specific at this time and we are unlikely to start looking at accessibility seriously until next year. Steve On 2013-12-17 4:47 AM, Mario Torre wrote: > It would probably make sense to try doing this together rather than > waiting for things to happen, this way you could use this wonderful > workforce that your community is! > > Can you maybe point to bugs and/or share with us specific issues (and > pain points) yet unresolved? > > Cheers, > Mario > > 2013/12/16 Stephen F Northover : >> Hi Michael, >> >> Accessibility has been on and off the radar for OpenJFX for quite a while >> now. Some preliminary work was done, but a final implementation and API was >> never reached. Further, the people who were working on it either left the >> company or left to work some place else. The thing that makes accessibility >> difficult is that it is platform specific, has a big API and touches many >> different component areas. If you think about it, in the case of a visually >> impaired user, accessibility is presenting a widget system to be navigated >> that is independent of any output. >> >> Although nothing is official, we are looking to deliver accessibility in >> JDK9. If something is ready earlier, it is possible that it could appear in >> an earlier release. >> >> Thanks for being so patient with us. >> >> Steve >> >> >> On 2013-12-15 7:15 AM, Micha? Zegan wrote: >>> Hello, >>> >>> I have the following question: >>> Does javafx support or plan to support accessibility? >>> Another question is: if it is planned, then for what release? >>> >>> > > From hang.vo at oracle.com Tue Dec 17 09:17:56 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 17 Dec 2013 17:17:56 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34875: Update Japanese translation of javafxpackager man page Message-ID: <20131217171919.0D05662D5D@hg.openjdk.java.net> Changeset: f3b51877b9e7 Author: kcr Date: 2013-12-17 09:08 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/f3b51877b9e7 RT-34875: Update Japanese translation of javafxpackager man page Contributed-by: Michael Fang ! modules/fxpackager/src/main/man/ja_JP.UTF-8/man1/javafxpackager.1 From Tito.Kumar at LC.CA.GOV Tue Dec 17 11:43:27 2013 From: Tito.Kumar at LC.CA.GOV (Kumar, Tito) Date: Tue, 17 Dec 2013 19:43:27 +0000 Subject: accessibility In-Reply-To: <52B08BC8.2010402@oracle.com> References: <52AD9919.5010706@poczta.onet.pl> <52AD9D77.4050203@poczta.onet.pl> <52AF6754.8020805@oracle.com> <52B08BC8.2010402@oracle.com> Message-ID: Just to add to this thread. We have been developing quite extensively over the last year and half with the understanding that JavaFx would be rehab compliant with the release of JDK 8 . At least that was the commitment during JavaOne 2012 conference. We are escalating this issue with local Oracle representatives and executive management to give this a higher priority. As a government agency we cannot deploy if the application is not 508 compliant. It is after all the law of the land. Any assistance from this community is appreciated. Tito Kumar Office of the Legislative Counsel State of California -----Original Message----- From: openjfx-dev-bounces at openjdk.java.net [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Stephen F Northover Sent: Tuesday, December 17, 2013 9:37 AM To: Mario Torre Cc: openjfx-dev at openjdk.java.net Subject: Re: accessibility Hi Mario, There is nothing specific at this time and we are unlikely to start looking at accessibility seriously until next year. Steve On 2013-12-17 4:47 AM, Mario Torre wrote: > It would probably make sense to try doing this together rather than > waiting for things to happen, this way you could use this wonderful > workforce that your community is! > > Can you maybe point to bugs and/or share with us specific issues (and > pain points) yet unresolved? > > Cheers, > Mario > > 2013/12/16 Stephen F Northover : >> Hi Michael, >> >> Accessibility has been on and off the radar for OpenJFX for quite a >> while now. Some preliminary work was done, but a final >> implementation and API was never reached. Further, the people who >> were working on it either left the company or left to work some place >> else. The thing that makes accessibility difficult is that it is >> platform specific, has a big API and touches many different component >> areas. If you think about it, in the case of a visually impaired >> user, accessibility is presenting a widget system to be navigated that is independent of any output. >> >> Although nothing is official, we are looking to deliver accessibility >> in JDK9. If something is ready earlier, it is possible that it could >> appear in an earlier release. >> >> Thanks for being so patient with us. >> >> Steve >> >> >> On 2013-12-15 7:15 AM, Micha? Zegan wrote: >>> Hello, >>> >>> I have the following question: >>> Does javafx support or plan to support accessibility? >>> Another question is: if it is planned, then for what release? >>> >>> > > From hang.vo at oracle.com Tue Dec 17 10:17:35 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 17 Dec 2013 18:17:35 +0000 Subject: hg: openjfx/8/graphics/rt: RT-34799: missing call to add style to list Message-ID: <20131217181826.06D1462D66@hg.openjdk.java.net> Changeset: 0551a6164a23 Author: David Grieve Date: 2013-12-10 09:25 -0500 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/0551a6164a23 RT-34799: missing call to add style to list ! modules/graphics/src/main/java/javafx/scene/CssStyleHelper.java ! modules/graphics/src/test/java/com/sun/javafx/css/Node_cssStyleMap_Test.java From odoepner at gmail.com Tue Dec 17 12:39:00 2013 From: odoepner at gmail.com (Oliver Doepner) Date: Tue, 17 Dec 2013 16:39:00 -0400 Subject: Programmatic (Java) access to style / layout ? Message-ID: Hello, This might have been asked before but I haven't found it: Is it possible to style JavaFX components using pure Java (i.e. without CSS)? If this is being worked on, does anyone know what the status is? I think this is one of the areas where JavaFX can actually be better than HTML5/CSS because a nicely typed Java representation of CSS could provide great tooling and features that others had to invent LESS or SASS for. I have seen this (from Oct 2012): http://stackoverflow.com/questions/12943501/style-javafx-components-without-css I have also seen this: https://javafx-jira.kenai.com/browse/RT-17293 Last update: Brian Beckadded a comment - Mar, 12 2012 09:01 PM : "It is now past the point where this feature can be added for 2.1. Will need to be considered for a future release" Thanks Oliver -- Oliver Doepner http://doepner.net/ From tomas.mikula at gmail.com Tue Dec 17 12:55:04 2013 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Tue, 17 Dec 2013 21:55:04 +0100 Subject: Thoughts on going reactive (was: [announce] InhiBeans: mitigate redundant recalculations) Message-ID: I have a couple more thoughts on reactive programming in JavaFX: 1. Reactive programming is push-based (data/event driven). JavaFX seems to be both push-based and pull-based. For example, event handling and binding invalidation propagation are push-based, while Binding.getValue() is pull-based. JavaFX uses this pull-based approach for lazy evaluation of bindings. If we were going reactive, we would need other techniques to avoid unnecessary computations, such as the one discussed previously in this thread (i.e. InhiBeans). Well, lazy bindings are not a silver bullet for all unnecessary computations anyway. 2. Reactive programming has to deal with concurrent systems and is thus inherently asynchronous. JavaFX, on the other hand, is inherently single-threaded and could use that as an asset. Reactive JavaFX should get the best of both worlds, i.e. reactive and synchronous. For example, the InhiBeans approach to avoid unnecessary computation, as in area.block(); width.set(w); height.set(h) area.release(); relies on the fact that by the time area.release() is called, all the changes from previous two lines have already been propagated to the area property. There would be no such guarantee in an asynchronous setting. I think such guarantees should be taken advantage of when designing reactive JavaFX. Sure, we could avoid unnecessary computation even in a fully asynchronous fashion, but that would increase complexity, probably employing something like Petri nets. Regards, Tomas On Tue, Dec 17, 2013 at 8:24 AM, Tomas Mikula wrote: > I had a quick look at Java 8 streams and I'm afraid they are of no use > for reactive programming. The fundamental problem is that in > java.util.stream, computation is driven by the stream consumer, rather > than the stream source, which is a complete opposite of "reactive". > > On the other hand, JavaFX ObservableValue doubles as a poor man's > event stream, but it would be confusing to use it as such. Not to > mention that we still want map, filter, etc... on an event stream. > > Regards, > Tomas > > On Mon, Dec 16, 2013 at 8:34 PM, Richard Bair wrote: >> I agree, that's more of what I was thinking. >> >> On Dec 16, 2013, at 10:31 AM, John Smith wrote: >> >>> Perhaps reactive programming is different from the problem Tomas is solving, but I think a research project which combined some of the principles of functional reactive programming (http://lampwww.epfl.ch/~imaier/pub/DeprecatingObserversTR2010.pdf) with JavaFX properties using Java 8 lambdas and streams would be quite interesting and perhaps very useful. >>> >>> John >>> >>> -----Original Message----- >>> From: openjfx-dev-bounces at openjdk.java.net [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Tomas Mikula >>> Sent: Monday, December 16, 2013 9:19 AM >>> To: Richard Bair >>> Cc: openjfx-dev at openjdk.java.net >>> Subject: Re: [announce] InhiBeans: mitigate redundant recalculations >>> >>> As a matter of fact, I have. Only to the extent of the "Principles of Reactive Programming" [1] course that is currently in progress on Coursera. >From what I have seen so far, it's all about asynchronous composition (with emphasis on both "asynchronous" and "composition"). >>> I didn't see it addressing this specific problem of multiple redundant updates, but I might be wrong. The truth is, this problem doesn't even exist if you don't have any eager observers (i.e. when you don't ever attach any ChangeListeners, and InvalidationListeners only propagate invalidation and never require the value to be recomputed). The problem is, although you can design your component without any eager evaluation (JavaFX bindings are already composed this way), you then bind a Label.textProperty() to the end of a binding chain and it all becomes eager. >>> >>> Regards, >>> Tomas >>> >>> [1] https://www.coursera.org/course/reactive >>> >>> On Mon, Dec 16, 2013 at 5:30 PM, Richard Bair wrote: >>>> Have you looked at https://github.com/Netflix/RxJava by chance? I've been dying to see somebody do an RxJava in JavaFX ever since devoxx and it looks like you may have inadvertently started down that path :-). >>>> >>>> Richard >>>> >>>> On Dec 16, 2013, at 8:09 AM, Tomas Mikula wrote: >>>> >>>>> On Mon, Dec 16, 2013 at 1:47 AM, Tomas Mikula wrote: >>>>>> On Mon, Dec 16, 2013 at 1:07 AM, Scott Palmer wrote: >>>>>>> Interesting, no worse than John's pattern though. >>>>>>> I thought of using a try/finally to make sure release was called >>>>>>> and that naturally lead to thinking of try-with-resources, where >>>>>>> the "resource" in this case is a binding of some sort (or a wrapper >>>>>>> around a binding) that is invalidated on close() if needed. >>>>>> >>>>>> That is an interesting idea. I didn't intend blockWhile() to be safe >>>>>> with respect to exceptions, but merely >>>>>> >>>>>> void blockWhile(Runnable r) { >>>>>> block(); >>>>>> r.run(); >>>>>> release(); >>>>>> } >>>>>> >>>>>> Enhancement you are suggesting could be fleshed out as block() >>>>>> returning an AutoCloseable and the usage would be >>>>>> >>>>>> try(AutoCloseable a = relaxedArea.block()) { >>>>>> obj.setWidth(w); >>>>>> obj.setHeight(h); >>>>>> } >>>>> >>>>> OK, done. I implemented both: >>>>> 1. added the blockWhile() method; >>>>> 2. made bindings AutoCloseable, and block() returns `this`. >>>>> >>>>> Tomas >>>> >> From David.Hill at Oracle.com Tue Dec 17 13:01:43 2013 From: David.Hill at Oracle.com (David Hill) Date: Tue, 17 Dec 2013 16:01:43 -0500 Subject: Additions to apps/toys Message-ID: <52B0BBB7.80602@Oracle.com> As part of RT-34081, I just moved about 50 Hello 'toys' to open source. You can find then under rt/apps/toys/Hello These are toys in the sense that they are not official samples. These are usually vehicles to experiment with various features, or are used as part of quick feature tests. In particular - try HelloSanity. Have fun with them :-) -- David Hill Java Embedded Development "For every complex problem there is a simple solution, and it's wrong." -- H. L. Mencken From hang.vo at oracle.com Tue Dec 17 13:03:27 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 17 Dec 2013 21:03:27 +0000 Subject: hg: openjfx/8u-dev/rt: RT-34081: [TOYS] removing samples moved to public toys Message-ID: <20131217210417.3097762D78@hg.openjdk.java.net> Changeset: fb231ccb1b87 Author: ddhill Date: 2013-12-17 15:46 -0500 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/fb231ccb1b87 RT-34081: [TOYS] removing samples moved to public toys Reviewed-by: kcr, anthony ! apps/toys/Hello/nbproject/project.xml + apps/toys/Hello/src/main/java/alertdialog/Alert.java + apps/toys/Hello/src/main/java/alertdialog/AlertImpl.java + apps/toys/Hello/src/main/java/hello/BlurryText.png + apps/toys/Hello/src/main/java/hello/DukeReflection.png + apps/toys/Hello/src/main/java/hello/FloodGame.java + apps/toys/Hello/src/main/java/hello/HelloAccordion.java + apps/toys/Hello/src/main/java/hello/HelloAlert.java + apps/toys/Hello/src/main/java/hello/HelloAnimation.java + apps/toys/Hello/src/main/java/hello/HelloAreaChart.java + apps/toys/Hello/src/main/java/hello/HelloBarChart.java + apps/toys/Hello/src/main/java/hello/HelloBorderPane.java + apps/toys/Hello/src/main/java/hello/HelloBubbleChart.java + apps/toys/Hello/src/main/java/hello/HelloButton.java + apps/toys/Hello/src/main/java/hello/HelloCSS.java + apps/toys/Hello/src/main/java/hello/HelloCheckBox.java + apps/toys/Hello/src/main/java/hello/HelloCursors.java + apps/toys/Hello/src/main/java/hello/HelloDeferSetVisible.java + apps/toys/Hello/src/main/java/hello/HelloEffects.java + apps/toys/Hello/src/main/java/hello/HelloFPS.java + apps/toys/Hello/src/main/java/hello/HelloFontSize.java + apps/toys/Hello/src/main/java/hello/HelloFullscreen.java + apps/toys/Hello/src/main/java/hello/HelloFullscreenAnim.java + apps/toys/Hello/src/main/java/hello/HelloFullscreenToggle.java + apps/toys/Hello/src/main/java/hello/HelloHTMLEditor.java + apps/toys/Hello/src/main/java/hello/HelloImage.java + apps/toys/Hello/src/main/java/hello/HelloImageClipboard.java + apps/toys/Hello/src/main/java/hello/HelloLabelBorders.java + apps/toys/Hello/src/main/java/hello/HelloLaunchOnNewThread.java + apps/toys/Hello/src/main/java/hello/HelloListView.java + apps/toys/Hello/src/main/java/hello/HelloMedia.java + apps/toys/Hello/src/main/java/hello/HelloMenu.java + apps/toys/Hello/src/main/java/hello/HelloMenuButton.java + apps/toys/Hello/src/main/java/hello/HelloModality.java + apps/toys/Hello/src/main/java/hello/HelloPieChart.java + apps/toys/Hello/src/main/java/hello/HelloPopup.java + apps/toys/Hello/src/main/java/hello/HelloPopupMenu.java + apps/toys/Hello/src/main/java/hello/HelloProgressBar.java + apps/toys/Hello/src/main/java/hello/HelloProgressIndicator.java ! apps/toys/Hello/src/main/java/hello/HelloRectangle.java + apps/toys/Hello/src/main/java/hello/HelloSanity.java + apps/toys/Hello/src/main/java/hello/HelloSanityStyles.css + apps/toys/Hello/src/main/java/hello/HelloScrollBar.java + apps/toys/Hello/src/main/java/hello/HelloScrollPane.java + apps/toys/Hello/src/main/java/hello/HelloSnapshot2.java + apps/toys/Hello/src/main/java/hello/HelloSplitPane.java + apps/toys/Hello/src/main/java/hello/HelloStyledPopups.java + apps/toys/Hello/src/main/java/hello/HelloTabPane.java + apps/toys/Hello/src/main/java/hello/HelloTableView.java + apps/toys/Hello/src/main/java/hello/HelloTextArea.java + apps/toys/Hello/src/main/java/hello/HelloTextBoxClipboard.java + apps/toys/Hello/src/main/java/hello/HelloTextField.java + apps/toys/Hello/src/main/java/hello/HelloTitledPane.java + apps/toys/Hello/src/main/java/hello/HelloToolBar.java + apps/toys/Hello/src/main/java/hello/HelloTooltip.java + apps/toys/Hello/src/main/java/hello/HelloWindowAbuse.java + apps/toys/Hello/src/main/java/hello/HelloWindowManager.java + apps/toys/Hello/src/main/java/hello/JavaFX.png + apps/toys/Hello/src/main/java/hello/LabelBorders.css + apps/toys/Hello/src/main/java/hello/TestBuilder.java ! apps/toys/Hello/src/main/java/hello/Tiger.java + apps/toys/Hello/src/main/java/hello/about_16.png + apps/toys/Hello/src/main/java/hello/about_48.png + apps/toys/Hello/src/main/java/hello/animated_89_c.gif + apps/toys/Hello/src/main/java/hello/car.png + apps/toys/Hello/src/main/java/hello/duke.jpg + apps/toys/Hello/src/main/java/hello/duke_with_guitar.png + apps/toys/Hello/src/main/java/hello/folder_16.png + apps/toys/Hello/src/main/java/hello/folder_48.png + apps/toys/Hello/src/main/java/hello/heart_16.png + apps/toys/Hello/src/main/java/hello/heart_48.png + apps/toys/Hello/src/main/java/hello/hello.css + apps/toys/Hello/src/main/java/hello/javafx-loading-32x32.gif From david.grieve at oracle.com Tue Dec 17 13:18:02 2013 From: david.grieve at oracle.com (David Grieve) Date: Tue, 17 Dec 2013 16:18:02 -0500 Subject: Programmatic (Java) access to style / layout ? In-Reply-To: References: Message-ID: <50EA3B8B-6BCA-4A61-A298-2B162A26E38E@oracle.com> It is possible, but probably not in the way that https://javafx-jira.kenai.com/browse/RT-17293 would provide. By that I mean, it would be nice to be able to progammatically say "the border color for this button when hovered is red." This can be done now by adding an invalidation listener to the hoverProperty and setting the border on Region, but I don' t think this is what you are after. I think RT-17923 means different things to different people. I'd be interested to know what such and API would look like to you. On Dec 17, 2013, at 3:39 PM, Oliver Doepner wrote: > Hello, > > This might have been asked before but I haven't found it: > Is it possible to style JavaFX components using pure Java (i.e. without > CSS)? > > If this is being worked on, does anyone know what the status is? > > I think this is one of the areas where JavaFX can actually be better than > HTML5/CSS because a nicely typed Java representation of CSS could provide > great tooling and features that others had to invent LESS or SASS for. > > I have seen this (from Oct 2012): > http://stackoverflow.com/questions/12943501/style-javafx-components-without-css > > I have also seen this: https://javafx-jira.kenai.com/browse/RT-17293 > Last update: Brian > Beckadded > a comment - Mar, > 12 2012 09:01 PM : "It is now past the point where this feature can be > added for 2.1. Will need to be considered for a future release" > > Thanks > Oliver > > -- > Oliver Doepner > http://doepner.net/ From steve.x.northover at oracle.com Tue Dec 17 13:26:38 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Tue, 17 Dec 2013 16:26:38 -0500 Subject: accessibility In-Reply-To: References: <52AD9919.5010706@poczta.onet.pl> <52AD9D77.4050203@poczta.onet.pl> <52AF6754.8020805@oracle.com> <52B08BC8.2010402@oracle.com> Message-ID: <52B0C18E.5060506@oracle.com> Hi Tito, Let me give you some background about where we are. There is a prototype implementation that implements some of accessibility for Windows and Mac. This has been released for a while but is disabled in FX for jdk8. There is no public API to make use of it and the FX controls have not been hooked up to use it. The focus for the past while has been on getting FX into jdk8 and meeting the ZBB (Zero Bug Bounce) deadline. Many issues needed to be deferred from 8 and will need to be looked at for 8u20. The deferred issues will likely consume the committers for the rest of the year. Starting next year, which is closer than you think, accessibility will once again be looked into. Please escalate with Oracle representatives and who ever else can give us the ammunition to get this implemented. Thanks! Steve On 2013-12-17 2:43 PM, Kumar, Tito wrote: > Just to add to this thread. We have been developing quite extensively over the last year and half with the understanding that JavaFx would be rehab compliant with the release of JDK 8 . At least that was the commitment during JavaOne 2012 conference. We are escalating this issue with local Oracle representatives and executive management to give this a higher priority. As a government agency we cannot deploy if the application is not 508 compliant. It is after all the law of the land. Any assistance from this community is appreciated. > > Tito Kumar > Office of the Legislative Counsel > State of California > > > > -----Original Message----- > From: openjfx-dev-bounces at openjdk.java.net [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Stephen F Northover > Sent: Tuesday, December 17, 2013 9:37 AM > To: Mario Torre > Cc: openjfx-dev at openjdk.java.net > Subject: Re: accessibility > > Hi Mario, > > There is nothing specific at this time and we are unlikely to start looking at accessibility seriously until next year. > > Steve > > On 2013-12-17 4:47 AM, Mario Torre wrote: >> It would probably make sense to try doing this together rather than >> waiting for things to happen, this way you could use this wonderful >> workforce that your community is! >> >> Can you maybe point to bugs and/or share with us specific issues (and >> pain points) yet unresolved? >> >> Cheers, >> Mario >> >> 2013/12/16 Stephen F Northover : >>> Hi Michael, >>> >>> Accessibility has been on and off the radar for OpenJFX for quite a >>> while now. Some preliminary work was done, but a final >>> implementation and API was never reached. Further, the people who >>> were working on it either left the company or left to work some place >>> else. The thing that makes accessibility difficult is that it is >>> platform specific, has a big API and touches many different component >>> areas. If you think about it, in the case of a visually impaired >>> user, accessibility is presenting a widget system to be navigated that is independent of any output. >>> >>> Although nothing is official, we are looking to deliver accessibility >>> in JDK9. If something is ready earlier, it is possible that it could >>> appear in an earlier release. >>> >>> Thanks for being so patient with us. >>> >>> Steve >>> >>> >>> On 2013-12-15 7:15 AM, Micha? Zegan wrote: >>>> Hello, >>>> >>>> I have the following question: >>>> Does javafx support or plan to support accessibility? >>>> Another question is: if it is planned, then for what release? >>>> >>>> >> From steve.x.northover at oracle.com Tue Dec 17 13:33:31 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Tue, 17 Dec 2013 16:33:31 -0500 Subject: Additions to apps/toys In-Reply-To: <52B0BBB7.80602@Oracle.com> References: <52B0BBB7.80602@Oracle.com> Message-ID: <52B0C32B.3030000@oracle.com> HelloSanity ... a favorite of the (In)Sane testers. Steve On 2013-12-17 4:01 PM, David Hill wrote: > > > As part of RT-34081, I just moved about 50 Hello 'toys' to open source. > You can find then under rt/apps/toys/Hello > > These are toys in the sense that they are not official samples. These > are usually vehicles to experiment with various features, or are used > as part of quick feature tests. > > In particular - try HelloSanity. > > Have fun with them :-) > From tom.schindl at bestsolution.at Tue Dec 17 13:57:08 2013 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Tue, 17 Dec 2013 22:57:08 +0100 Subject: JavaFX JavaDoc and IDEs Message-ID: <52B0C8B4.6030106@bestsolution.at> Hi, I can't speak for Netbeans and IntelliJ but now that JavaFX ships the source with the JDK and Eclipse recgonizes this there's a "small" problem with the way JavaFX is using JavaDoc. Take for example Window#onCloseRequest > /** > * Called when there is an external request to close this {@code Window}. > * The installed event handler can prevent window closing by consuming the > * received event. > */ > private ObjectProperty> onCloseRequest; > public final void setOnCloseRequest(EventHandler value) { > onCloseRequestProperty().set(value); > } > public final EventHandler getOnCloseRequest() { > return (onCloseRequest != null) ? onCloseRequest.get() : null; > } > public final ObjectProperty> > onCloseRequestProperty() { You'll notice that the documentation is only made on the property but not on the real API methods. I guess the build process copies the documentation somehow at the right position when generating the doc (see http://docs.oracle.com/javafx/2/api/javafx/stage/Window.html#setOnCloseRequest%28javafx.event.EventHandler%29) which doesn't help people with an (Eclipse)IDE which takes the source code as the authority and presents an empty JavaDoc window :-( This is a major feature loss! Tom From kevin.rushforth at oracle.com Tue Dec 17 14:12:04 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Tue, 17 Dec 2013 14:12:04 -0800 Subject: JavaFX JavaDoc and IDEs In-Reply-To: <52B0C8B4.6030106@bestsolution.at> References: <52B0C8B4.6030106@bestsolution.at> Message-ID: <52B0CC34.40807@oracle.com> Actually, the JDK 8 doclet that handles this automatically. They added support for FX-style properties, among other things, in JDK 8 so we no longer have a custom doclet for FX. -- Kevin Tom Schindl wrote: > Hi, > > I can't speak for Netbeans and IntelliJ but now that JavaFX ships the > source with the JDK and Eclipse recgonizes this there's a "small" > problem with the way JavaFX is using JavaDoc. > > Take for example Window#onCloseRequest > > >> /** >> * Called when there is an external request to close this {@code Window}. >> * The installed event handler can prevent window closing by consuming the >> * received event. >> */ >> private ObjectProperty> onCloseRequest; >> public final void setOnCloseRequest(EventHandler value) { >> onCloseRequestProperty().set(value); >> } >> public final EventHandler getOnCloseRequest() { >> return (onCloseRequest != null) ? onCloseRequest.get() : null; >> } >> public final ObjectProperty> >> onCloseRequestProperty() { >> > > You'll notice that the documentation is only made on the property but > not on the real API methods. > > I guess the build process copies the documentation somehow at the right > position when generating the doc (see > http://docs.oracle.com/javafx/2/api/javafx/stage/Window.html#setOnCloseRequest%28javafx.event.EventHandler%29) > which doesn't help people with an (Eclipse)IDE which takes the source > code as the authority and presents an empty JavaDoc window :-( > > This is a major feature loss! > > Tom > From tom.schindl at bestsolution.at Tue Dec 17 14:31:53 2013 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Tue, 17 Dec 2013 23:31:53 +0100 Subject: JavaFX JavaDoc and IDEs In-Reply-To: <52B0CC34.40807@oracle.com> References: <52B0C8B4.6030106@bestsolution.at> <52B0CC34.40807@oracle.com> Message-ID: <52B0D0D9.7000901@bestsolution.at> So you say the IDEs must learn that when they encounter a method which has no JavaDoc to search for the property definition and show that one? Tom On 17.12.13 23:12, Kevin Rushforth wrote: > Actually, the JDK 8 doclet that handles this automatically. They added > support for FX-style properties, among other things, in JDK 8 so we no > longer have a custom doclet for FX. > > -- Kevin > > > Tom Schindl wrote: >> Hi, >> >> I can't speak for Netbeans and IntelliJ but now that JavaFX ships the >> source with the JDK and Eclipse recgonizes this there's a "small" >> problem with the way JavaFX is using JavaDoc. >> >> Take for example Window#onCloseRequest >> >> >>> /** >>> * Called when there is an external request to close this {@code Window}. >>> * The installed event handler can prevent window closing by consuming the >>> * received event. >>> */ >>> private ObjectProperty> onCloseRequest; >>> public final void setOnCloseRequest(EventHandler value) { >>> onCloseRequestProperty().set(value); >>> } >>> public final EventHandler getOnCloseRequest() { >>> return (onCloseRequest != null) ? onCloseRequest.get() : null; >>> } >>> public final ObjectProperty> >>> onCloseRequestProperty() { >>> >> >> You'll notice that the documentation is only made on the property but >> not on the real API methods. >> >> I guess the build process copies the documentation somehow at the right >> position when generating the doc (see >> http://docs.oracle.com/javafx/2/api/javafx/stage/Window.html#setOnCloseRequest%28javafx.event.EventHandler%29) >> which doesn't help people with an (Eclipse)IDE which takes the source >> code as the authority and presents an empty JavaDoc window :-( >> >> This is a major feature loss! >> >> Tom >> From kevin.rushforth at oracle.com Tue Dec 17 14:48:53 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Tue, 17 Dec 2013 14:48:53 -0800 Subject: JavaFX JavaDoc and IDEs In-Reply-To: <52B0D0D9.7000901@bestsolution.at> References: <52B0C8B4.6030106@bestsolution.at> <52B0CC34.40807@oracle.com> <52B0D0D9.7000901@bestsolution.at> Message-ID: <52B0D4D5.2070002@oracle.com> That's basically what the doclet does. Here is the JDK JIRA for this (first introduced in 7u6...I hadn't remembered it was that early): https://bugs.openjdk.java.net/browse/JDK-7112427 And here is the JDK 8 changeset that implements it: http://hg.openjdk.java.net/jdk8/jdk8/langtools/rev/ccbe7ffdd867 -- Kevin Tom Schindl wrote: > So you say the IDEs must learn that when they encounter a method which > has no JavaDoc to search for the property definition and show that one? > > Tom > > On 17.12.13 23:12, Kevin Rushforth wrote: > >> Actually, the JDK 8 doclet that handles this automatically. They added >> support for FX-style properties, among other things, in JDK 8 so we no >> longer have a custom doclet for FX. >> >> -- Kevin >> >> >> Tom Schindl wrote: >> >>> Hi, >>> >>> I can't speak for Netbeans and IntelliJ but now that JavaFX ships the >>> source with the JDK and Eclipse recgonizes this there's a "small" >>> problem with the way JavaFX is using JavaDoc. >>> >>> Take for example Window#onCloseRequest >>> >>> >>> >>>> /** >>>> * Called when there is an external request to close this {@code Window}. >>>> * The installed event handler can prevent window closing by consuming the >>>> * received event. >>>> */ >>>> private ObjectProperty> onCloseRequest; >>>> public final void setOnCloseRequest(EventHandler value) { >>>> onCloseRequestProperty().set(value); >>>> } >>>> public final EventHandler getOnCloseRequest() { >>>> return (onCloseRequest != null) ? onCloseRequest.get() : null; >>>> } >>>> public final ObjectProperty> >>>> onCloseRequestProperty() { >>>> >>>> >>> You'll notice that the documentation is only made on the property but >>> not on the real API methods. >>> >>> I guess the build process copies the documentation somehow at the right >>> position when generating the doc (see >>> http://docs.oracle.com/javafx/2/api/javafx/stage/Window.html#setOnCloseRequest%28javafx.event.EventHandler%29) >>> which doesn't help people with an (Eclipse)IDE which takes the source >>> code as the authority and presents an empty JavaDoc window :-( >>> >>> This is a major feature loss! >>> >>> Tom >>> >>> > > From hang.vo at oracle.com Tue Dec 17 17:47:32 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 18 Dec 2013 01:47:32 +0000 Subject: hg: openjfx/8u-dev/rt: Fix to RT-28883: Rendering artifacts on NVIDIA GeForce 6600 Message-ID: <20131218014837.DF24E62D83@hg.openjdk.java.net> Changeset: cf50d96a6387 Author: Chien Yang Date: 2013-12-17 17:13 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/cf50d96a6387 Fix to RT-28883: Rendering artifacts on NVIDIA GeForce 6600 Reviewed-by: kcr, vadim ! modules/graphics/src/main/native-prism-d3d/D3DBadHardware.h From assaf.yavnai at oracle.com Wed Dec 18 03:03:12 2013 From: assaf.yavnai at oracle.com (Assaf Yavnai) Date: Wed, 18 Dec 2013 13:03:12 +0200 Subject: Programmatic (Java) access to style / layout ? In-Reply-To: <50EA3B8B-6BCA-4A61-A298-2B162A26E38E@oracle.com> References: <50EA3B8B-6BCA-4A61-A298-2B162A26E38E@oracle.com> Message-ID: <52B180F0.9060308@oracle.com> I agree that different people would like different things.... here is mine ;) button.border().hover().setColor(red); This styling is widely used in scripting languages, jQuery is a good example. Its done by always return an object from an operation, in this example setColor() will return the same object that was returned from hover(), allowing further manipulation in the same line of code. For example button.border().hover().setColor(red).setStrokeWidth(10).setBlink(false).setHandler(()->{}); If readability is an issue it can be formatted as: button.border().hover() .setColor(red) .setStrokeWidth(10) .setBlink(false) .setHandler(()->{}); And this reminds me another issue, which may be a fork, but in my point of view its originated from the same approach, which is users manipulate internal data structures directly to do operations. I didn't understand the design decision to expose internal structures in FX to do operations and manipulate them directly. In this case properties, another example is root.getChilderen().add(). This not only expose the internal data structure, but also requires more coding for simple trivial operation. users >90% don't need/care about the internal data structures, but 100% want to write less and simpler code. Usually user just want to do some trivial thing, add, remove, traverse..., for those common cases an alias can be used that encapsulate inside it the data structure used and the language quirks. In this example root.add() would do the trick. Other operations could look similar, like root.clear(), root, remove(...). root.traverse()(will return an iterator). For those edge cases which requires manipulating the data structure directly API can expose them, like root.getChildrensAsList(), or root.getChildren() Combining the 2 approaches and the ability to retrieve the nodes related to the operations in 2 levels, say through .base() and .parent(), would yield the results that Oliver suggested (as I understood them) (hope the layout wouldn't get scrambled upon send) Group root = new Group() .add( new Button() .border() .hover() .setColor(red) .setStrokeWidth(10) .setBlink(false) .setHandler(()->{}) .parent() //parent() return border .setColor(blue) .setBlink(true) .base().caption() //base() return button .setText("button1") .setFontSize(30) .base(), new Button("button 2").caption() .setSize(25) .setHandler(()->{})) .base() )//end of add() .some().other().operation.onGroup() ); my 0.002$ Assaf On 12/17/2013 11:18 PM, David Grieve wrote: > It is possible, but probably not in the way that https://javafx-jira.kenai.com/browse/RT-17293 would provide. By that I mean, it would be nice to be able to progammatically say "the border color for this button when hovered is red." This can be done now by adding an invalidation listener to the hoverProperty and setting the border on Region, but I don' t think this is what you are after. > > I think RT-17923 means different things to different people. I'd be interested to know what such and API would look like to you. > > > On Dec 17, 2013, at 3:39 PM, Oliver Doepner wrote: > >> Hello, >> >> This might have been asked before but I haven't found it: >> Is it possible to style JavaFX components using pure Java (i.e. without >> CSS)? >> >> If this is being worked on, does anyone know what the status is? >> >> I think this is one of the areas where JavaFX can actually be better than >> HTML5/CSS because a nicely typed Java representation of CSS could provide >> great tooling and features that others had to invent LESS or SASS for. >> >> I have seen this (from Oct 2012): >> http://stackoverflow.com/questions/12943501/style-javafx-components-without-css >> >> I have also seen this: https://javafx-jira.kenai.com/browse/RT-17293 >> Last update: Brian >> Beckadded >> a comment - Mar, >> 12 2012 09:01 PM : "It is now past the point where this feature can be >> added for 2.1. Will need to be considered for a future release" >> >> Thanks >> Oliver >> >> -- >> Oliver Doepner >> http://doepner.net/ From tbee at tbee.org Wed Dec 18 03:09:01 2013 From: tbee at tbee.org (Tom Eugelink) Date: Wed, 18 Dec 2013 12:09:01 +0100 Subject: Programmatic (Java) access to style / layout ? In-Reply-To: <52B180F0.9060308@oracle.com> References: <50EA3B8B-6BCA-4A61-A298-2B162A26E38E@oracle.com> <52B180F0.9060308@oracle.com> Message-ID: <52B1824D.3020907@tbee.org> Small side remark: in order to stay compliant with the Java Bean specification, these kind of setters are often implemented as withers (which call the setter and return this): button.border().hover() .withColor(red) .withStrokeWidth(10) .withBlink(false) .withHandler(()->{}); Or as plain methods: button.border().hover() .color(red) .strokeWidth(10) .blink(false) .handler(()->{}); On 2013-12-18 12:03, Assaf Yavnai wrote: > I agree that different people would like different things.... > here is mine ;) > button.border().hover().setColor(red); > > This styling is widely used in scripting languages, jQuery is a good example. Its done by always return an object from an operation, in this example setColor() will return the same object that was returned from hover(), allowing further manipulation in the same line of code. For example button.border().hover().setColor(red).setStrokeWidth(10).setBlink(false).setHandler(()->{}); If readability is an issue it can be formatted as: > > button.border().hover() > .setColor(red) > .setStrokeWidth(10) > .setBlink(false) > .setHandler(()->{}); > > And this reminds me another issue, which may be a fork, but in my point of view its originated from the same approach, which is users manipulate internal data structures directly to do operations. > I didn't understand the design decision to expose internal structures in FX to do operations and manipulate them directly. In this case properties, another example is root.getChilderen().add(). This not only expose the internal data structure, but also requires more coding for simple trivial operation. users >90% don't need/care about the internal data structures, but 100% want to write less and simpler code. Usually user just want to do some trivial thing, add, remove, traverse..., for those common cases an alias can be used that encapsulate inside it the data structure used and the language quirks. In this example root.add() would do the trick. Other operations could look similar, like root.clear(), root, remove(...). root.traverse()(will return an iterator). For those edge cases which requires manipulating the data structure directly API can expose them, like root.getChildrensAsList(), or root.getChildren() > > > Combining the 2 approaches and the ability to retrieve the nodes related to the operations in 2 levels, say through .base() and .parent(), would yield the results that Oliver suggested (as I understood them) > > (hope the layout wouldn't get scrambled upon send) > > Group root = new Group() > .add( new Button() > .border() > .hover() > .setColor(red) > .setStrokeWidth(10) > .setBlink(false) > .setHandler(()->{}) > > .parent() //parent() return border > .setColor(blue) > .setBlink(true) > > .base().caption() //base() return button > .setText("button1") > .setFontSize(30) > .base(), > > new Button("button 2").caption() > .setSize(25) > .setHandler(()->{})) > .base() > )//end of add() > .some().other().operation.onGroup() > ); > > > my 0.002$ > > Assaf > On 12/17/2013 11:18 PM, David Grieve wrote: >> It is possible, but probably not in the way that https://javafx-jira.kenai.com/browse/RT-17293 would provide. By that I mean, it would be nice to be able to progammatically say "the border color for this button when hovered is red." This can be done now by adding an invalidation listener to the hoverProperty and setting the border on Region, but I don' t think this is what you are after. >> >> I think RT-17923 means different things to different people. I'd be interested to know what such and API would look like to you. >> >> >> On Dec 17, 2013, at 3:39 PM, Oliver Doepner wrote: >> >>> Hello, >>> >>> This might have been asked before but I haven't found it: >>> Is it possible to style JavaFX components using pure Java (i.e. without >>> CSS)? >>> >>> If this is being worked on, does anyone know what the status is? >>> >>> I think this is one of the areas where JavaFX can actually be better than >>> HTML5/CSS because a nicely typed Java representation of CSS could provide >>> great tooling and features that others had to invent LESS or SASS for. >>> >>> I have seen this (from Oct 2012): >>> http://stackoverflow.com/questions/12943501/style-javafx-components-without-css >>> >>> I have also seen this: https://javafx-jira.kenai.com/browse/RT-17293 >>> Last update: Brian >>> Beckadded >>> a comment - Mar, >>> 12 2012 09:01 PM : "It is now past the point where this feature can be >>> added for 2.1. Will need to be considered for a future release" >>> >>> Thanks >>> Oliver >>> >>> -- >>> Oliver Doepner >>> http://doepner.net/ > From anthony.petrov at oracle.com Wed Dec 18 06:08:21 2013 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Wed, 18 Dec 2013 18:08:21 +0400 Subject: discussion about touch events In-Reply-To: <52AA1CCC.3050009@oracle.com> References: <5280B6B9.2020605@oracle.com> <5280C770.5030600@oracle.com> <52814C8F.5080009@oracle.com> <52820BB6.8020602@oracle.com> <52820CD8.5060604@oracle.com> <5de9f371-cbee-487e-aff2-8a48e738114d@default> <52868D71.7080101@oracle.com> <528B76E0.9040008@oracle.com> <0C7D7D7C-AA01-4934-B104-769DAFD8F21B@oracle.com> <528C7A9A.50006@oracle.com> <52AA1CCC.3050009@oracle.com> Message-ID: <52B1AC55.7030800@oracle.com> Hi Pavel, I agree with Assaf that it's a bit preliminary to discuss technical detail of the implementation. However, I think that in general the idea with using large-enough rectangular areas for registering Nodes dynamically and picking the "right" one to deliver a touch event might be useful nevertheless. I'd still like to clarify a few points that you've raised: On 12/13/2013 12:30 AM, Pavel Safrata wrote: > let me throw a few random problems without really thinking this through. > First of all, the whole thing relies on HashMaps, but we can't really > use nodes in hash-based collections as they are not immutable. To What do you mean by this exactly? Note that the Node class doesn't override the hashCode() method, so whether it's mutable or not doesn't really matter because its hash code never changes. Therefore, I don't see a reason not to store Nodes in hash-based collections. > maintain the registrations with the rectangles, we would need to do some > computations (bounds) eagerly. Yes. But we only need to compute the bounds relative to the stage (or the scene), which should be doable fast enough for any reasonably deep nodes hierarchy since we don't need to call any native methods for this. > There is again the problem of restricting > to touch-sensitive nodes only. A matter of checking a boolean flag/property before adding a node to a hashtable? I don't think this is a real problem. > Finally, even if your proposal turns out > to work like a charm, it reduces the number of examined nodes, but the > most important and difficult part - how do we choose the right one - > needs to be specified. For this latter part I don't have a solution unfortunately. I only wanted to suggest a way to resolve a performance issue that would arise if we decided to iterate over all the nodes in a scene, or checking intersections pixel-by-pixel. However, I could speculate on this topic. Suppose we're using the above idea, and hence reduce the number of nodes to be checked on each touch event to a reasonably small number. I'd guess, we would have to deal with like 5 nodes at a time. Or maybe a dozen at most, but I hardly imagine how this number could get any higher than this (provided the UI is touch aware and uses nodes of reasonably large dimensions, of course). Now, I think it's not a problem at all to compute the areas of intersections between the "touch-oval" and all the selected nodes (which, remember, there are only a few). The largest intersection would pick up the node to send the touch event to, I guess. -- best regards, Anthony > Regards, > Pavel > > On 20.11.2013 10:02, Anthony Petrov wrote: >> How about you divide the top-level window surface on equal rectangles >> of size, say, 0.5"x0.5" (the size in pixels will depend on the screen >> DPI.) Each rectangle is basically a hashmap of nodes. >> >> The nodes that are touch sensible register and update themselves with >> the rectangles when their layout information changes (when they're >> moved and/or resized). This should work reasonably fast given O(1) >> complexity for hashmap operations. >> >> When processing a touch event, given the low-resolution of the >> rectangle mesh, we can quickly identify a set of rectangles that a >> touch area (an oval) intersects. There usually will be no more than >> four such rectangles. After that we construct a union of all nodes >> laying in those rectangles, and simply iterate over the union to >> choose a node laying closest to the touch area (or having the largest >> intersection with it, whatever.) Again, this should work fast because >> fetching nodes from the hashmaps is fast, and the number of nodes that >> need to be examined should be relatively small. >> >> -- >> best regards, >> Anthony >> >> On 11/19/2013 08:18 PM, Daniel Blaukopf wrote: >>> >>> On Nov 19, 2013, at 4:34 PM, Pavel Safrata >>> wrote: >>> >>>> Hello Daniel, >>>> >>>> On 17.11.2013 15:09, Daniel Blaukopf wrote: >>>>> Hi Pavel, >>>>> >>>>> I think we we do use CSS to configure feel as well as look - and >>>>> this is feel, not look - but I also don?t feel strongly about >>>>> whether this needs to be in CSS. >>>> >>>> This was exactly my point. >>> Yes, we agree. I should have phrased the above differently to show that. >>> >>>> >>>>> >>>>> I like your idea of simply picking the closest touch sensitive node >>>>> that is within range. That puts the burden on the touch event to >>>>> describe what region it covers. On the touch screens we are >>>>> currently looking at, a region would be defined as an oval - a >>>>> combination of centre point, X diameter and Y diameter. However the >>>>> touch region can be any shape, so might need to be represented as a >>>>> Path. >>>> >>>> I don't think we need to be precise about the shape, all of this is >>>> about fixing the imprecise touch where the shape is rather >>>> accidental, I think even a circle with an average diameter would be >>>> sufficient to achieve the goal. >>> For now it certainly is sufficient. However these touch devices can >>> describe more complex shapes for the touch contact area and it is >>> possible we will want to take advantage of that in the future. We >>> should certainly optimize for a circle or oval shape. >>> >>>> >>>>> Iterating over pixels just isn?t going to work though. If we have a >>>>> 300dpi display the touch region could be 150 pixels across and have >>>>> an area of nearly 18000 pixels. Instead we?d want a way to ask a >>>>> parent node, ?In your node hierarchy, which of your nodes? borders >>>>> is closest to this region?. So we?d need to come up with an >>>>> efficient algorithm to answer this question. We?d only ask this >>>>> question for nodes with extended capture zone. >>>> >>>> The nodes with extended capture zone may be fully or partially >>>> hidden behind nodes without it and this needs to be taken into >>>> account. How would it be done when the question would be limited to >>>> nodes with extended capture zone? And even if it wasn't, what would >>>> the position of the border tell us about the area covered by the >>>> node? It can be a line.. Also what I wanted to achieve is pick the >>>> node which has visible pixels in the picking area even if its border >>>> is hidden behind other node or is somewhere far away. This wouldn't >>>> be possible, would it? >>>> >>>>> >>>>> We could reasonably limit the algorithm to dealing with convex shapes. >>>> >>>> Can we? What about paths, polygons etc? >>> I realize that it is possible to describe touch sensitive concave >>> shapes, but I am not sure they matter for this. If developers are >>> going to go to the trouble of defining a concave shape that they want >>> to be touch sensitive within its area but not in all of its bounding >>> box, are they really then going to want that area to be extended? I?d >>> consider a concave touch shape with extended capture zone to be >>> sufficiently unlikely that we could treat it as concave. Which, I >>> realize is not quite what my proposed algorithm does. >>> >>>> >>>>> Then we can consider an imaginary line L from the node center point >>>>> to the touch center point. The intersection of L with the node >>>>> perimeter is the closest point of contact. >>>> >>>> It isn't. Imagine a very wide and flat (small height) rectangle and >>>> the touch point directly above its upper-left corner. The closest >>>> point is the corner, not the point on L which is close to >>>> rectangle's center and may be many times farther. >>> You are correct, my algorithm won?t find the closest node. Back to >>> the drawing board. >>> >>> Thanks, >>> Daniel >>> >>>> >>>>> If this point is also within the touch area then we have a >>>>> potential match. We iterate over all nearby nodes with extended >>>>> capture zone in order to find the best match. >>>>> >>>>> This will then be O(n) in both time and space for n nearby nodes, >>>>> given constant time to find the intersection of L with the node >>>>> perimeter. This assumption will be true for rectangular, oval and >>>>> rounded rectangle nodes. >>>> >>>> So in summary, if I understand this algorithm correctly I don't >>>> think it's going to work. On the other hand, I admit that computing >>>> 18000 pixels is probably not viable. Right now I don't have any >>>> solution, I'll continue thinking.. >>>> >>>> Thanks, >>>> Pavel >>>> >>>>> >>>>> Thanks, >>>>> Daniel >>>>> >>>>> >>>>> On Nov 15, 2013, at 11:09 PM, Pavel Safrata >>>>> wrote: >>>>> >>>>>> Hello, >>>>>> let me start with a few comments. >>>>>> >>>>>> "changing behavior based on which nodes have listeners on them" - >>>>>> absolutely not. We have capturing, bubbling, hierarchical event >>>>>> types, so we can't decide which nodes listen (in the extreme case, >>>>>> scene can handle Event.ANY and perform actions on the target node >>>>>> based on the event type). >>>>>> >>>>>> "position does not fall in the boundaries of the node" - I don't >>>>>> think it will be very harmful. Of course it's possible for users >>>>>> to write handlers that will be affected, but I don't think it >>>>>> happens often, it seems quite hard to invent such handler. The >>>>>> delivery mechanism should be absolutely fine with it, we have >>>>>> other cases like that (for instance, dragging can be delivered to >>>>>> a node completely out of mouse position). Of course picking a 3D >>>>>> node in its capture zone would mean useless PickResult (texture >>>>>> coordinates etc.) >>>>>> >>>>>> CSS-accessible vs. property-only - I don't have a strong opinion. >>>>>> I agree it's rather "feel" than "look", on the other hand I think >>>>>> there are such things already (scrollbar policy for instance). >>>>>> >>>>>> >>>>>> Now I'll bring another problem to the concept. Take the situation >>>>>> from Daniel's original picture with two siblings competing for the >>>>>> capture zones: >>>>>> http://i.imgur.com/ELWamYp.png >>>>>> Put each of the red children to its own group - they are no longer >>>>>> siblings, but the competition should still work. >>>>>> >>>>>> The following may be a little wild, but anyway - have one of the >>>>>> siblings with capture zone and the other one without it, the one >>>>>> without it partly covering the one with it. Wouldn't it be great >>>>>> if the capture zone was present around the visible part of the >>>>>> node (reaching over the edge of the upper node)? I think it would >>>>>> be really intuitive (fuzzy picking of what you see), but it's >>>>>> getting pretty complicated. >>>>>> >>>>>> From now on, I'll call the node with enabled capture zone "touch >>>>>> sensitive". >>>>>> >>>>>> The only algorithm I can think of that would provide great results >>>>>> is: >>>>>> - Pick normally at the center. If the picked node is touch >>>>>> sensitive, return it. >>>>>> - Otherwise, run picking for each pixel in the touch area, find >>>>>> the closest one belonging to a touch sensitive node and return >>>>>> that node (if there is none, then of course return the node at the >>>>>> center). >>>>>> >>>>>> Obviously we can hardly do so many picking rounds. But it can be >>>>>> significantly optimized: >>>>>> - Perform the area picking in one pass, filling an array - >>>>>> representing pixels - by the nodes picked on them >>>>>> - Descend only when bounds intersect with the picking area >>>>>> - Don't look farther from the center than the already found best >>>>>> match >>>>>> - Don't look at pixels with already picked node >>>>>> - For many nodes (rectangular, circular, with pickOnBounds etc.), >>>>>> instead of testing containment many times, we can quickly tell the >>>>>> intersection with the picking area >>>>>> - Perhaps also checking each nth pixel would be sufficient >>>>>> >>>>>> This algorithm should be reasonably easy to code and very robust >>>>>> (not suffering from various node-arrangement corner-cases), but >>>>>> I'm still not sure about the performance (depends mostly on the >>>>>> capture zone size - 30-pixel zones may result in calling >>>>>> contains() nearly thousand times which might kill it). But perhaps >>>>>> (hopefully) it can be perfected. Right now I can't see any other >>>>>> algorithm that would work well and would result in more efficient >>>>>> implementation (the search for overlapping nodes and closest >>>>>> borders etc. is going to be pretty complicated as well, if it's >>>>>> even possible to make it work). >>>>>> >>>>>> What do you think? Any better ideas? >>>>>> >>>>>> Pavel >>>>>> >>>>>> >>>>>> On 13.11.2013 22:09, Daniel Blaukopf wrote: >>>>>>> Hi Seeon, >>>>>>> >>>>>>> Summarizing our face to face talk today: >>>>>>> >>>>>>> I see that the case described by Pavel is indeed a problem and >>>>>>> agree with you that not every node needs to be a participant in >>>>>>> the competition for which grabs touch input. However I?m not keen >>>>>>> on the idea of changing behavior based on which nodes have >>>>>>> listeners on them. CSS seems like the place to do this (as I >>>>>>> think Pavel suggested earlier). In Pavel?s case, either: >>>>>>> - the upper child node has the CSS tag saying ?enable extended >>>>>>> capture zone? and the lower child doesn?t: then the upper child?s >>>>>>> capture zone will extend over the lower child >>>>>>> - or both will have the CSS tag, in which case the upper >>>>>>> child?s capture zone would be competing with the lower child?s >>>>>>> capture zone. As in any other competition >>>>>>> between capture zones the nearest node should win. The effect >>>>>>> would be the same as if the regular matching rules were applied >>>>>>> on the upper child. It would also be the same >>>>>>> as if only the lower child had an extended capture zone. However, >>>>>>> I?d consider this case to be bad UI programming. >>>>>>> >>>>>>> We agreed that ?in a competition between capture zones, pick the >>>>>>> node whose border is nearest the touch point? was a reasonable >>>>>>> way to resolve things. >>>>>>> >>>>>>> Thanks, >>>>>>> Daniel >>>>>>> >>>>>>> On Nov 13, 2013, at 12:31 PM, Seeon Birger >>>>>>> wrote: >>>>>>> >>>>>>>> Hi Pavel, >>>>>>>> >>>>>>>> Your example of 'child over child' is an interesting case which >>>>>>>> raises some design aspects of the desired picking algorithm: >>>>>>>> 1. Which node to pick when one node has a 'strict containership' >>>>>>>> over the touch center and the other node only has a fuzzy >>>>>>>> containership (the position falls in the fuzzy area). >>>>>>>> 2. Accounting for z-order for extended capture zone area. >>>>>>>> 3. Accounting for parent-child relationship. >>>>>>>> >>>>>>>> Referring to your 'child over child' example: >>>>>>>> http://i.imgur.com/e92qEJA.jpg >>>>>>>> >>>>>>>> The conflict would arise were touch point center position falls >>>>>>>> in the capture zone area of child2 but also clearly falls in the >>>>>>>> strict bounds of child1. >>>>>>>> Generally, when two control nodes compete on same touch event >>>>>>>> (e.g. child1 & child2 in Daniel's diagram), it seems that we >>>>>>>> would like to give priority to "strict containership" over >>>>>>>> "fuzzy containership". >>>>>>>> But in your case it's probably not the desired behavior. >>>>>>>> >>>>>>>> Also note that in the general case there's almost always exists >>>>>>>> come container/background node that strictly contains the touch >>>>>>>> point, but it would probably be an ancestor of the child node, >>>>>>>> so the usual parent-child relationship order will give >>>>>>>> preference to the child. >>>>>>>> >>>>>>>> One way out it is to honor the usual z-order for the extended >>>>>>>> area of child2, so when a touch center hits the fuzzy area of >>>>>>>> child2, then child2 would be picked. >>>>>>>> >>>>>>>> But is not ideal for Daniel's example: >>>>>>>> http://i.imgur.com/ELWamYp.png >>>>>>>> >>>>>>>> where the 2 nodes don't strictly overlap, but their capture >>>>>>>> zones do. Preferring one child by z-order (which matches the >>>>>>>> order of children in the parent) is not natural here. And we >>>>>>>> might better choose the node which is "closer" >>>>>>>> To the touch point. >>>>>>>> >>>>>>>> So to summarize I suggest this rough picking algorithm: >>>>>>>> 1. Choose all uppermost nodes which are not transparent to mouse >>>>>>>> events and contain the touch point center either strictly or by >>>>>>>> their capture zone. >>>>>>>> 2. Remove all nodes that is strictly overlapped by another node >>>>>>>> and is below that node by z-order. >>>>>>>> 3. Out of those left choose the "closest" node. (the concept of >>>>>>>> "closet" should employ some calculation which might not be >>>>>>>> trivial in the general case). >>>>>>>> 4. Once a node has been picked, we follow the usual node chain >>>>>>>> list for event processing. >>>>>>>> >>>>>>>> Care must be taken so we not break the current model for event >>>>>>>> processing. For example, if a node is picked by its capture >>>>>>>> zone, it means that the position does not fall in the boundaries >>>>>>>> of the node, so existing event handling code that relies on that >>>>>>>> would break. So I think the capture zone feature should be >>>>>>>> selectively enabled for certain type of nodes such buttons or >>>>>>>> other classic controls. >>>>>>>> >>>>>>>> Regards, >>>>>>>> Seeon >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -----Original Message----- >>>>>>>> From: Pavel Safrata >>>>>>>> Sent: Tuesday, November 12, 2013 1:11 PM >>>>>>>> To: Daniel Blaukopf >>>>>>>> Cc: OpenJFX >>>>>>>> Subject: Re: discussion about touch events >>>>>>>> >>>>>>>> (Now my answer using external link) >>>>>>>> >>>>>>>> Hello Daniel, >>>>>>>> this is quite similar to my idea described earlier. The major >>>>>>>> difference is the "fair division of capture zones" among >>>>>>>> siblings. It's an interesting idea, let's explore it. What pops >>>>>>>> first is that children can also overlap. So I think it would >>>>>>>> behave like this (green capture zones >>>>>>>> omitted): >>>>>>>> >>>>>>>> Child in parent vs. Child over child: >>>>>>>> http://i.imgur.com/e92qEJA.jpg >>>>>>>> >>>>>>>> ..wouldn't it? From user's point of view this seems confusing, >>>>>>>> both cases look the same but behave differently. Note that in >>>>>>>> the case on the right, the parent may be still the same, >>>>>>>> developer only adds a fancy background as a new child and >>>>>>>> suddenly the red child can't be hit that easily. What do you >>>>>>>> think? Is it an issue? Or would it not behave this way? >>>>>>>> >>>>>>>> Regards, >>>>>>>> Pavel >>>>>>>> >>>>>>>> On 12.11.2013 12:06, Daniel Blaukopf wrote: >>>>>>>>> (My original message didn't get through to openjfx-dev because >>>>>>>>> I used >>>>>>>>> inline images. I've replaced those images with external links) >>>>>>>>> >>>>>>>>> On Nov 11, 2013, at 11:30 PM, Pavel Safrata >>>>>>>>> >>>>>>>> > wrote: >>>>>>>>> >>>>>>>>>> On 11.11.2013 17:49, Tomas Mikula wrote: >>>>>>>>>>> On Mon, Nov 11, 2013 at 1:28 PM, Philipp D?rfler >>>>>>>>>>> > wrote: >>>>>>>>>>>> I see the need to be aware of the area that is covered by >>>>>>>>>>>> fingers >>>>>>>>>>>> rather than just considering that area's center point. >>>>>>>>>>>> I'd guess that this adds a new layer of complexity, though. For >>>>>>>>>>>> instance: >>>>>>>>>>>> Say we have a button on some background and both the >>>>>>>>>>>> background and >>>>>>>>>>>> the button do have an onClick listener attached. If you tap the >>>>>>>>>>>> button in a way that the touched area's center point is >>>>>>>>>>>> outside of >>>>>>>>>>>> the buttons boundaries - what event will be fired? Will both >>>>>>>>>>>> the >>>>>>>>>>>> background and the button receive a click event? Or just >>>>>>>>>>>> either the >>>>>>>>>>>> background or the button exclusively? Will there be a new event >>>>>>>>>>>> type which gets fired in case of such area-based taps? >>>>>>>>>>>> >>>>>>>>>>>> My suggestion would therefore be to have an additional area tap >>>>>>>>>>>> event which gives precise information about diameter and >>>>>>>>>>>> center of >>>>>>>>>>>> the tap. Besides that there should be some kind of >>>>>>>>>>>> "priority" for >>>>>>>>>>>> choosing which node's onClick will be called. >>>>>>>>>>> What about picking the one that is closest to the center of >>>>>>>>>>> the touch? >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> There is always something directly on the center of the touch >>>>>>>>>> (possibly the scene background, but it can have event handlers >>>>>>>>>> too). >>>>>>>>>> That's what we pick right now. >>>>>>>>>> Pavel >>>>>>>>> >>>>>>>>> What Seeon, Assaf and I discussed earlier was building some >>>>>>>>> fuzziness >>>>>>>>> into the node picker so that instead of each node capturing only >>>>>>>>> events directly on top of it: >>>>>>>>> >>>>>>>>> Non-fuzzy picker: http://i.imgur.com/uszql8V.png >>>>>>>>> >>>>>>>>> ..nodes at each level of the hierarchy would capture events beyond >>>>>>>>> their borders as well: >>>>>>>>> >>>>>>>>> Fuzzy picker: http://i.imgur.com/ELWamYp.png >>>>>>>>> >>>>>>>>> In the above, "Parent" would capture touch events within a certain >>>>>>>>> radius around it, as would its children "Child 1" and "Child >>>>>>>>> 2". Since >>>>>>>>> "Child 1" and "Child 2" are peers, they would have a sharp >>>>>>>>> division >>>>>>>>> between them, a watershed on either side of which events would >>>>>>>>> go to >>>>>>>>> one child node or the other. This would also apply if the peer >>>>>>>>> nodes >>>>>>>>> were further apart; they would divide the no-man's land between >>>>>>>>> them. >>>>>>>>> Of course this no-man's land would be part of "Parent" and >>>>>>>>> could could >>>>>>>>> be touch-sensitive - but we won't consider "Parent" as an event >>>>>>>>> target >>>>>>>>> until we have ruled out using one of its children's extended >>>>>>>>> capture >>>>>>>>> zones. >>>>>>>>> >>>>>>>>> The capture radius could either be a styleable property on the >>>>>>>>> nodes, >>>>>>>>> or could be determined by the X and Y size of a touch point as >>>>>>>>> reported by the touch screen. We'd still be reporting a touch >>>>>>>>> point, >>>>>>>>> not a touch area. The touch target would be, as now, a single >>>>>>>>> node. >>>>>>>>> >>>>>>>>> This would get us more reliable touch capture at leaf nodes of the >>>>>>>>> node hierarchy at the expense of it being harder to tap the >>>>>>>>> background. This is likely to be a good trade-off. >>>>>>>>> >>>>>>>>> Daniel >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> Tomas >>>>>>>>>>> >>>>>>>>>>>> Maybe the draw order / order in the scene graph / z buffer >>>>>>>>>>>> value >>>>>>>>>>>> might be sufficient to model what would happen in the real, >>>>>>>>>>>> physical world. >>>>>>>>>>>> Am 11.11.2013 13:05 schrieb "Assaf Yavnai" >>>>>>>>>>>> >>>>>>>>>>> >: >>>>>>>>>>>> >>>>>>>>>>>>> The ascii sketch looked fine on my screen before I sent the >>>>>>>>>>>>> mail >>>>>>>>>>>>> :( I hope the idea is clear from the text (now in the reply >>>>>>>>>>>>> dialog >>>>>>>>>>>>> its also look good) >>>>>>>>>>>>> >>>>>>>>>>>>> Assaf >>>>>>>>>>>>> On 11/11/2013 12:51 PM, Assaf Yavnai wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi Guys, >>>>>>>>>>>>>> >>>>>>>>>>>>>> I hope that I'm right about this, but it seems that touch >>>>>>>>>>>>>> events >>>>>>>>>>>>>> in glass are translated (and reported) as a single point >>>>>>>>>>>>>> events >>>>>>>>>>>>>> (x & y) without an area, like pointer events. >>>>>>>>>>>>>> AFAIK, the controls response for touch events same as mouse >>>>>>>>>>>>>> events (using the same pickers) and as a result a button >>>>>>>>>>>>>> press, >>>>>>>>>>>>>> for example, will only triggered if the x & y of the touch >>>>>>>>>>>>>> event >>>>>>>>>>>>>> is within the control area. >>>>>>>>>>>>>> >>>>>>>>>>>>>> This means that small controls, or even quite large controls >>>>>>>>>>>>>> (like buttons with text) will often get missed because the >>>>>>>>>>>>>> 'strict' >>>>>>>>>>>>>> node picking, >>>>>>>>>>>>>> although from a UX point of view it is strange as the user >>>>>>>>>>>>>> clearly pressed on a node (the finger was clearly above >>>>>>>>>>>>>> it) but >>>>>>>>>>>>>> nothing happens... >>>>>>>>>>>>>> >>>>>>>>>>>>>> With current implementation its hard to use small features in >>>>>>>>>>>>>> controls, like scrollbars in lists, and it almost >>>>>>>>>>>>>> impossible to >>>>>>>>>>>>>> implement something like 'screen navigator' (the series of >>>>>>>>>>>>>> small >>>>>>>>>>>>>> dots in the bottom of a smart phones screen which allow >>>>>>>>>>>>>> you to >>>>>>>>>>>>>> jump directly to a 'far away' >>>>>>>>>>>>>> screen) >>>>>>>>>>>>>> >>>>>>>>>>>>>> To illustrate it consider the bellow low resolution >>>>>>>>>>>>>> sketch, where >>>>>>>>>>>>>> the "+" >>>>>>>>>>>>>> is the actual x,y reported, the ellipse is the finger >>>>>>>>>>>>>> touch area >>>>>>>>>>>>>> and the rectangle is the node. >>>>>>>>>>>>>> With current implementation this type of tap will not >>>>>>>>>>>>>> trigger the >>>>>>>>>>>>>> node handlers >>>>>>>>>>>>>> >>>>>>>>>>>>>> __ >>>>>>>>>>>>>> / \ >>>>>>>>>>>>>> / \ >>>>>>>>>>>>>> ___/ __+_ \___ in this scenario the 'button' >>>>>>>>>>>>>> will not get >>>>>>>>>>>>>> pressed >>>>>>>>>>>>>> | \ / | >>>>>>>>>>>>>> |___\ ___ / __ | >>>>>>>>>>>>>> \___/ >>>>>>>>>>>>>> >>>>>>>>>>>>>> If your smart phone support it, turn on the touch debugging >>>>>>>>>>>>>> options in settings and see that each point translate to a >>>>>>>>>>>>>> quite >>>>>>>>>>>>>> large circle and what ever fall in it, or reasonably close >>>>>>>>>>>>>> to it, >>>>>>>>>>>>>> get picked. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I want to start a discussion to understand if my >>>>>>>>>>>>>> perspective is >>>>>>>>>>>>>> accurate and to understand what can be done, if any, for the >>>>>>>>>>>>>> coming release or the next one. >>>>>>>>>>>>>> >>>>>>>>>>>>>> We might use recently opened RT-34136 >>>>>>>>>>>>>> >>>>>>>>>>>>> com/browse/RT-34136> for logging this, or open a new JIRA >>>>>>>>>>>>>> for it >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>> Assaf >>>>>>> >>>>>> >>>>> >>>> >>> > From tom.schindl at bestsolution.at Wed Dec 18 10:45:42 2013 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Wed, 18 Dec 2013 19:45:42 +0100 Subject: JavaFX JavaDoc and IDEs In-Reply-To: <52B0D4D5.2070002@oracle.com> References: <52B0C8B4.6030106@bestsolution.at> <52B0CC34.40807@oracle.com> <52B0D0D9.7000901@bestsolution.at> <52B0D4D5.2070002@oracle.com> Message-ID: <52B1ED56.8090206@bestsolution.at> Hi Kevin, I guess there's no formal spec for this? Maybe at least http://download.java.net/jdk8/docs/technotes/tools/windows/javadoc.html should mention this? Maybe this impossible because FX is JSRed? Tom On 17.12.13 23:48, Kevin Rushforth wrote: > That's basically what the doclet does. Here is the JDK JIRA for this > (first introduced in 7u6...I hadn't remembered it was that early): > > https://bugs.openjdk.java.net/browse/JDK-7112427 > > And here is the JDK 8 changeset that implements it: > > http://hg.openjdk.java.net/jdk8/jdk8/langtools/rev/ccbe7ffdd867 > > -- Kevin > > > Tom Schindl wrote: >> So you say the IDEs must learn that when they encounter a method which >> has no JavaDoc to search for the property definition and show that one? >> >> Tom >> >> On 17.12.13 23:12, Kevin Rushforth wrote: >> >>> Actually, the JDK 8 doclet that handles this automatically. They added >>> support for FX-style properties, among other things, in JDK 8 so we no >>> longer have a custom doclet for FX. >>> >>> -- Kevin >>> >>> >>> Tom Schindl wrote: >>> >>>> Hi, >>>> >>>> I can't speak for Netbeans and IntelliJ but now that JavaFX ships the >>>> source with the JDK and Eclipse recgonizes this there's a "small" >>>> problem with the way JavaFX is using JavaDoc. >>>> >>>> Take for example Window#onCloseRequest >>>> >>>> >>>> >>>>> /** >>>>> * Called when there is an external request to close this {@code Window}. >>>>> * The installed event handler can prevent window closing by consuming the >>>>> * received event. >>>>> */ >>>>> private ObjectProperty> onCloseRequest; >>>>> public final void setOnCloseRequest(EventHandler value) { >>>>> onCloseRequestProperty().set(value); >>>>> } >>>>> public final EventHandler getOnCloseRequest() { >>>>> return (onCloseRequest != null) ? onCloseRequest.get() : null; >>>>> } >>>>> public final ObjectProperty> >>>>> onCloseRequestProperty() { >>>>> >>>>> >>>> You'll notice that the documentation is only made on the property but >>>> not on the real API methods. >>>> >>>> I guess the build process copies the documentation somehow at the right >>>> position when generating the doc (see >>>> http://docs.oracle.com/javafx/2/api/javafx/stage/Window.html#setOnCloseRequest%28javafx.event.EventHandler%29) >>>> which doesn't help people with an (Eclipse)IDE which takes the source >>>> code as the authority and presents an empty JavaDoc window :-( >>>> >>>> This is a major feature loss! >>>> >>>> Tom >>>> >>>> >> >> From steve.x.northover at oracle.com Wed Dec 18 11:32:55 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Wed, 18 Dec 2013 14:32:55 -0500 Subject: In(Sanity) Testing Mondays Message-ID: <52B1F867.5020402@oracle.com> Hi all, So the sanity testing was a success. I would not say that the universe has been fundamentally altered because of it but the idea that there is a weekly formal time when we kick the tires of FX is a good one. There were some problems getting the correct bits to test but that will be resolved for next week. We will be doing this next week and for the foreseeable future as it was a good forcing function for people to get their environments up to date and make sure that things were generally working. The big winner as a test case was HelloSanity. Although Ensemble exercises much of FX, some committers found the UI to be somewhat cumbersome for testing. There is so much functionality in Ensemble, that a comprehensive test just takes too long. Ensemble is still very important, but perhaps not the best sanity vehicle. I'm thinking that in future, we will look towards testing the FX toys that have recently been open sourced instead of having so many committers poking Ensemble. Further, we need to add some more 3D testing to the list of apps we run (3DViewer). In order to avoid entering duplicates, on the day of the testing, we won't process outstanding issues so that testers can quickly scan the "One True Dashboard". https://javafx-jira.kenai.com/secure/Dashboard.jspa?selectPageId=11893 So we will be sanity testing next Monday the 23rd and after that refining the process as we go. As we approach our first 8u20 milestone, the testing effort will ramp up but we can discuss specifics closer to the date. https://wiki.openjdk.java.net/display/OpenJFX/8u20 Steve From ali.ebrahimi1781 at gmail.com Wed Dec 18 12:43:05 2013 From: ali.ebrahimi1781 at gmail.com (Ali Ebrahimi) Date: Thu, 19 Dec 2013 00:13:05 +0330 Subject: In(Sanity) Testing Mondays In-Reply-To: <52B1F867.5020402@oracle.com> References: <52B1F867.5020402@oracle.com> Message-ID: I think there is a typo in wiki page: M1: January 13, 2013 => M1: January 13, 2014 Best Regards, Ali Ebrahimi On Wed, Dec 18, 2013 at 11:02 PM, Stephen F Northover < steve.x.northover at oracle.com> wrote: > Hi all, > > So the sanity testing was a success. I would not say that the universe > has been fundamentally altered because of it but the idea that there is a > weekly formal time when we kick the tires of FX is a good one. There were > some problems getting the correct bits to test but that will be resolved > for next week. We will be doing this next week and for the foreseeable > future as it was a good forcing function for people to get their > environments up to date and make sure that things were generally working. > > The big winner as a test case was HelloSanity. Although Ensemble > exercises much of FX, some committers found the UI to be somewhat > cumbersome for testing. There is so much functionality in Ensemble, that a > comprehensive test just takes too long. Ensemble is still very important, > but perhaps not the best sanity vehicle. I'm thinking that in future, we > will look towards testing the FX toys that have recently been open sourced > instead of having so many committers poking Ensemble. Further, we need to > add some more 3D testing to the list of apps we run (3DViewer). > > In order to avoid entering duplicates, on the day of the testing, we won't > process outstanding issues so that testers can quickly scan the "One True > Dashboard". > > https://javafx-jira.kenai.com/secure/Dashboard.jspa?selectPageId=11893 > > So we will be sanity testing next Monday the 23rd and after that refining > the process as we go. As we approach our first 8u20 milestone, the testing > effort will ramp up but we can discuss specifics closer to the date. > > https://wiki.openjdk.java.net/display/OpenJFX/8u20 > > Steve > From steve.x.northover at oracle.com Wed Dec 18 12:45:13 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Wed, 18 Dec 2013 15:45:13 -0500 Subject: In(Sanity) Testing Mondays In-Reply-To: References: <52B1F867.5020402@oracle.com> Message-ID: <52B20959.8030009@oracle.com> Thanks. Fixed. On 2013-12-18 3:43 PM, Ali Ebrahimi wrote: > I think there is a typo in wiki page: > > > M1: January 13, 2013 > > => > > > M1: January 13, 2014 > > > > Best Regards, > > Ali Ebrahimi > > > > On Wed, Dec 18, 2013 at 11:02 PM, Stephen F Northover > > > wrote: > > Hi all, > > So the sanity testing was a success. I would not say that the > universe has been fundamentally altered because of it but the idea > that there is a weekly formal time when we kick the tires of FX is > a good one. There were some problems getting the correct bits to > test but that will be resolved for next week. We will be doing > this next week and for the foreseeable future as it was a good > forcing function for people to get their environments up to date > and make sure that things were generally working. > > The big winner as a test case was HelloSanity. Although Ensemble > exercises much of FX, some committers found the UI to be somewhat > cumbersome for testing. There is so much functionality in > Ensemble, that a comprehensive test just takes too long. Ensemble > is still very important, but perhaps not the best sanity vehicle. > I'm thinking that in future, we will look towards testing the FX > toys that have recently been open sourced instead of having so > many committers poking Ensemble. Further, we need to add some > more 3D testing to the list of apps we run (3DViewer). > > In order to avoid entering duplicates, on the day of the testing, > we won't process outstanding issues so that testers can quickly > scan the "One True Dashboard". > > https://javafx-jira.kenai.com/secure/Dashboard.jspa?selectPageId=11893 > > So we will be sanity testing next Monday the 23rd and after that > refining the process as we go. As we approach our first 8u20 > milestone, the testing effort will ramp up but we can discuss > specifics closer to the date. > > https://wiki.openjdk.java.net/display/OpenJFX/8u20 > > Steve > > From hang.vo at oracle.com Wed Dec 18 16:17:30 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 19 Dec 2013 00:17:30 +0000 Subject: hg: openjfx/8u-dev/rt: 9 new changesets Message-ID: <20131219002122.B8C9162DC2@hg.openjdk.java.net> Changeset: 6953f0602cb7 Author: jgiles Date: 2013-12-16 16:36 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/6953f0602cb7 [TEST ONLY] @Ignore'd unit tests for RT-34407: [TableView, TreeView, TreeTableView] shift+PgUp/Down deselection is incorrect. A fix may or may not be forthcoming, but in the meantime I wanted to commit these unit tests to the repo so that they can be used whenever RT-34407 is fixed. ! modules/controls/src/test/java/javafx/scene/control/ListViewKeyInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TableViewKeyInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewKeyInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeViewKeyInputTest.java Changeset: 4d5e31cb54d1 Author: jgiles Date: 2013-12-17 12:34 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/4d5e31cb54d1 RT-34915: [TableView, TreeTableView] sort order dots are not always drawn immediately ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableColumnHeader.java Changeset: dabee4f56388 Author: jgiles Date: 2013-12-17 12:47 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/dabee4f56388 RT-34914: [TableView, TreeTableView] sort order dots beneath arrow are not centered ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableColumnHeader.java Changeset: 7a85b9cf6241 Author: jgiles Date: 2013-12-18 11:05 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/7a85b9cf6241 RT-34634: Mac: Memory leak when Menu.useSystemMenuBar(true) is used. Reviewed-by: leifs ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/MenuBarSkin.java Changeset: 2d7e3f9f76ec Author: jgiles Date: 2013-12-18 12:07 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/2d7e3f9f76ec RT-34924: [ColorPicker] Null pointer (NPE) when pressing down arrow ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ColorPalette.java Changeset: 8fef5aaf49f8 Author: jgiles Date: 2013-12-18 12:36 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/8fef5aaf49f8 RT-34626: AreaChart fills the area above the chart when y axis starts with value bigger than 0 ! modules/controls/src/main/java/javafx/scene/chart/AreaChart.java Changeset: 6cb6225e0708 Author: jgiles Date: 2013-12-18 13:35 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/6cb6225e0708 RT-34692: [TabPane] resize doesn't happen on tab adding/removing ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TabPaneSkin.java Changeset: a6dbe9cc05a0 Author: jgiles Date: 2013-12-19 12:19 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/a6dbe9cc05a0 RT-35013: A SplitPane used inside a TabPane is not being rendered until I resize the Stage ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TabPaneSkin.java ! modules/controls/src/test/java/javafx/scene/control/TabPaneTest.java Changeset: 6ec6a557a2c4 Author: leifs Date: 2013-12-18 16:10 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/6ec6a557a2c4 RT-34959: [TextArea] TextArea with null text throws NPE on focus change ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TextAreaBehavior.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/Utils.java From hang.vo at oracle.com Thu Dec 19 09:32:34 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 19 Dec 2013 17:32:34 +0000 Subject: hg: openjfx/8u-dev/rt: [rt/toys] Fix for RT-32060: Swipe functionality is not working in HelloSanity Message-ID: <20131219173301.3D72762DE5@hg.openjdk.java.net> Changeset: c7848c7b7ae7 Author: Elina Kleyman Date: 2013-12-19 19:29 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/c7848c7b7ae7 [rt/toys] Fix for RT-32060: Swipe functionality is not working in HelloSanity ! apps/toys/Hello/src/main/java/hello/TestBuilder.java From tomas.mikula at gmail.com Thu Dec 19 10:47:48 2013 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Thu, 19 Dec 2013 19:47:48 +0100 Subject: CodeArea (almost) ready to support a rich-text editor Message-ID: I made a bunch of improvements to CodeArea [1], most notably two: 1. line wrapping 2. arbitrary (generic) style information (instead of just style classes before). Your style information can be anything, as long as you provide a way (read lambda function) to either a) convert it to a CSS string; or b) apply it directly to a Text node. This means that CodeArea can now support a rich-text editor. What you might be missing is paragraph-level styles (for e.g. headings, text alignment) and that Undo now works on plain text, so if you undo an redo, you lose your style information. These will be coming in the next year, so you can start hacking your rich-text editor now. Regards, Tomas [1] https://github.com/TomasMikula/CodeAreaFX On Wed, Oct 9, 2013 at 1:39 AM, Tomas Mikula wrote: > Thanks, Jonathan. > > On Tue, Oct 8, 2013 at 9:08 PM, Jonathan Giles > wrote: > > Tomas, > > > > Very nice work! :-) > > > > The first step in the process to contribute features / bug fixes back > > into OpenJFX is to create a Jira issue (or find one that covers the > > topic). In the case of styled text ranges I don't believe a Jira issue > > exists, so feel free to open a new issue. This will be the way we can > > see what is popular and still outstanding in JavaFX, and of course > > discuss details. > > > > I'm not clear on how closely your approach is related to Tom's, but > > perhaps there is sufficient overlap there that you can collaborate. > > I think the main differences are: > 1. Tom's StyledTextArea assigns styles, while my CodeArea assigns > style classes. I think my approach is easier to work with, but less > powerful (you can only use styles pre-defined in a stylesheet, thus > you can't implement a rich text editor on top of CodeArea). > 2. StyledTextArea's API assigns styles for the whole content at once, > CodeArea assigns one range at a time. I think both approaches have > their use and I plan to add support for batch assignment for > performance reasons. > 3. AFAIK, StyledTextArea does not support text selection. > 4. Compared to TextArea, CodeArea supports detailed change events > (which part of text was replaced) via TextChangeListener > ( > http://tomasmikula.github.io/CodeAreaFX/codearea/control/TextChangeListener.html > ). > Not sure about StyledTextArea. > > > This > > may help to improve your API and implementation prior to it being > > considered for integration into OpenJFX, and will of course help to > > prevent duplication of effort. > > I don't consider the API to be final, quite opposite, I expect changes > arising from the community and from my own needs. I'm open to feedback > and suggestions. > > Regards, > Tomas > > > > > Keep up the great work and be sure to keep me in the loop of your > > progress :-) > > > > -- Jonathan > > > > On 8/10/2013 2:48 a.m., Tomas Mikula wrote: > >> Hi all, > >> > >> I implemented a text control that supports assigning style classes to > >> portions of text. It is meant to be used for syntax highlighting. > >> > >> https://github.com/TomasMikula/CodeAreaFX > >> > >> The code is based on the original TextArea code. This implies the > >> license to be GPLv2 with the Classpath Exception. I would be happy to > >> contribute it back to the OpenJFX project. > >> The idea of using a ListView of TextFlows is borrowed from Tom > >> Schindl's StyledTextArea > >> (http://fxexperience.com/2013/02/interview-with-tom-schindl-2/). > >> > >> Check out the demos and the APIs. Feedback really appreciated. Any > >> help with the issues > >> (https://github.com/TomasMikula/CodeAreaFX/wiki/Known-Issues) would be > >> awesome. > >> > >> Best, > >> Tomas > > > From hang.vo at oracle.com Thu Dec 19 11:47:29 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 19 Dec 2013 19:47:29 +0000 Subject: hg: openjfx/8u-dev/rt: [TOYS] correcting missing resource for HelloMenu Message-ID: <20131219194805.118F362DF8@hg.openjdk.java.net> Changeset: 7fba0727e350 Author: ddhill Date: 2013-12-19 14:35 -0500 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/7fba0727e350 [TOYS] correcting missing resource for HelloMenu Reviewed-by: kcr ! apps/toys/Hello/src/main/java/hello/LabelBorders.css + apps/toys/Hello/src/main/java/hello/border.png From hang.vo at oracle.com Thu Dec 19 13:47:42 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 19 Dec 2013 21:47:42 +0000 Subject: hg: openjfx/8u-dev/rt: ECLIPSE ONLY: fix .classpath files Message-ID: <20131219214819.CB41662DFE@hg.openjdk.java.net> Changeset: 346f3c92ca65 Author: snorthov Date: 2013-12-19 16:38 -0500 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/346f3c92ca65 ECLIPSE ONLY: fix .classpath files + apps/experiments/.classpath + apps/experiments/.project - apps/experiments/3DViewer/.classpath - apps/experiments/3DViewer/.project - apps/experiments/Modena/.classpath - apps/experiments/Modena/.project + apps/samples/.classpath + apps/samples/.project - apps/samples/Ensemble8/.classpath - apps/samples/Ensemble8/.project + apps/toys/.classpath + apps/toys/.project From david.grieve at oracle.com Thu Dec 19 15:02:00 2013 From: david.grieve at oracle.com (David Grieve) Date: Thu, 19 Dec 2013 18:02:00 -0500 Subject: (in)sanity testing In-Reply-To: <52B317B3.9020409@oracle.com> References: <52B1F70B.2080801@oracle.com> <8240713A-F40B-4792-8888-95BEE9F7C09C@oracle.com> <52B317B3.9020409@oracle.com> Message-ID: Excellent idea. I'm glad I thought of it. ;^) On Dec 19, 2013, at 10:58 AM, Lisa Selle wrote: > BTW, if you are spending time on this ;) it would be worthwhile to also be able to choose large "groups" of associated tests (rather than having to hand-select 27 different controls test, for example). Something like basic graphics, extended graphics, all controls, media, 3D, etc. > > What do you think? > > Lisa > > On 12/19/2013 10:47 AM, David Grieve wrote: >> I typically ran rt-closed/toys/run-many.sh >> >> On the plane to Houston, I started playing with a UI that will list all of the Hello applications with a list of checkboxes that you can use to select what you want to run. Worthwhile? >> >> On Dec 18, 2013, at 2:27 PM, Lisa Selle wrote: >> >>> Hi guys, >>> >>> I'm working on getting us some better test lists to run (besides just ensemble). David, you mentioned in the meeting yesterday that the toys/HelloXXX offered better coverage on controls in general than ensemble. Could you come up with a reasonable list of HelloXXX controls tests that could be run in, say, 1/2 hour? Then I'll put together a run script similar to run-many.sh and that will be one of the test assignments. >>> >>> Thanks for your help in this! >>> >>> Lisa > From lisa.selle at oracle.com Thu Dec 19 15:56:34 2013 From: lisa.selle at oracle.com (Lisa Selle) Date: Thu, 19 Dec 2013 18:56:34 -0500 Subject: In(Sanity) Testing Mondays In-Reply-To: <52B1F867.5020402@oracle.com> References: <52B1F867.5020402@oracle.com> Message-ID: <52B387B2.6020002@oracle.com> Hi all, Steve and I have update the test matrix for the coming weeks. Due to US holidays, this matrix will stay in place until next year. For the desktop team, we aimed to have two people cover each part of ensemble on various platforms, for embedded (since we have fewer people), one person testing each part of ensemble. For both teams we had toys-subset and toys-controls (the two main groups of tests) tested by 2 people each. Vacations are not taken into account, so it's possible some test coverage will be missed each week but the overall coverage should be reasonable, especially given the slower rate of change that's likely due to the holidays. Thanks, Lisa and Steve On 12/18/2013 2:32 PM, Stephen F Northover wrote: > Hi all, > > So the sanity testing was a success. I would not say that the > universe has been fundamentally altered because of it but the idea > that there is a weekly formal time when we kick the tires of FX is a > good one. There were some problems getting the correct bits to test > but that will be resolved for next week. We will be doing this next > week and for the foreseeable future as it was a good forcing function > for people to get their environments up to date and make sure that > things were generally working. > > The big winner as a test case was HelloSanity. Although Ensemble > exercises much of FX, some committers found the UI to be somewhat > cumbersome for testing. There is so much functionality in Ensemble, > that a comprehensive test just takes too long. Ensemble is still very > important, but perhaps not the best sanity vehicle. I'm thinking that > in future, we will look towards testing the FX toys that have recently > been open sourced instead of having so many committers poking > Ensemble. Further, we need to add some more 3D testing to the list of > apps we run (3DViewer). > > In order to avoid entering duplicates, on the day of the testing, we > won't process outstanding issues so that testers can quickly scan the > "One True Dashboard". > > https://javafx-jira.kenai.com/secure/Dashboard.jspa?selectPageId=11893 > > So we will be sanity testing next Monday the 23rd and after that > refining the process as we go. As we approach our first 8u20 > milestone, the testing effort will ramp up but we can discuss > specifics closer to the date. > > https://wiki.openjdk.java.net/display/OpenJFX/8u20 > > Steve From hang.vo at oracle.com Thu Dec 19 18:24:45 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 20 Dec 2013 02:24:45 +0000 Subject: hg: openjfx/8/master/rt: 10 new changesets Message-ID: <20131220022746.D1EEB62E0C@hg.openjdk.java.net> Changeset: 11513f640f48 Author: mv157916 Date: 2013-12-12 16:00 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/11513f640f48 RT-34877: Update the JDK 8 build number to b120 in rt/build.properties file in the JavaFX 8 Master forest. ! build.properties Changeset: b7940b612df5 Author: Felipe Heidrich Date: 2013-12-06 13:32 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/b7940b612df5 RT-34244: fx applet hangs if java console is not shown Reviewed-by: Kevin, Anthony, Thomas ! modules/graphics/src/main/java/com/sun/javafx/font/FontFactory.java ! modules/graphics/src/main/java/com/sun/javafx/font/LogicalFont.java ! modules/graphics/src/main/java/com/sun/javafx/font/PrismFontFactory.java ! modules/graphics/src/main/java/com/sun/javafx/font/PrismFontLoader.java ! modules/graphics/src/main/java/com/sun/prism/j2d/J2DFontFactory.java Changeset: 0f28c98557a2 Author: Anthony Petrov Date: 2013-12-12 23:53 +0400 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/0f28c98557a2 RT-34784: [TextField, PasswordField, TextArea] Selected text is removed on focus leaving Summary: Post IM events only if text composition is active Reviewed-by: pchelko, azvegint, anthony, kcr, snorthov Contributed-by: pchelko, azvegint ! modules/graphics/src/main/java/com/sun/glass/ui/gtk/GtkView.java ! modules/graphics/src/main/native-glass/gtk/glass_general.cpp ! modules/graphics/src/main/native-glass/gtk/glass_general.h ! modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp ! modules/graphics/src/main/native-glass/mac/GlassView3D.m Changeset: 773008dbb998 Author: jgiles Date: 2013-12-13 09:47 +1300 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/773008dbb998 RT-34685: Regression: TextFieldTableCell in TableView doesn't save edited values in b118 ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableCellBehaviorBase.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TreeTableCellBehavior.java ! modules/controls/src/test/java/com/sun/javafx/scene/control/infrastructure/MouseEventFirer.java ! modules/controls/src/test/java/com/sun/javafx/scene/control/infrastructure/StageLoader.java ! modules/controls/src/test/java/com/sun/javafx/scene/control/infrastructure/VirtualFlowTestUtils.java ! modules/controls/src/test/java/javafx/scene/control/ListViewMouseInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TableViewMouseInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TableViewTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewMouseInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeViewMouseInputTest.java Changeset: e82095d1f3d8 Author: Martin Sladecek Date: 2013-12-13 10:39 +0100 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/e82095d1f3d8 RT-34740: [FXML loader] Cannot load a layout using fx:root with staticLoad=true and no call to setRoot Reviewed by: kcr ! modules/fxml/src/main/java/javafx/fxml/FXMLLoader.java Changeset: 26cb937df4a7 Author: kcr Date: 2013-12-14 10:08 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/26cb937df4a7 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt Changeset: f2b1198606d6 Author: Yves Joan Date: 2013-12-17 13:13 +0100 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/f2b1198606d6 Sync up SceneBuilder changes ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindow.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindowController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderApp.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SplitController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp.properties ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBarController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBar.css ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBar.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBarController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanel.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanelController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/file-dirty.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Background-Blue-Grid.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Background-Neutral-Grid.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Background-Neutral-Uniform.png ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Preferences.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordDocument.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordGlobal.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesWindowController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/background-shadow.png ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/PreviewWindowController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonBuffer.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindow.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindow.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindowController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/DefaultContent.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/JobManager.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/DragController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/GridPaneDropTarget.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/SceneBuilderKit.properties ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertColumnConstraintsJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertColumnJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertRowConstraintsJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertRowJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/MoveRowContentJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/messagelog/MessageLog.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanel.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanel.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/BorderPaneDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/FlowPaneDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/GridPaneDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TableViewDesignInfoX.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TableViewDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TextFlowDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/ToolBarDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TreeTableViewDesignInfoX.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TreeTableViewDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneMosaic.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPanePring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/SplitPaneHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TableViewHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TreeTableViewHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/GridPaneColumnResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/GridPaneRowResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/TableColumnResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/TreeTableColumnResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/AbstractNodeTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/BorderPaneTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/GenericParentTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/HBoxTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/NodeTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/VBoxTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/DragGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeColumnGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeRowGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeTableColumnGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeTreeTableColumnGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/SelectAndMoveGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/EditModeController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssContentMaker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanel.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/SelectionPath.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/AbstractHierarchyPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyTaskScheduler.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableCell.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableRow.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableView.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableViewController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeCell.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeView.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeViewController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/Inspector.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/InspectorPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DividerPositionsEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DoubleField.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/InsetsEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/Point3DEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/Point3DEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleClassEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StylesheetEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/TextAlignmentEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/TextAlignmentEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/text-alignment-center.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/text-alignment-justify.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/text-alignment-left.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/text-alignment-right.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/BoundsPopupEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/BoundsPopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PaintPopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/StringPopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractFxmlWindowController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/Selection.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMDocument.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMObject.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueDocument.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueElement.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueLoader.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueSnapshot.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/XMLAttrComparator.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/XMLBuffer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/AbstractSampleData.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/ListViewSampleData.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/PieChartSampleData.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/SampleDataGenerator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/TableViewSampleData.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/TreeTableViewSampleData.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/TreeViewSampleData.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ToolBar.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/Metadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ColorEncoder.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/CssInternal.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/MathUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPicker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPickerController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/colorpicker/ColorPicker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPicker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.java Changeset: f3b51877b9e7 Author: kcr Date: 2013-12-17 09:08 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/f3b51877b9e7 RT-34875: Update Japanese translation of javafxpackager man page Contributed-by: Michael Fang ! modules/fxpackager/src/main/man/ja_JP.UTF-8/man1/javafxpackager.1 Changeset: 0551a6164a23 Author: David Grieve Date: 2013-12-10 09:25 -0500 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/0551a6164a23 RT-34799: missing call to add style to list ! modules/graphics/src/main/java/javafx/scene/CssStyleHelper.java ! modules/graphics/src/test/java/com/sun/javafx/css/Node_cssStyleMap_Test.java Changeset: b473c7e4e115 Author: hudson Date: 2013-12-19 18:14 -0800 URL: http://hg.openjdk.java.net/openjfx/8/master/rt/rev/b473c7e4e115 Added tag 8.0-b121 for changeset 0551a6164a23 ! .hgtags From egk865 at gmail.com Thu Dec 19 19:34:19 2013 From: egk865 at gmail.com (E KN) Date: Thu, 19 Dec 2013 22:34:19 -0500 Subject: NSView-based embedding on Mac OS X Message-ID: Back in January 2013, it reported on this list that NSView-based embedded windows on Mac OS X would be supported in JDK8 and maybe even in a future update to JDK7: http://mail.openjdk.java.net/pipermail/openjfx-dev/2013-January/005783.html I was wondering if this is still the current plan, as I have not been able to get NSView-based embedding to work on recent versions of JDK7 or early access releases of JDK8. If it still is, is providing NSView-based embedding intended for only JavaFX based applications or even pure Swing applications? Thank you so much in advance, Eli From petr.pchelko at oracle.com Thu Dec 19 22:38:44 2013 From: petr.pchelko at oracle.com (Petr Pchelko) Date: Fri, 20 Dec 2013 10:38:44 +0400 Subject: NSView-based embedding on Mac OS X In-Reply-To: References: Message-ID: <0817EFB3-8D4A-4ABF-B1BA-C64BF375F4C7@oracle.com> Hello, Eli. The NSView-based embedding was implemented and is already available in JDK8 EA builds and JDK7u40. Here's the bug which was used to track the changes: https://bugs.openjdk.java.net/browse/JDK-7154778 However, this implementation was designed specifically to support the SWT_AWT bridge and was not intended for other use as it was not tested without SWT. If you still want to use it for some other purposes - please see how it's done in the SWT implementation of the SWT_AWT bridge. It could be found in SWT sources higher than version 4.3 in the class named SWT_AWT. But if you want to use it directly please be aware that it is not a part of the public API and is a subject to change in the future releases. The NSView-base embedding have nothing in common with JavaFX and is not used for JFXPanel or SwingNode. Please contact me if you have any problems. With best regards. Petr. On 20.12.2013, at 7:34, E KN wrote: > Back in January 2013, it reported on this list that NSView-based embedded > windows on Mac OS X would be supported in JDK8 and maybe even in a future > update to JDK7: > > http://mail.openjdk.java.net/pipermail/openjfx-dev/2013-January/005783.html > > I was wondering if this is still the current plan, as I have not been able > to get NSView-based embedding to work on recent versions of JDK7 or early > access releases of JDK8. If it still is, is providing NSView-based > embedding intended for only JavaFX based applications or even pure Swing > applications? > > Thank you so much in advance, > Eli From vadim.pakhnushev at oracle.com Fri Dec 20 02:50:07 2013 From: vadim.pakhnushev at oracle.com (Vadim Pakhnushev) Date: Fri, 20 Dec 2013 14:50:07 +0400 Subject: [8] RFR: RT-32501: JavaFx Application crashes on Exit Message-ID: <52B420DF.9070202@oracle.com> Hi! Felipe, Anthony, Kevin, Steve, Could you please review the fix: https://javafx-jira.kenai.com/browse/RT-32501 http://cr.openjdk.java.net/~vadim/RT-32501/webrev.00/ Thanks, Vadim From anthony.petrov at oracle.com Fri Dec 20 07:51:09 2013 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Fri, 20 Dec 2013 19:51:09 +0400 Subject: [8u20] Review request for RT-32300: KeyCodes do not reflect the keys that are actually pressed on German keyboard Message-ID: <52B4676D.1070207@oracle.com> Hi Felipe, Steve, Please review a fix for https://javafx-jira.kenai.com/browse/RT-32300 -- best regards, Anthony From hang.vo at oracle.com Fri Dec 20 08:32:39 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 20 Dec 2013 16:32:39 +0000 Subject: hg: openjfx/8u-dev/rt: [TEST] Disable failing unit test until RT-34508 is fixed Message-ID: <20131220163402.C886B62E49@hg.openjdk.java.net> Changeset: 986e892581e6 Author: kcr Date: 2013-12-20 08:18 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/986e892581e6 [TEST] Disable failing unit test until RT-34508 is fixed ! modules/web/src/test/java/javafx/scene/web/CallbackTest.java From egk865 at gmail.com Fri Dec 20 09:54:58 2013 From: egk865 at gmail.com (E KN) Date: Fri, 20 Dec 2013 12:54:58 -0500 Subject: NSView-based embedding on Mac OS X In-Reply-To: <0817EFB3-8D4A-4ABF-B1BA-C64BF375F4C7@oracle.com> References: <0817EFB3-8D4A-4ABF-B1BA-C64BF375F4C7@oracle.com> Message-ID: Hi Petr, Thank you so much for your explanation. Would be very grateful if you could clarify one other thing though. The SWT_AWT bridge API supports both embedding an AWT component inside SWT as well as embedding an SWT component inside AWT. Looking at the source code of the SWT_AWT java class and the swt_awt.c C code, it would appear that only embedding an AWT component inside SWT is supported in JDK7u40. But the reverse, embedding an SWT component inside an AWT component does not appear to be supported (since the native C code in awt_swt.c, called from the new_Shell function makes use of the legacy JAWT_MacOSXDrawingSurfaceInfo struct in jawt_md.h which was removed in Java 7). Is this correct? Are there any plans to support this latter form of embedding again? (I am asking because I am dependent on a third party library which uses this same API as this latter form of embedding). Thanks again, Eli On Fri, Dec 20, 2013 at 1:38 AM, Petr Pchelko wrote: > Hello, Eli. > > The NSView-based embedding was implemented and is already available in > JDK8 EA builds and JDK7u40. > Here's the bug which was used to track the changes: > https://bugs.openjdk.java.net/browse/JDK-7154778 > > However, this implementation was designed specifically to support the > SWT_AWT bridge and was not intended for other use as > it was not tested without SWT. If you still want to use it for some other > purposes - please see how it's done in the SWT implementation > of the SWT_AWT bridge. It could be found in SWT sources higher than > version 4.3 in the class named SWT_AWT. But if you want to > use it directly please be aware that it is not a part of the public API > and is a subject to change in the future releases. > > The NSView-base embedding have nothing in common with JavaFX and is not > used for JFXPanel or SwingNode. > > Please contact me if you have any problems. > > With best regards. Petr. > > On 20.12.2013, at 7:34, E KN wrote: > > > Back in January 2013, it reported on this list that NSView-based embedded > > windows on Mac OS X would be supported in JDK8 and maybe even in a future > > update to JDK7: > > > > > http://mail.openjdk.java.net/pipermail/openjfx-dev/2013-January/005783.html > > > > I was wondering if this is still the current plan, as I have not been > able > > to get NSView-based embedding to work on recent versions of JDK7 or early > > access releases of JDK8. If it still is, is providing NSView-based > > embedding intended for only JavaFX based applications or even pure Swing > > applications? > > > > Thank you so much in advance, > > Eli > > From johan at lodgon.com Fri Dec 20 09:56:16 2013 From: johan at lodgon.com (Johan Vos) Date: Fri, 20 Dec 2013 18:56:16 +0100 Subject: Android port status Message-ID: Hi, As you might know, 2 months ago I started a community effort for "porting" JavaFX to Android. Today, we released build 3 of the JavaFX Android runtime, which can be downloaded at https://bitbucket.org/javafxports/android/downloads/dalvik-sdk-b3.zip with instructions on how to build applications at https://bitbucket.org/javafxports/android/wiki/Building%20and%20deploying%20JavaFX%20Applications Building the runtime itself is explained at https://bitbucket.org/javafxports/android/wiki/Building%20the%20JavaFX%20Android%20Runtime At this moment, most of the Ensemble suite runs on Android (positive reports starting with Android 3.x). The downloadable runtime is created using the bitbucket project at https://bitbucket.org/javafxports/android-graphics-rt which is a fork of the openjfx-graphics-rt mirror on bitbucket. We merge often, so all changes made in openjfx-graphics should be in the Android runtime as well. There are a number of issues left: * touch map issues causing applications to crash if "touched too much". I created a JIRA ticket for this and will create another one (related, but not same cause) later. * Java 7 only. Currently, applications cannot make use of Java 8 features. Dalvik has no invokedynamic, so we can't do lambda's. * we just started, so there will be plenty of other bugs. We are also spending efforts in documentation and community interaction. The google group javafxandroid has a pretty active mailinglist. Build 2 of the runtime has been downloaded 291 times in 2 weeks, and build 3 has been downloaded 60 times since it was released a couple of hours ago. So there is definitely community interest and involvement. Clearly, there is involvement from Oracle as well. Most of the effort so far has been done by Tomas Brandalik and the Prague team. I was positively surprised to see the amount of native code that was already available for Android. After a few discussions, it has been agreed that we should try to synchronize as much as possible with the OpenJFX repositories, without jeopardizing the stability and performance of the main ports, and without running into legal trouble. I will run a diff on the current code versus the OpenJFX code, and I will try to create issues with patches for sending the changes back to OpenJFX. Not all changes can go back to OpenJFX. We had to add a number of classes that are missing on Dalvik and that are used by OpenJFX, and clearly we can't commit those in OpenJFX. We had to make a number of changes to JavaFX files as well, in order to make them compile with JDK 1.7. Most of these were about removing Function and adding implementations for the default interface methods on ObservableList. I have no clear opinion on how these changed files could somehow be used from within OpenJFX, but I'm very open to suggestions. Finally, keep in mind that this is a community effort. Nobody is paying for this, and it is done in our spare time. I'm doing my best to move forward as soon as I can, but I have other things to work on as well of course. However, the collaboration between the Java community and Oracle (mainly Tomas) has been great so far. It is in the interest of anyone working on or with Java to show the world that JavaFX runs on Android devices. - Johan From hang.vo at oracle.com Fri Dec 20 10:03:10 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 20 Dec 2013 18:03:10 +0000 Subject: hg: openjfx/8/graphics/rt: Added tag 8.0-b121 for changeset 0551a6164a23 Message-ID: <20131220180354.2C11062E54@hg.openjdk.java.net> Changeset: b473c7e4e115 Author: hudson Date: 2013-12-19 18:14 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/b473c7e4e115 Added tag 8.0-b121 for changeset 0551a6164a23 ! .hgtags From steve.x.northover at oracle.com Fri Dec 20 13:27:59 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Fri, 20 Dec 2013 16:27:59 -0500 Subject: Android port status In-Reply-To: References: Message-ID: <52B4B65F.4020605@oracle.com> Hi Johan, This is very good news. We need to work together so that you are able to run OpenJFX unmodified. This may not be practical for all sorts of reasons, but we need to seriously explore this and work towards this goal. Please open JIRA for the various problems you are seeing and we can try to deal with them there and on this list. Thanks, Steve On 2013-12-20 12:56 PM, Johan Vos wrote: > Hi, > > As you might know, 2 months ago I started a community effort for "porting" > JavaFX to Android. Today, we released build 3 of the JavaFX Android > runtime, which can be downloaded at > https://bitbucket.org/javafxports/android/downloads/dalvik-sdk-b3.zip with > instructions on how to build applications at > https://bitbucket.org/javafxports/android/wiki/Building%20and%20deploying%20JavaFX%20Applications > > Building the runtime itself is explained at > https://bitbucket.org/javafxports/android/wiki/Building%20the%20JavaFX%20Android%20Runtime > > At this moment, most of the Ensemble suite runs on Android (positive > reports starting with Android 3.x). > > The downloadable runtime is created using the bitbucket project at > https://bitbucket.org/javafxports/android-graphics-rt which is a fork of > the openjfx-graphics-rt mirror on bitbucket. We merge often, so all changes > made in openjfx-graphics should be in the Android runtime as well. > > There are a number of issues left: > * touch map issues causing applications to crash if "touched too much". I > created a JIRA ticket for this and will create another one (related, but > not same cause) later. > * Java 7 only. Currently, applications cannot make use of Java 8 features. > Dalvik has no invokedynamic, so we can't do lambda's. > * we just started, so there will be plenty of other bugs. > > We are also spending efforts in documentation and community interaction. > The google group javafxandroid has a pretty active mailinglist. Build 2 of > the runtime has been downloaded 291 times in 2 weeks, and build 3 has been > downloaded 60 times since it was released a couple of hours ago. So there > is definitely community interest and involvement. > Clearly, there is involvement from Oracle as well. Most of the effort so > far has been done by Tomas Brandalik and the Prague team. I was positively > surprised to see the amount of native code that was already available for > Android. > > After a few discussions, it has been agreed that we should try to > synchronize as much as possible with the OpenJFX repositories, without > jeopardizing the stability and performance of the main ports, and without > running into legal trouble. > > I will run a diff on the current code versus the OpenJFX code, and I will > try to create issues with patches for sending the changes back to OpenJFX. > Not all changes can go back to OpenJFX. We had to add a number of classes > that are missing on Dalvik and that are used by OpenJFX, and clearly we > can't commit those in OpenJFX. > > We had to make a number of changes to JavaFX files as well, in order to > make them compile with JDK 1.7. Most of these were about removing Function > and adding implementations for the default interface methods on > ObservableList. > I have no clear opinion on how these changed files could somehow be used > from within OpenJFX, but I'm very open to suggestions. > > Finally, keep in mind that this is a community effort. Nobody is paying for > this, and it is done in our spare time. I'm doing my best to move forward > as soon as I can, but I have other things to work on as well of course. > However, the collaboration between the Java community and Oracle (mainly > Tomas) has been great so far. It is in the interest of anyone working on or > with Java to show the world that JavaFX runs on Android devices. > > - Johan From hang.vo at oracle.com Fri Dec 20 16:03:35 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sat, 21 Dec 2013 00:03:35 +0000 Subject: hg: openjfx/8u-dev/rt: 11 new changesets Message-ID: <20131221000741.C036162E64@hg.openjdk.java.net> Changeset: b7940b612df5 Author: Felipe Heidrich Date: 2013-12-06 13:32 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/b7940b612df5 RT-34244: fx applet hangs if java console is not shown Reviewed-by: Kevin, Anthony, Thomas ! modules/graphics/src/main/java/com/sun/javafx/font/FontFactory.java ! modules/graphics/src/main/java/com/sun/javafx/font/LogicalFont.java ! modules/graphics/src/main/java/com/sun/javafx/font/PrismFontFactory.java ! modules/graphics/src/main/java/com/sun/javafx/font/PrismFontLoader.java ! modules/graphics/src/main/java/com/sun/prism/j2d/J2DFontFactory.java Changeset: 0f28c98557a2 Author: Anthony Petrov Date: 2013-12-12 23:53 +0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/0f28c98557a2 RT-34784: [TextField, PasswordField, TextArea] Selected text is removed on focus leaving Summary: Post IM events only if text composition is active Reviewed-by: pchelko, azvegint, anthony, kcr, snorthov Contributed-by: pchelko, azvegint ! modules/graphics/src/main/java/com/sun/glass/ui/gtk/GtkView.java ! modules/graphics/src/main/native-glass/gtk/glass_general.cpp ! modules/graphics/src/main/native-glass/gtk/glass_general.h ! modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp ! modules/graphics/src/main/native-glass/mac/GlassView3D.m Changeset: 773008dbb998 Author: jgiles Date: 2013-12-13 09:47 +1300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/773008dbb998 RT-34685: Regression: TextFieldTableCell in TableView doesn't save edited values in b118 ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableCellBehaviorBase.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TreeTableCellBehavior.java ! modules/controls/src/test/java/com/sun/javafx/scene/control/infrastructure/MouseEventFirer.java ! modules/controls/src/test/java/com/sun/javafx/scene/control/infrastructure/StageLoader.java ! modules/controls/src/test/java/com/sun/javafx/scene/control/infrastructure/VirtualFlowTestUtils.java ! modules/controls/src/test/java/javafx/scene/control/ListViewMouseInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TableViewMouseInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TableViewTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewMouseInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeViewMouseInputTest.java Changeset: e82095d1f3d8 Author: Martin Sladecek Date: 2013-12-13 10:39 +0100 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/e82095d1f3d8 RT-34740: [FXML loader] Cannot load a layout using fx:root with staticLoad=true and no call to setRoot Reviewed by: kcr ! modules/fxml/src/main/java/javafx/fxml/FXMLLoader.java Changeset: 26cb937df4a7 Author: kcr Date: 2013-12-14 10:08 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/26cb937df4a7 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt Changeset: f2b1198606d6 Author: Yves Joan Date: 2013-12-17 13:13 +0100 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/f2b1198606d6 Sync up SceneBuilder changes ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindow.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindowController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderApp.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SplitController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp.properties ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBarController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBar.css ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBar.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBarController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanel.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanelController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/file-dirty.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Background-Blue-Grid.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Background-Neutral-Grid.png + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Background-Neutral-Uniform.png ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Preferences.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordDocument.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordGlobal.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesWindowController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/background-shadow.png ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/PreviewWindowController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonBuffer.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindow.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindow.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindowController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/DefaultContent.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/JobManager.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/DragController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/GridPaneDropTarget.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/SceneBuilderKit.properties ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertColumnConstraintsJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertColumnJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertRowConstraintsJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertRowJob.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/MoveRowContentJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/messagelog/MessageLog.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanel.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanel.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/BorderPaneDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/FlowPaneDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/GridPaneDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TableViewDesignInfoX.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TableViewDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TextFlowDriver.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/ToolBarDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TreeTableViewDesignInfoX.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TreeTableViewDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneMosaic.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPanePring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/SplitPaneHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TableViewHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TreeTableViewHandles.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/GridPaneColumnResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/GridPaneRowResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/TableColumnResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/TreeTableColumnResizer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/AbstractNodeTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/BorderPaneTring.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/GenericParentTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/HBoxTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/NodeTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/VBoxTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/DragGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeColumnGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeRowGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeTableColumnGesture.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeTreeTableColumnGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/SelectAndMoveGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/EditModeController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssContentMaker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanel.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/SelectionPath.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/AbstractHierarchyPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyTaskScheduler.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableCell.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableRow.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableView.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableViewController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeCell.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeView.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeViewController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/Inspector.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/InspectorPanelController.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DividerPositionsEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DoubleField.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/InsetsEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/Point3DEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/Point3DEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleClassEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StylesheetEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/TextAlignmentEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/TextAlignmentEditor.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/text-alignment-center.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/text-alignment-justify.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/text-alignment-left.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/images/text-alignment-right.png + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/BoundsPopupEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/BoundsPopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PaintPopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/StringPopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractFxmlWindowController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/Selection.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMDocument.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMObject.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueDocument.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueElement.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueLoader.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueSnapshot.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/XMLAttrComparator.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/XMLBuffer.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/AbstractSampleData.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/ListViewSampleData.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/PieChartSampleData.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/SampleDataGenerator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/TableViewSampleData.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/TreeTableViewSampleData.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/TreeViewSampleData.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ToolBar.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/Metadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ColorEncoder.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/CssInternal.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/MathUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPicker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPickerController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/colorpicker/ColorPicker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPicker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.java Changeset: f3b51877b9e7 Author: kcr Date: 2013-12-17 09:08 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/f3b51877b9e7 RT-34875: Update Japanese translation of javafxpackager man page Contributed-by: Michael Fang ! modules/fxpackager/src/main/man/ja_JP.UTF-8/man1/javafxpackager.1 Changeset: 0551a6164a23 Author: David Grieve Date: 2013-12-10 09:25 -0500 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/0551a6164a23 RT-34799: missing call to add style to list ! modules/graphics/src/main/java/javafx/scene/CssStyleHelper.java ! modules/graphics/src/test/java/com/sun/javafx/css/Node_cssStyleMap_Test.java Changeset: b473c7e4e115 Author: hudson Date: 2013-12-19 18:14 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/b473c7e4e115 Added tag 8.0-b121 for changeset 0551a6164a23 ! .hgtags Changeset: bee85bc7f009 Author: mv157916 Date: 2013-12-20 14:19 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/bee85bc7f009 RT-35083: Update the JDK 8 build number to b121 in rt/build.properties file in the JavaFX 8 Master forest. ! build.properties Changeset: 6807e8e4f0dd Author: kcr Date: 2013-12-20 15:53 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/6807e8e4f0dd Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt - apps/experiments/3DViewer/.classpath - apps/experiments/3DViewer/.project - apps/experiments/Modena/.classpath - apps/experiments/Modena/.project - apps/samples/Ensemble8/.classpath - apps/samples/Ensemble8/.project ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableCellBehaviorBase.java ! modules/controls/src/test/java/javafx/scene/control/ListViewMouseInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TableViewMouseInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewMouseInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeViewMouseInputTest.java - modules/fxpackager/src/main/man/ja_JP.UTF-8/html/javafxpackager.html From hang.vo at oracle.com Fri Dec 20 16:06:43 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sat, 21 Dec 2013 00:06:43 +0000 Subject: hg: openjfx/2u/dev/rt: Added tag 2.2.60-b02 for changeset ef43e02f07a3 Message-ID: <20131221000647.B8F6462E63@hg.openjdk.java.net> Changeset: 6354c74e361f Author: hudson Date: 2013-12-18 08:51 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/dev/rt/rev/6354c74e361f Added tag 2.2.60-b02 for changeset ef43e02f07a3 ! .hgtags From hang.vo at oracle.com Fri Dec 20 16:17:29 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sat, 21 Dec 2013 00:17:29 +0000 Subject: hg: openjfx/8/graphics/rt: RT-33943: Update copyright year in docs, readme files to 2014 Message-ID: <20131221001750.A5B2462E65@hg.openjdk.java.net> Changeset: 98b52a79d333 Author: kcr Date: 2013-12-20 15:48 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/98b52a79d333 RT-33943: Update copyright year in docs, readme files to 2014 Reviewed-by: Mong Hang Vo ! build.properties ! modules/fxml/src/main/docs/javafx/fxml/doc-files/introduction_to_fxml.html ! modules/graphics/src/main/docs/javafx/scene/doc-files/cssref.html From james.graham at oracle.com Fri Dec 20 16:30:21 2013 From: james.graham at oracle.com (Jim Graham) Date: Fri, 20 Dec 2013 16:30:21 -0800 Subject: 8u20 post commit review - RT-35089: fix poolstats output formatting Message-ID: <52B4E11D.7090403@oracle.com> I fixed some formatting issues with the poolstats output. The diffs are in the bug report: https://javafx-jira.kenai.com/browse/RT-35089 ...jim From hang.vo at oracle.com Fri Dec 20 16:32:50 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sat, 21 Dec 2013 00:32:50 +0000 Subject: hg: openjfx/8u-dev/rt: Fix RT-34089: poolstat output needs better formatting Message-ID: <20131221003309.08C9262E66@hg.openjdk.java.net> Changeset: 68216b5cb85f Author: flar Date: 2013-12-20 16:23 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/68216b5cb85f Fix RT-34089: poolstat output needs better formatting ! modules/graphics/src/main/java/com/sun/prism/impl/ManagedResource.java From pedro.duquevieira at gmail.com Sat Dec 21 11:33:54 2013 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Sat, 21 Dec 2013 19:33:54 +0000 Subject: Major regression in mouse event processing.. Message-ID: Hi, I'm using Java8 build 120. Recently I've spotted a big difference in the way mouse events are being processed - this should have happened between recent builds, not much latter than 1 month from now. I have a chart inside a JFXPanel. I have a listener on that chart for mouse pressed events. I run the app and I press the mouse button over that chart. The mouse pressed event is never fired. This was working with a previous java8 build released not much latter than 1 month ago. Mouse Drag and Mouse Release events are being caught, only Mouse Pressed are ignored. This is a big show stopper and that's why I thought I'd also post an email to this mailing list. I thought it might be a good move since this is a big show stopper and javafx is already in a phase where not much changes are allowed. Don't know if this was necessary though... Jira issue is: https://javafx-jira.kenai.com/browse/RT-35094 Thanks, best regards, -- Pedro Duque Vieira From hang.vo at oracle.com Sun Dec 22 01:03:34 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sun, 22 Dec 2013 09:03:34 +0000 Subject: hg: openjfx/8u-dev/rt: RT-34810: Lens: Extra press/release events sent form Freescale SDP touchScreen (EGalax) Message-ID: <20131222090511.9A3FB62E82@hg.openjdk.java.net> Changeset: 5ef29516c939 Author: Assaf Yavnai Date: 2013-12-22 10:53 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/5ef29516c939 RT-34810: Lens: Extra press/release events sent form Freescale SDP touchScreen (EGalax) Summary: added support to eGalax multi touch event sequence Tested-by: HelloSanity, LinuxInputTest Reviewed-by: dblaukop ! modules/graphics/src/main/native-glass/lens/input/udev/udevInput.c ! modules/graphics/src/main/native-glass/lens/wm/LensWindowManager.c From tbee at tbee.org Sun Dec 22 10:11:44 2013 From: tbee at tbee.org (Tom Eugelink) Date: Sun, 22 Dec 2013 19:11:44 +0100 Subject: IndexOutOfBoundsException with an empty CSS block Message-ID: <52B72B60.7010506@tbee.org> When I assign a style class to a GridPane (which is then added to a VBox and that to a BorderPane and that in a Popup), like so: lAppointmentGroupGridPane.getStyleClass().add("AppointmentGroups"); Which has an empty block in CSS: .AgendaPopup .AppointmentGroups { } An exception occurs. Commenting out the empty block in the CSS file makes the exception go away. Exception in thread "JavaFX Application Thread" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(ArrayList.java:638) at java.util.ArrayList.get(ArrayList.java:414) at com.sun.javafx.css.StyleMap.getCascadingStyles(StyleMap.java:121) at javafx.scene.CssStyleHelper.getStyle(CssStyleHelper.java:683) at javafx.scene.CssStyleHelper.lookupFont(CssStyleHelper.java:1548) at javafx.scene.CssStyleHelper.transitionToState(CssStyleHelper.java:460) at javafx.scene.Node.impl_processCSS(Node.java:8677) at javafx.scene.Parent.impl_processCSS(Parent.java:1216) at javafx.scene.Parent.impl_processCSS(Parent.java:1228) at javafx.scene.Parent.impl_processCSS(Parent.java:1228) at javafx.scene.Parent.impl_processCSS(Parent.java:1228) at javafx.scene.Node.processCSS(Node.java:8587) at javafx.scene.Scene.doCSSPass(Scene.java:538) at javafx.scene.Scene.preferredSize(Scene.java:1504) at javafx.scene.Scene.impl_preferredSize(Scene.java:1571) at javafx.stage.Window$9.invalidated(Window.java:733) at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109) at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:143) at javafx.stage.Window.setShowing(Window.java:799) at javafx.stage.Window.show(Window.java:814) at javafx.stage.PopupWindow.showImpl(PopupWindow.java:403) at javafx.stage.PopupWindow.show(PopupWindow.java:348) at jfxtras.labs.internal.scene.control.skin.AgendaWeekSkin.showMenu(AgendaWeekSkin.java:1969) at jfxtras.labs.internal.scene.control.skin.AgendaWeekSkin.access$2700(AgendaWeekSkin.java:84) at jfxtras.labs.internal.scene.control.skin.AgendaWeekSkin$MenuIcon$5.handle(AgendaWeekSkin.java:1238) at jfxtras.labs.internal.scene.control.skin.AgendaWeekSkin$MenuIcon$5.handle(AgendaWeekSkin.java:1233) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.event.Event.fireEvent(Event.java:203) at javafx.scene.Scene$ClickGenerator.postProcess(Scene.java:3321) at javafx.scene.Scene$ClickGenerator.access$8800(Scene.java:3252) at javafx.scene.Scene$MouseHandler.process(Scene.java:3600) at javafx.scene.Scene$MouseHandler.process(Scene.java:3385) at javafx.scene.Scene$MouseHandler.access$1900(Scene.java:3336) at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1618) at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2395) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:312) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:237) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:354) at com.sun.glass.ui.View.handleMouseEvent(View.java:514) at com.sun.glass.ui.View.notifyMouse(View.java:877) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39) at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:101) at java.lang.Thread.run(Thread.java:724) Exception in thread "JavaFX Application Thread" java.lang.NullPointerException at com.sun.javafx.binding.ExpressionHelper.removeListener(ExpressionHelper.java:73) at javafx.beans.property.ReadOnlyBooleanWrapper$ReadOnlyPropertyImpl.removeListener(ReadOnlyBooleanWrapper.java:174) at javafx.stage.PopupWindow.unbindOwnerFocusedProperty(PopupWindow.java:640) at javafx.stage.PopupWindow.impl_visibleChanged(PopupWindow.java:466) at javafx.stage.Window$9.invalidated(Window.java:784) at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109) at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:143) at javafx.stage.Window.setShowing(Window.java:799) at javafx.stage.Window.hide(Window.java:824) at javafx.stage.PopupWindow.hide(PopupWindow.java:417) at com.sun.javafx.stage.WindowPeerListener.closed(WindowPeerListener.java:92) at com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:110) at com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:39) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.quantum.GlassWindowEventHandler.handleWindowEvent(GlassWindowEventHandler.java:130) at com.sun.glass.ui.Window.handleWindowEvent(Window.java:1241) at com.sun.glass.ui.Window.notifyDestroy(Window.java:1154) at com.sun.glass.ui.win.WinWindow._close(Native Method) at com.sun.glass.ui.Window.close(Window.java:299) at com.sun.glass.ui.win.WinWindow.close(WinWindow.java:113) at com.sun.javafx.tk.quantum.WindowStage.close(WindowStage.java:609) at javafx.stage.Window$9.invalidated(Window.java:778) at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109) at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:143) at javafx.stage.Window.setShowing(Window.java:799) at javafx.stage.Window.hide(Window.java:824) at com.sun.javafx.stage.WindowCloseRequestHandler.dispatchBubblingEvent(WindowCloseRequestHandler.java:45) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.event.Event.fireEvent(Event.java:203) at com.sun.javafx.stage.WindowPeerListener.closing(WindowPeerListener.java:80) at com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:113) at com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:39) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.quantum.GlassWindowEventHandler.handleWindowEvent(GlassWindowEventHandler.java:130) at com.sun.glass.ui.Window.handleWindowEvent(Window.java:1241) at com.sun.glass.ui.Window.notifyClose(Window.java:1145) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39) at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:101) at java.lang.Thread.run(Thread.java:724) Should I create a Jira issue? Tom From tom.schindl at bestsolution.at Mon Dec 23 03:31:55 2013 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Mon, 23 Dec 2013 12:31:55 +0100 Subject: Font.font() says it is point size but it looks like it are pixels Message-ID: <52B81F2B.8020708@bestsolution.at> Hi, The JavaDoc of Font.font says: -----8<----- size - The point size of the font. This can be a fractional value, but must not be negative. If the size is < 0 the default size will be used. -----8<----- I highly doubt this is correct (see attached picture from Linux where you see native, qt and javafx) and a sample FX-Code using setFont and using CSS (see at the end of this mail) The result is correct if CSS is used and looking up the code in the CSS shows that values are calculated back to pixels when passed to the Font-factory method (FontConverter.convert!). I guess one can not fix this Font.font API to really work with points (which would be the natural expectation at least to me) but the JavaDoc has to be fixed! Another thing I came across is that the DPI calculation is fixed to 96 DPI - which i don't fully understand why it is fixed because the DPI can vary between devices and monitors. Is this because of multi-monitors and you are applying a transformation based on the screen the text is rendered on? Tom ----------- > HBox h = new HBox(); > > { > Text t = new Text("Hello World"); > t.setFont(Font.font(50)); > h.getChildren().add(t); > } > > { > Text t = new Text("Hello World"); > t.setStyle("-fx-font-size: 50pt;"); > h.getChildren().add(t); > } > > primaryStage.setScene(new Scene(h,300,300)); > primaryStage.show(); From hang.vo at oracle.com Mon Dec 23 05:03:38 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 23 Dec 2013 13:03:38 +0000 Subject: hg: openjfx/8/graphics/rt: Sync up SceneBuilder changes Message-ID: <20131223130600.43C8562E9A@hg.openjdk.java.net> Changeset: ffae6092f803 Author: Yves Joan Date: 2013-12-23 13:59 +0100 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/ffae6092f803 Sync up SceneBuilder changes ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindow.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindowController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp.properties ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBar.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBarController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBar.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBarController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/PreviewWindowController.java + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/report/JarAnalysisReport.css + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/report/JarAnalysisReport.fxml + apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/report/JarAnalysisReportController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonBuffer.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindow.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindowController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorPlatform.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/SceneBuilderKit.properties ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/PasteJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/AbstractWrapInJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanel.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanel.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/WorkspaceController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneMosaic.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/outline/AbstractOutline.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/outline/NodeOutline.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/SelectAndMoveGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssContentMaker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/AbstractHierarchyPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/InspectorPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AutoSuggestEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StylesheetEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/BoundsPopupEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/KeyCombinationPopupEditor.fxml + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/KeyCombinationPopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/util/ContextMenuController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMCollection.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMInstance.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMIntrinsic.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMObject.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMRefresher.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/TransientStateBackup.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/ChoiceBoxSampleData.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/ComboBoxSampleData.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/SampleDataGenerator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/XYChartSampleData.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ChoiceBox.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ComboBox.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/user/LibraryFolderWatcher.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/user/UserLibrary.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/Metadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/keycombination/KeyCharacterCombinationPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/keycombination/KeyCodeCombinationPropertyMetadata.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/keycombination/KeyCombinationPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ClipboardDecoder.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/DesignHierarchyMask.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/Deprecation.java From steve.x.northover at oracle.com Mon Dec 23 06:39:16 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Mon, 23 Dec 2013 09:39:16 -0500 Subject: IndexOutOfBoundsException with an empty CSS block In-Reply-To: <52B72B60.7010506@tbee.org> References: <52B72B60.7010506@tbee.org> Message-ID: <52B84B14.9000907@oracle.com> Sounds like a bug. Please enter a JIRA with your test code. https://wiki.openjdk.java.net/display/OpenJFX/Submitting+a+Bug+Report Thanks! Steve On 2013-12-22 1:11 PM, Tom Eugelink wrote: > > When I assign a style class to a GridPane (which is then added to a > VBox and that to a BorderPane and that in a Popup), like so: > lAppointmentGroupGridPane.getStyleClass().add("AppointmentGroups"); > > Which has an empty block in CSS: > .AgendaPopup .AppointmentGroups { > } > > An exception occurs. Commenting out the empty block in the CSS file > makes the exception go away. > > Exception in thread "JavaFX Application Thread" > java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 > at java.util.ArrayList.rangeCheck(ArrayList.java:638) > at java.util.ArrayList.get(ArrayList.java:414) > at com.sun.javafx.css.StyleMap.getCascadingStyles(StyleMap.java:121) > at javafx.scene.CssStyleHelper.getStyle(CssStyleHelper.java:683) > at javafx.scene.CssStyleHelper.lookupFont(CssStyleHelper.java:1548) > at > javafx.scene.CssStyleHelper.transitionToState(CssStyleHelper.java:460) > at javafx.scene.Node.impl_processCSS(Node.java:8677) > at javafx.scene.Parent.impl_processCSS(Parent.java:1216) > at javafx.scene.Parent.impl_processCSS(Parent.java:1228) > at javafx.scene.Parent.impl_processCSS(Parent.java:1228) > at javafx.scene.Parent.impl_processCSS(Parent.java:1228) > at javafx.scene.Node.processCSS(Node.java:8587) > at javafx.scene.Scene.doCSSPass(Scene.java:538) > at javafx.scene.Scene.preferredSize(Scene.java:1504) > at javafx.scene.Scene.impl_preferredSize(Scene.java:1571) > at javafx.stage.Window$9.invalidated(Window.java:733) > at > javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109) > at > javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:143) > at javafx.stage.Window.setShowing(Window.java:799) > at javafx.stage.Window.show(Window.java:814) > at javafx.stage.PopupWindow.showImpl(PopupWindow.java:403) > at javafx.stage.PopupWindow.show(PopupWindow.java:348) > at > jfxtras.labs.internal.scene.control.skin.AgendaWeekSkin.showMenu(AgendaWeekSkin.java:1969) > at > jfxtras.labs.internal.scene.control.skin.AgendaWeekSkin.access$2700(AgendaWeekSkin.java:84) > at > jfxtras.labs.internal.scene.control.skin.AgendaWeekSkin$MenuIcon$5.handle(AgendaWeekSkin.java:1238) > at > jfxtras.labs.internal.scene.control.skin.AgendaWeekSkin$MenuIcon$5.handle(AgendaWeekSkin.java:1233) > at > com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) > at > com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) > at > com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) > at > com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) > at > com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) > at > com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at > com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) > at > com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at > com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) > at > com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at > com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) > at > com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at > com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) > at > com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at > com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) > at > com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at > com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) > at > com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) > at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) > at javafx.event.Event.fireEvent(Event.java:203) > at javafx.scene.Scene$ClickGenerator.postProcess(Scene.java:3321) > at javafx.scene.Scene$ClickGenerator.access$8800(Scene.java:3252) > at javafx.scene.Scene$MouseHandler.process(Scene.java:3600) > at javafx.scene.Scene$MouseHandler.process(Scene.java:3385) > at javafx.scene.Scene$MouseHandler.access$1900(Scene.java:3336) > at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1618) > at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2395) > at > com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:312) > at > com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:237) > at java.security.AccessController.doPrivileged(Native Method) > at > com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:354) > at com.sun.glass.ui.View.handleMouseEvent(View.java:514) > at com.sun.glass.ui.View.notifyMouse(View.java:877) > at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) > at > com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39) > at > com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:101) > at java.lang.Thread.run(Thread.java:724) > Exception in thread "JavaFX Application Thread" > java.lang.NullPointerException > at > com.sun.javafx.binding.ExpressionHelper.removeListener(ExpressionHelper.java:73) > at > javafx.beans.property.ReadOnlyBooleanWrapper$ReadOnlyPropertyImpl.removeListener(ReadOnlyBooleanWrapper.java:174) > at > javafx.stage.PopupWindow.unbindOwnerFocusedProperty(PopupWindow.java:640) > at javafx.stage.PopupWindow.impl_visibleChanged(PopupWindow.java:466) > at javafx.stage.Window$9.invalidated(Window.java:784) > at > javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109) > at > javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:143) > at javafx.stage.Window.setShowing(Window.java:799) > at javafx.stage.Window.hide(Window.java:824) > at javafx.stage.PopupWindow.hide(PopupWindow.java:417) > at > com.sun.javafx.stage.WindowPeerListener.closed(WindowPeerListener.java:92) > at > com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:110) > at > com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:39) > at java.security.AccessController.doPrivileged(Native Method) > at > com.sun.javafx.tk.quantum.GlassWindowEventHandler.handleWindowEvent(GlassWindowEventHandler.java:130) > at com.sun.glass.ui.Window.handleWindowEvent(Window.java:1241) > at com.sun.glass.ui.Window.notifyDestroy(Window.java:1154) > at com.sun.glass.ui.win.WinWindow._close(Native Method) > at com.sun.glass.ui.Window.close(Window.java:299) > at com.sun.glass.ui.win.WinWindow.close(WinWindow.java:113) > at com.sun.javafx.tk.quantum.WindowStage.close(WindowStage.java:609) > at javafx.stage.Window$9.invalidated(Window.java:778) > at > javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109) > at > javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:143) > at javafx.stage.Window.setShowing(Window.java:799) > at javafx.stage.Window.hide(Window.java:824) > at > com.sun.javafx.stage.WindowCloseRequestHandler.dispatchBubblingEvent(WindowCloseRequestHandler.java:45) > at > com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) > at > com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) > at > com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) > at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) > at javafx.event.Event.fireEvent(Event.java:203) > at > com.sun.javafx.stage.WindowPeerListener.closing(WindowPeerListener.java:80) > at > com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:113) > at > com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:39) > at java.security.AccessController.doPrivileged(Native Method) > at > com.sun.javafx.tk.quantum.GlassWindowEventHandler.handleWindowEvent(GlassWindowEventHandler.java:130) > at com.sun.glass.ui.Window.handleWindowEvent(Window.java:1241) > at com.sun.glass.ui.Window.notifyClose(Window.java:1145) > at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) > at > com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39) > at > com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:101) > at java.lang.Thread.run(Thread.java:724) > > > Should I create a Jira issue? > > Tom > > From steve.x.northover at oracle.com Mon Dec 23 06:44:06 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Mon, 23 Dec 2013 09:44:06 -0500 Subject: Major regression in mouse event processing.. In-Reply-To: References: Message-ID: <52B84C36.4080803@oracle.com> Whew! Seems this was not a bug in FX. I thought I'd post back to let people know. Steve On 2013-12-21 2:33 PM, Pedro Duque Vieira wrote: > Hi, > > I'm using Java8 build 120. > > Recently I've spotted a big difference in the way mouse events are being > processed - this should have happened between recent builds, not much > latter than 1 month from now. > > I have a chart inside a JFXPanel. I have a listener on that chart for mouse > pressed events. I run the app and I press the mouse button over that chart. > The mouse pressed event is never fired. > This was working with a previous java8 build released not much latter than > 1 month ago. > > Mouse Drag and Mouse Release events are being caught, only Mouse Pressed > are ignored. > > This is a big show stopper and that's why I thought I'd also post an email > to this mailing list. I thought it might be a good move since this is a big > show stopper and javafx is already in a phase where not much changes are > allowed. Don't know if this was necessary though... > > Jira issue is: https://javafx-jira.kenai.com/browse/RT-35094 > > Thanks, best regards, > From hang.vo at oracle.com Mon Dec 23 07:33:12 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 23 Dec 2013 15:33:12 +0000 Subject: hg: openjfx/8u-dev/rt: ECLIPSE ONLY: work around Eclipse jdk8 compiler issue Message-ID: <20131223153454.66B9F62EAA@hg.openjdk.java.net> Changeset: e79d7e912439 Author: snorthov Date: 2013-12-23 10:15 -0500 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/e79d7e912439 ECLIPSE ONLY: work around Eclipse jdk8 compiler issue ! modules/controls/src/test/java/javafx/scene/control/TableViewTest.java From hang.vo at oracle.com Mon Dec 23 08:03:35 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 23 Dec 2013 16:03:35 +0000 Subject: hg: openjfx/8u-dev/rt: RT-32300: KeyCodes do not reflect the keys that are actually pressed on German keyboard Message-ID: <20131223160430.6218A62EAC@hg.openjdk.java.net> Changeset: 3f3be4c811d1 Author: Anthony Petrov Date: 2013-12-23 19:54 +0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/3f3be4c811d1 RT-32300: KeyCodes do not reflect the keys that are actually pressed on German keyboard Summary: Map OEM keys to correct key codes Reviewed-by: snorthov ! modules/graphics/src/main/java/com/sun/glass/events/KeyEvent.java ! modules/graphics/src/main/native-glass/win/ViewContainer.cpp From hang.vo at oracle.com Mon Dec 23 12:47:48 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 23 Dec 2013 20:47:48 +0000 Subject: hg: openjfx/8u-dev/rt: Fix to RT-34960: Add Prism HW support for ATI/AMD FireGL series card on Linux Message-ID: <20131223204843.210CC62EC5@hg.openjdk.java.net> Changeset: fb2575b13c01 Author: Chien Yang Date: 2013-12-23 12:40 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/fb2575b13c01 Fix to RT-34960: Add Prism HW support for ATI/AMD FireGL series card on Linux Reviewed-by: Felope, kcr ! modules/graphics/src/main/java/com/sun/prism/es2/X11GLFactory.java ! modules/graphics/src/main/native-prism-es2/macosx/MacGLFactory.c ! modules/graphics/src/main/native-prism-es2/windows/WinGLFactory.c ! modules/graphics/src/main/native-prism-es2/x11/X11GLContext.c ! modules/graphics/src/main/native-prism-es2/x11/X11GLFactory.c From hang.vo at oracle.com Mon Dec 23 13:47:55 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 23 Dec 2013 21:47:55 +0000 Subject: hg: openjfx/8u-dev/rt: RT-34898: cleanNative tasks do not remove jheader folder Message-ID: <20131223214816.07E8362EC6@hg.openjdk.java.net> Changeset: 342cc9643bdf Author: Felipe Heidrich Date: 2013-12-23 13:40 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/342cc9643bdf RT-34898: cleanNative tasks do not remove jheader folder ! build.gradle From hang.vo at oracle.com Mon Dec 23 14:02:54 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 23 Dec 2013 22:02:54 +0000 Subject: hg: openjfx/8/graphics/rt: RT-25869: Update copyright year in header of modified source code files to 2013 Message-ID: <20131223220400.DB9D862ECA@hg.openjdk.java.net> Changeset: 94331ac42150 Author: kcr Date: 2013-12-23 13:46 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/94331ac42150 RT-25869: Update copyright year in header of modified source code files to 2013 Reviewed-by: Mong Hang Vo ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/AutoLogoutLightBox.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/ConferenceScheduleApp.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/Page.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/PageContainer.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/PlatformIntegration.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/Theme.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/TouchClickedEventAvoider.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/TouchScrollEventSynthesizer.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/CheckBoxItem.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/EventPopoverPage.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/LoginProgressBarSkin.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/NoopScrollBarSkin.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/Popover.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/PopoverBox.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/PopoverBoxItem.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/PopoverTreeList.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/ResizableWrappingText.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/ScrollPaneSkin3.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/SearchBox.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/SimpleVBox.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/TestPopover.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/TestVirtualKeyboard.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/TreeBoxItem.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/VirtualKeyboard.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/VirtualKeyboardSkin.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/DataService.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/JSONParserJP.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/SessionManagement.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/TwitterJson.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/devoxx/DevoxxDataService.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/devoxx/GetConferenceDataTask.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/devoxx/LoginTask.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/devoxx/TestDataService.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/devoxx/UpdateScheduleTask.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Availability.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Event.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/FilterType.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Level.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Room.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Session.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/SessionTime.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/SessionType.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Speaker.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Track.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Tweet.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Venue.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/CatalogPage.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/FilterSessionsByTrackPage.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/FilterSessionsByTypePage.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/LoginScreen.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/SearchFilterPopoverPage.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/SessionFilterCriteria.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/SessionListPage.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/SocialPage.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/SpeakersPage.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/TimelinePage.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/TracksPage.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/VenueRoomPage.java ! apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/VenuesPage.java ! apps/experiments/Modena/src/main/java/modena/SameHeightTestController.java ! apps/experiments/Modena/src/main/java/modena/SamplePage.java ! apps/experiments/Modena/src/main/java/modena/SamplePageChartHelper.java ! apps/experiments/Modena/src/main/java/modena/SamplePageHelpers.java ! apps/experiments/Modena/src/main/java/modena/SamplePageTableHelper.java ! apps/experiments/Modena/src/main/java/modena/SamplePageTreeHelper.java ! apps/experiments/Modena/src/main/java/modena/SamplePageTreeTableHelper.java ! apps/experiments/Modena/src/main/java/modena/SimpleWindowPage.java ! apps/experiments/Modena/src/main/resources/modena/TestApp.css ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/Ball.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/BallsPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/BallsScreen.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/BouncingBallsApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/Constants.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Ball.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Bat.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Bonus.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Brick.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/BrickBreakerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Config.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Level.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/LevelData.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Splash.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Utils.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/Calculator.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/CalculatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/Key.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/Util.java ! buildSrc/genVSproperties.bat ! modules/base/src/main/java/javafx/collections/transformation/TransformationList.java ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/caspian/caspian.css ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/caspian/embedded-qvga.css ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/caspian/embedded.css ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/caspian/highcontrast.css ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/caspian/two-level-focus.css ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/modena/modena-embedded-performance.css ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/modena/modena.css ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/modena/touch.css ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/modena/two-level-focus.css ! modules/controls/src/test/java/javafx/scene/control/ColorPickerTest.java ! modules/designTime/src/main/java/com/sun/javafx/beans/design/package.html ! modules/designTime/src/main/java/com/sun/javafx/beans/metadata/package.html ! modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/border_pane.fxml ! modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/flow_pane.fxml ! modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/grid_pane.fxml ! modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/project-with-all-p2-components.fxml ! modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/stageview-drop-test.fxml ! modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/svg-complex-gear-flowers.fxml ! modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/svg-complex-tiger.fxml ! modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/svg-complex-tux.fxml ! modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/svg-complex-unhappy-sheep.fxml ! modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/svg-svgspec-paints-radialGradient.fxml ! modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/tile_pane.fxml ! modules/fxml/src/test/resources/javafx/fxml/bad_include.fxml ! modules/fxml/src/test/resources/javafx/fxml/builders_trianglemesh.fxml ! modules/fxml/src/test/resources/javafx/fxml/cycle.fxml ! modules/fxml/src/test/resources/javafx/fxml/dummy-cycle.fxml ! modules/fxml/src/test/resources/javafx/fxml/events_test.fxml ! modules/fxml/src/test/resources/javafx/fxml/leaf1.fxml ! modules/fxml/src/test/resources/javafx/fxml/leaf2.fxml ! modules/fxml/src/test/resources/javafx/fxml/leaf3.fxml ! modules/fxml/src/test/resources/javafx/fxml/leaf4.fxml ! modules/fxml/src/test/resources/javafx/fxml/list_map_set_events_test.fxml ! modules/fxml/src/test/resources/javafx/fxml/one-2-one-cycle.fxml ! modules/fxml/src/test/resources/javafx/fxml/property_events_test.fxml ! modules/fxml/src/test/resources/javafx/fxml/property_events_test_value.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_14880.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_15524.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_16724.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_16815.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_16977.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_17646.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_18218.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_18680.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_18933.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_19112.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_19139.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_19228.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_19329.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_19870.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_20082.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_20082_include.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_20471.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_22864.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_22971.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_23447.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_23519.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_24380.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_24465.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_26449.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_27529_1.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_27529_2.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_27529_3.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_27529_4.fxml ! modules/fxml/src/test/resources/javafx/fxml/rt_34146.fxml ! modules/fxml/src/test/resources/javafx/fxml/script_handler.fxml ! modules/fxml/src/test/resources/javafx/fxml/script_handler_external.fxml ! modules/fxml/src/test/resources/javafx/fxml/static_script_load.fxml ! modules/graphics/src/main/java/com/sun/javafx/css/CalculatedValue.java ! modules/graphics/src/main/java/com/sun/javafx/css/PseudoClassState.java ! modules/graphics/src/main/java/com/sun/javafx/css/StyleCache.java ! modules/graphics/src/main/java/com/sun/javafx/css/StyleCacheEntry.java ! modules/graphics/src/main/java/com/sun/javafx/css/StyleMap.java ! modules/graphics/src/main/java/com/sun/javafx/css/parser/TestRig.java.DISABLED ! modules/graphics/src/main/java/com/sun/prism/sw/SWArgbPreTexture.java ! modules/graphics/src/test/resources/com/sun/javafx/css/converters/some.txt ! modules/graphics/src/test/resources/javafx/scene/layout/RegionCSSTest.css ! modules/media/src/main/native/gstreamer/gstreamer-lite/projects/plugins/gstplugins-lite.c ! modules/media/src/main/native/gstreamer/gstreamer-lite/projects/plugins/gstplugins-lite.h ! modules/web/src/android/java/netscape/javascript/JSException.java ! modules/web/src/android/java/netscape/javascript/JSObject.java ! modules/web/src/ios/native/WebViewImpl.h ! modules/web/src/main/java/com/sun/javafx/scene/web/Debugger.java ! modules/web/src/main/java/com/sun/javafx/sg/prism/NGWebView.java ! modules/web/src/main/java/com/sun/javafx/webkit/Accessor.java ! modules/web/src/main/java/com/sun/javafx/webkit/CursorManagerImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/EventLoopImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/InputMethodClientImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/KeyCodeMap.java ! modules/web/src/main/java/com/sun/javafx/webkit/PasteboardImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/ThemeClientImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/UIClientImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/UtilitiesImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/WebPageClientImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/drt/DumpRenderTree.java ! modules/web/src/main/java/com/sun/javafx/webkit/drt/EventSender.java ! modules/web/src/main/java/com/sun/javafx/webkit/drt/UIClientImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/PrismGraphicsManager.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/PrismImage.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/PrismInvoker.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/RTImage.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/TextUtilities.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCBufferedContext.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCFontCustomPlatformDataImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCFontImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCGraphicsPrismContext.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCImageDecoderImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCImageImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCLinearGradient.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCMediaPlayerImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCPageBackBufferImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCPathImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCRadialGradient.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCStrokeImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/theme/PrismRenderer.java ! modules/web/src/main/java/com/sun/javafx/webkit/theme/ContextMenuImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/theme/PopupMenuImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/theme/RenderThemeImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/theme/Renderer.java ! modules/web/src/main/java/com/sun/javafx/webkit/theme/ScrollBarThemeImpl.java ! modules/web/src/main/java/com/sun/webkit/BackForwardList.java ! modules/web/src/main/java/com/sun/webkit/ContextMenu.java ! modules/web/src/main/java/com/sun/webkit/ContextMenuItem.java ! modules/web/src/main/java/com/sun/webkit/CursorManager.java ! modules/web/src/main/java/com/sun/webkit/Disposer.java ! modules/web/src/main/java/com/sun/webkit/DisposerRecord.java ! modules/web/src/main/java/com/sun/webkit/EventLoop.java ! modules/web/src/main/java/com/sun/webkit/FileSystem.java ! modules/web/src/main/java/com/sun/webkit/InputMethodClient.java ! modules/web/src/main/java/com/sun/webkit/InspectorClient.java ! modules/web/src/main/java/com/sun/webkit/Invoker.java ! modules/web/src/main/java/com/sun/webkit/LoadListenerClient.java ! modules/web/src/main/java/com/sun/webkit/LocalizedStrings.java ! modules/web/src/main/java/com/sun/webkit/MainThread.java ! modules/web/src/main/java/com/sun/webkit/PageCache.java ! modules/web/src/main/java/com/sun/webkit/Pasteboard.java ! modules/web/src/main/java/com/sun/webkit/PolicyClient.java ! modules/web/src/main/java/com/sun/webkit/PopupMenu.java ! modules/web/src/main/java/com/sun/webkit/SharedBuffer.java ! modules/web/src/main/java/com/sun/webkit/SimpleSharedBufferInputStream.java ! modules/web/src/main/java/com/sun/webkit/ThemeClient.java ! modules/web/src/main/java/com/sun/webkit/Timer.java ! modules/web/src/main/java/com/sun/webkit/UIClient.java ! modules/web/src/main/java/com/sun/webkit/Utilities.java ! modules/web/src/main/java/com/sun/webkit/WCFrameView.java ! modules/web/src/main/java/com/sun/webkit/WCPasteboard.java ! modules/web/src/main/java/com/sun/webkit/WCPluginWidget.java ! modules/web/src/main/java/com/sun/webkit/WCWidget.java ! modules/web/src/main/java/com/sun/webkit/WebPage.java ! modules/web/src/main/java/com/sun/webkit/WebPageClient.java ! modules/web/src/main/java/com/sun/webkit/dom/EventListenerImpl.java ! modules/web/src/main/java/com/sun/webkit/event/WCChangeEvent.java ! modules/web/src/main/java/com/sun/webkit/event/WCChangeListener.java ! modules/web/src/main/java/com/sun/webkit/event/WCFocusEvent.java ! modules/web/src/main/java/com/sun/webkit/event/WCInputMethodEvent.java ! modules/web/src/main/java/com/sun/webkit/event/WCKeyEvent.java ! modules/web/src/main/java/com/sun/webkit/event/WCMouseEvent.java ! modules/web/src/main/java/com/sun/webkit/event/WCMouseWheelEvent.java ! modules/web/src/main/java/com/sun/webkit/graphics/GraphicsDecoder.java ! modules/web/src/main/java/com/sun/webkit/graphics/Ref.java ! modules/web/src/main/java/com/sun/webkit/graphics/RenderMediaControls.java ! modules/web/src/main/java/com/sun/webkit/graphics/RenderTheme.java ! modules/web/src/main/java/com/sun/webkit/graphics/ScrollBarTheme.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCFont.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCFontCustomPlatformData.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCGradient.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCGraphicsContext.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCGraphicsManager.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCIcon.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCImage.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCImageDecoder.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCImageFrame.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCMediaPlayer.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCPageBackBuffer.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCPath.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCPathIterator.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCPoint.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCRectangle.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCRenderQueue.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCSize.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCStroke.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCTransform.java ! modules/web/src/main/java/com/sun/webkit/network/ByteBufferPool.java ! modules/web/src/main/java/com/sun/webkit/network/Cookie.java ! modules/web/src/main/java/com/sun/webkit/network/CookieJar.java ! modules/web/src/main/java/com/sun/webkit/network/CookieManager.java ! modules/web/src/main/java/com/sun/webkit/network/CookieStore.java ! modules/web/src/main/java/com/sun/webkit/network/DateParser.java ! modules/web/src/main/java/com/sun/webkit/network/DirectoryURLConnection.java ! modules/web/src/main/java/com/sun/webkit/network/ExtendedTime.java ! modules/web/src/main/java/com/sun/webkit/network/FormDataElement.java ! modules/web/src/main/java/com/sun/webkit/network/NetworkContext.java ! modules/web/src/main/java/com/sun/webkit/network/PublicSuffixes.java ! modules/web/src/main/java/com/sun/webkit/network/SocketStreamHandle.java ! modules/web/src/main/java/com/sun/webkit/network/URLLoader.java ! modules/web/src/main/java/com/sun/webkit/network/URLs.java ! modules/web/src/main/java/com/sun/webkit/network/Util.java ! modules/web/src/main/java/com/sun/webkit/network/about/AboutURLConnection.java ! modules/web/src/main/java/com/sun/webkit/network/about/Handler.java ! modules/web/src/main/java/com/sun/webkit/network/data/DataURLConnection.java ! modules/web/src/main/java/com/sun/webkit/network/data/Handler.java ! modules/web/src/main/java/com/sun/webkit/perf/PerfLogger.java ! modules/web/src/main/java/com/sun/webkit/perf/WCFontPerfLogger.java ! modules/web/src/main/java/com/sun/webkit/perf/WCGraphicsPerfLogger.java ! modules/web/src/main/java/com/sun/webkit/plugin/DefaultPlugin.java ! modules/web/src/main/java/com/sun/webkit/plugin/Plugin.java ! modules/web/src/main/java/com/sun/webkit/plugin/PluginHandler.java ! modules/web/src/main/java/com/sun/webkit/plugin/PluginListener.java ! modules/web/src/main/java/com/sun/webkit/plugin/PluginManager.java ! modules/web/src/main/java/com/sun/webkit/text/StringCase.java ! modules/web/src/main/java/com/sun/webkit/text/TextBreakIterator.java ! modules/web/src/main/java/com/sun/webkit/text/TextCodec.java ! modules/web/src/main/java/com/sun/webkit/text/TextNormalizer.java ! modules/web/src/main/java/javafx/scene/web/PopupFeatures.java ! modules/web/src/main/java/javafx/scene/web/PromptData.java ! modules/web/src/main/java/javafx/scene/web/WebEngine.java ! modules/web/src/main/java/javafx/scene/web/WebEvent.java ! modules/web/src/main/java/javafx/scene/web/WebHistory.java ! modules/web/src/main/java/javafx/scene/web/WebView.java ! modules/web/src/main/native/Source/WTF/wtf/java/JavaRef.h ! modules/web/src/main/native/Source/WTF/wtf/java/MainThreadJava.cpp ! modules/web/src/main/native/Source/WTF/wtf/java/MainThreadJava.h ! modules/web/src/main/native/Source/WTF/wtf/java/StringJava.cpp ! modules/web/src/main/native/Source/WTF/wtf/unicode/java/UnicodeJava.cpp ! modules/web/src/main/native/Source/WTF/wtf/unicode/java/UnicodeJava.h ! modules/web/src/main/native/Source/WTF/wtf/unicode/java/mirrorPairs.h ! modules/web/src/main/native/Source/WebCore/bindings/java/DOMException.h ! modules/web/src/main/native/Source/WebCore/bindings/java/JavaDOMUtils.cpp ! modules/web/src/main/native/Source/WebCore/bindings/java/JavaDOMUtils.h ! modules/web/src/main/native/Source/WebCore/bindings/java/JavaEventListener.cpp ! modules/web/src/main/native/Source/WebCore/bindings/java/JavaEventListener.h ! modules/web/src/main/native/Source/WebCore/page/java/ChromeClientJava.cpp ! modules/web/src/main/native/Source/WebCore/page/java/ChromeClientJava.h ! modules/web/src/main/native/Source/WebCore/page/java/DragControllerJava.cpp ! modules/web/src/main/native/Source/WebCore/page/java/EventHandlerJava.cpp ! modules/web/src/main/native/Source/WebCore/page/java/FrameJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/BitmapImageJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/BufferImageJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/BufferImageJava.h ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/BufferImageSkiaJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/BufferImageSkiaJava.h ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/ChromiumBridge.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/ChromiumBridge.h ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/FontCacheJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/FontCustomPlatformData.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/FontCustomPlatformData.h ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/FontJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/FontPlatformData.h ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/FontPlatformDataJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/GlyphPageTreeNodeJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/GraphicsContextJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/GraphicsContextJava.h ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/IconJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/ImageBufferDataJava.h ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/ImageBufferJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/ImageJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/ImageSourceJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/MediaPlayerPrivateJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/MediaPlayerPrivateJava.h ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/PathJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/PlatformContextJava.h ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/RQRef.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/RQRef.h ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/RenderingQueue.cpp ! modules/web/src/main/native/Source/WebCore/platform/graphics/java/RenderingQueue.h ! modules/web/src/main/native/Source/WebCore/platform/java/BridgeUtils.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/BridgeUtils.h ! modules/web/src/main/native/Source/WebCore/platform/java/ClipboardJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/ClipboardJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/ClipboardUtilitiesJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/ClipboardUtilitiesJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/ContextMenuClientJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/ContextMenuClientJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/ContextMenuItemJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/ContextMenuJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/CursorJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/DataObjectJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/DragClientJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/DragClientJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/DragDataJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/EditorClientJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/EditorClientJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/EventLoopJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/FileChooserJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/FileSystemJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/FrameLoaderClientJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/FrameLoaderClientJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/FrameNetworkingContextJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/IDNJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/IDNJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/InspectorClientJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/InspectorClientJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/JavaEnv.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/JavaEnv.h ! modules/web/src/main/native/Source/WebCore/platform/java/KeyboardEventJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/LanguageJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/LocalizedStringsJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/LoggingJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/MIMETypeRegistryJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/MouseEventJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/PasteboardJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/PlatformScreenJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/PlatformStrategiesJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/PlatformStrategiesJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/PluginDataJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/PluginInfoStoreJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/PluginViewJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/PluginWidgetJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/PluginWidgetJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/PopupMenuJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/PopupMenuJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/RenderThemeJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/RenderThemeJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/ScrollbarThemeJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/ScrollbarThemeJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/SearchPopupMenuJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/SharedBufferJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/SharedTimerJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/SoundJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/StringJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/StringJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/TemporaryLinkStubs.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/TextBreakIteratorInternalICUJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/TextBreakIteratorJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/TextCodecJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/TextCodecJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/TextNormalizerJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/TextNormalizerJava.h ! modules/web/src/main/native/Source/WebCore/platform/java/WebPage.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/WebPage.h ! modules/web/src/main/native/Source/WebCore/platform/java/WheelEventJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/WidgetJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/api/BackForwardListJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/java/api/PageCacheJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/network/java/CookieJarJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/network/java/ResourceError.h ! modules/web/src/main/native/Source/WebCore/platform/network/java/ResourceHandleJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/network/java/ResourceRequestJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/network/java/ResourceResponse.h ! modules/web/src/main/native/Source/WebCore/platform/network/java/SocketStreamError.h ! modules/web/src/main/native/Source/WebCore/platform/network/java/SocketStreamHandle.h ! modules/web/src/main/native/Source/WebCore/platform/network/java/SocketStreamHandleJava.cpp ! modules/web/src/main/native/Source/WebCore/platform/network/java/URLLoader.cpp ! modules/web/src/main/native/Source/WebCore/platform/network/java/URLLoader.h ! modules/web/src/main/native/Source/WebCore/plugins/java/PluginDataJava.cpp ! modules/web/src/main/native/Source/WebCore/plugins/java/PluginDataJava.h ! modules/web/src/main/native/Tools/DumpRenderTree/java/DumpRenderTree.cpp ! modules/web/src/main/native/Tools/DumpRenderTree/java/EventSender.cpp ! modules/web/src/main/native/Tools/DumpRenderTree/java/EventSender.h ! modules/web/src/main/native/Tools/DumpRenderTree/java/GCControllerJava.cpp ! modules/web/src/main/native/Tools/DumpRenderTree/java/JavaEnv.cpp ! modules/web/src/main/native/Tools/DumpRenderTree/java/JavaEnv.h ! modules/web/src/main/native/Tools/DumpRenderTree/java/TestRunnerJava.cpp ! modules/web/src/main/native/Tools/DumpRenderTree/java/WorkQueueItemJava.cpp ! modules/web/src/main/resources/com/sun/javafx/scene/web/skin/HTMLEditorSkin.properties ! modules/web/src/main/resources/com/sun/javafx/scene/web/skin/HTMLEditorSkin_de.properties ! modules/web/src/main/resources/com/sun/javafx/scene/web/skin/HTMLEditorSkin_es.properties ! modules/web/src/main/resources/com/sun/javafx/scene/web/skin/HTMLEditorSkin_fr.properties ! modules/web/src/main/resources/com/sun/javafx/scene/web/skin/HTMLEditorSkin_it.properties ! modules/web/src/main/resources/com/sun/javafx/scene/web/skin/HTMLEditorSkin_ja.properties ! modules/web/src/main/resources/com/sun/javafx/scene/web/skin/HTMLEditorSkin_ko.properties ! modules/web/src/main/resources/com/sun/javafx/scene/web/skin/HTMLEditorSkin_pt_BR.properties ! modules/web/src/main/resources/com/sun/javafx/scene/web/skin/HTMLEditorSkin_sv.properties ! modules/web/src/main/resources/com/sun/javafx/scene/web/skin/HTMLEditorSkin_zh_CN.properties ! modules/web/src/main/resources/com/sun/javafx/scene/web/skin/HTMLEditorSkin_zh_TW.properties ! modules/web/src/test/java/com/sun/webkit/SharedBufferTest.java ! modules/web/src/test/java/com/sun/webkit/SimpleSharedBufferInputStreamTest.java ! modules/web/src/test/java/com/sun/webkit/network/CookieManagerTest.java ! modules/web/src/test/java/com/sun/webkit/network/CookieTest.java ! modules/web/src/test/java/com/sun/webkit/network/DateParserTest.java ! modules/web/src/test/java/com/sun/webkit/network/PublicSuffixesTest.java ! modules/web/src/test/java/com/sun/webkit/network/UtilTest.java ! modules/web/src/test/java/com/sun/webkit/network/data/DataURLConnectionTest.java ! modules/web/src/test/java/com/sun/webkit/text/TextBreakIteratorTest.java ! modules/web/src/test/java/javafx/scene/web/BindingTest.java ! modules/web/src/test/java/javafx/scene/web/CSSTest.java ! modules/web/src/test/java/javafx/scene/web/CallbackTest.java ! modules/web/src/test/java/javafx/scene/web/CheckFxThreadTest.java ! modules/web/src/test/java/javafx/scene/web/DOMTest.java ! modules/web/src/test/java/javafx/scene/web/DebuggerTest.java ! modules/web/src/test/java/javafx/scene/web/HistoryTest.java ! modules/web/src/test/java/javafx/scene/web/IrresponsiveScriptTest.java ! modules/web/src/test/java/javafx/scene/web/JavaScriptBridgeTest.java ! modules/web/src/test/java/javafx/scene/web/LeakTest.java ! modules/web/src/test/java/javafx/scene/web/LoadNotificationsTest.java ! modules/web/src/test/java/javafx/scene/web/LoadTest.java ! modules/web/src/test/java/javafx/scene/web/MiscellaneousTest.java ! modules/web/src/test/java/javafx/scene/web/ScreenAndWindowTest.java ! modules/web/src/test/java/javafx/scene/web/TestBase.java ! modules/web/src/test/java/javafx/scene/web/WebPageTest.java ! modules/web/src/test/java/javafx/scene/web/WebViewResizabilityTest.java ! modules/web/src/test/java/javafx/scene/web/WebViewTest.java ! tests/golden-image-suite/src/modena/SameHeightTestController.java ! tests/golden-image-suite/src/modena/SamplePage.java ! tests/golden-image-suite/src/modena/SamplePageChartHelper.java ! tests/golden-image-suite/src/modena/SamplePageHelpers.java ! tests/golden-image-suite/src/modena/SamplePageTableHelper.java ! tests/golden-image-suite/src/modena/SamplePageTreeHelper.java ! tests/golden-image-suite/src/modena/SamplePageTreeTableHelper.java ! tests/golden-image-suite/src/modena/SimpleWindowPage.java ! tests/golden-image-suite/src/modena/TestApp.css ! tests/system/src/test/java/javafx/scene/layout/RegionBackgroundFillUITest.java ! tests/system/src/test/java/javafx/scene/layout/RegionBackgroundImageUITest.java ! tests/system/src/test/java/javafx/scene/layout/RegionBorderImageUITest.java ! tests/system/src/test/java/javafx/scene/layout/RegionBorderStrokeUITest.java ! tests/system/src/test/java/javafx/scene/layout/RegionShapeUITest.java ! tests/system/src/test/java/javafx/scene/layout/RegionUITestBase.java ! tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/util/Base64.java From chien.yang at oracle.com Mon Dec 23 14:08:39 2013 From: chien.yang at oracle.com (Chien Yang) Date: Mon, 23 Dec 2013 14:08:39 -0800 Subject: [8u] Code Review Request - RT-31749: Support Intel GPU on Linux platform Message-ID: <52B8B467.9050605@oracle.com> Hi Kevin, Please review this simple one line fix to enable support for Intel GPU on the Linux platform: https://javafx-jira.kenai.com/browse/RT-31749 Thanks, - Chien From chien.yang at oracle.com Mon Dec 23 15:30:40 2013 From: chien.yang at oracle.com (Chien Yang) Date: Mon, 23 Dec 2013 15:30:40 -0800 Subject: [8u] Code Review Request - RT-34385: Support Prism HW acceleration on Linux with open-source driver Message-ID: <52B8C7A0.7040108@oracle.com> Hi Felipe and Kevin, Please review this simple one line fix to support X.Org open source drivers for ATI/AMD and Nvidia: http://cr.openjdk.java.net/~ckyang/RT-34385/webrev.00/ Thanks, - Chien From hang.vo at oracle.com Mon Dec 23 14:32:01 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 23 Dec 2013 22:32:01 +0000 Subject: hg: openjfx/8u-dev/rt: Fix to RT-31749: Support Intel GPU on Linux platform Message-ID: <20131223223225.D933E62ECE@hg.openjdk.java.net> Changeset: f0073aabe344 Author: Chien Yang Date: 2013-12-23 14:27 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/f0073aabe344 Fix to RT-31749: Support Intel GPU on Linux platform Reviewed-by: kcr ! modules/graphics/src/main/java/com/sun/prism/es2/X11GLFactory.java From hang.vo at oracle.com Tue Dec 24 03:04:10 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 24 Dec 2013 11:04:10 +0000 Subject: hg: openjfx/8u-dev/rt: Fix for RT-35016: [Lens, DirectFB] VM crashed with SIGSEGV Message-ID: <20131224110556.F186662EE2@hg.openjdk.java.net> Changeset: 1e0847e8c1bf Author: Elina Kleyman Date: 2013-12-24 12:54 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/1e0847e8c1bf Fix for RT-35016: [Lens, DirectFB] VM crashed with SIGSEGV ! modules/graphics/src/main/native-glass/lens/wm/screen/dfbScreen.c From chien.yang at oracle.com Tue Dec 24 04:33:00 2013 From: chien.yang at oracle.com (Chien Yang) Date: Tue, 24 Dec 2013 04:33:00 -0800 Subject: [8u] Code Review Request - RT-34385: Support Prism HW acceleration on Linux with open-source driver In-Reply-To: <52B8C7A0.7040108@oracle.com> References: <52B8C7A0.7040108@oracle.com> Message-ID: <52B97EFC.90503@oracle.com> Here is the link to the JIRA: https://javafx-jira.kenai.com/browse/RT-34385 - Chien On 12/23/2013 3:30 PM, Chien Yang wrote: > Hi Felipe and Kevin, > > Please review this simple one line fix to support X.Org open > source drivers for ATI/AMD and Nvidia: > > http://cr.openjdk.java.net/~ckyang/RT-34385/webrev.00/ > > Thanks, > - Chien From David.Hill at Oracle.com Thu Dec 26 08:04:06 2013 From: David.Hill at Oracle.com (David Hill) Date: Thu, 26 Dec 2013 11:04:06 -0500 Subject: Result: New OpenJFX Committer: Vadim Pakhnushev Message-ID: <52BC5376.1090509@Oracle.com> Voting for Vadim Pakhnushev to OpenJFX Committer [1] is now closed. Yes: 7 Veto: 0 Abstain: 0 According to the Bylaws definition of Lazy Consensus, this is sufficient to approve the nomination. Dave [1] http://mail.openjdk.java.net/pipermail/openjfx-dev/2013-July/008677.html -- David Hill Java Embedded Development "The most likely way for the world to be destroyed, most experts agree, is by accident. That's where we come in; we're computer professionals. We cause accidents." -- Nathaniel Borenstein (1957 - ) From hang.vo at oracle.com Thu Dec 26 11:47:55 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 26 Dec 2013 19:47:55 +0000 Subject: hg: openjfx/8u-dev/rt: RT-34980: fixing bogus library dep for libprism_common.so for ARM Message-ID: <20131226194954.8FEEC62F42@hg.openjdk.java.net> Changeset: 33bb9130bbce Author: ddhill Date: 2013-12-26 14:43 -0500 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/33bb9130bbce RT-34980: fixing bogus library dep for libprism_common.so for ARM Reviewed-by: dblaukopf ! buildSrc/armv6hf.gradle ! buildSrc/armv6sf.gradle From hang.vo at oracle.com Thu Dec 26 20:03:29 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 27 Dec 2013 04:03:29 +0000 Subject: hg: openjfx/8u-dev/rt: Fix to RT-34900: Upgrade Netbeans projects to Netbeans 7.4 Message-ID: <20131227040537.B907162F49@hg.openjdk.java.net> Changeset: ee795ba3d03e Author: Chien Yang Date: 2013-12-26 19:45 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/ee795ba3d03e Fix to RT-34900: Upgrade Netbeans projects to Netbeans 7.4 ! netbeans/base/nbproject/build-impl.xml ! netbeans/base/nbproject/genfiles.properties ! netbeans/base/nbproject/project.properties ! netbeans/buildSrc/nbproject/build-impl.xml ! netbeans/buildSrc/nbproject/genfiles.properties ! netbeans/buildSrc/nbproject/project.properties ! netbeans/builders/nbproject/build-impl.xml ! netbeans/builders/nbproject/genfiles.properties ! netbeans/builders/nbproject/project.properties ! netbeans/controls/nbproject/build-impl.xml ! netbeans/controls/nbproject/genfiles.properties ! netbeans/controls/nbproject/project.properties ! netbeans/designTime/nbproject/build-impl.xml ! netbeans/designTime/nbproject/genfiles.properties ! netbeans/designTime/nbproject/project.properties ! netbeans/fxml/nbproject/build-impl.xml ! netbeans/fxml/nbproject/genfiles.properties ! netbeans/fxml/nbproject/project.properties ! netbeans/fxpackager/nbproject/build-impl.xml ! netbeans/fxpackager/nbproject/genfiles.properties ! netbeans/fxpackager/nbproject/project.properties ! netbeans/graphics/nbproject/build-impl.xml ! netbeans/graphics/nbproject/genfiles.properties ! netbeans/graphics/nbproject/project.properties ! netbeans/jmx/nbproject/build-impl.xml ! netbeans/jmx/nbproject/genfiles.properties ! netbeans/jmx/nbproject/project.properties ! netbeans/media/build.xml ! netbeans/media/nbproject/build-impl.xml ! netbeans/media/nbproject/genfiles.properties ! netbeans/media/nbproject/project.properties ! netbeans/native-decora/nbproject/Makefile-Debug.mk ! netbeans/native-decora/nbproject/Makefile-Release.mk ! netbeans/native-font/nbproject/Makefile-Debug.mk ! netbeans/native-font/nbproject/Makefile-Release.mk ! netbeans/native-glass/nbproject/Makefile-Debug.mk ! netbeans/native-glass/nbproject/Makefile-Release.mk ! netbeans/native-iio/nbproject/Makefile-Debug.mk ! netbeans/native-iio/nbproject/Makefile-Release.mk ! netbeans/native-prism-d3d/nbproject/Makefile-Debug.mk ! netbeans/native-prism-d3d/nbproject/Makefile-Release.mk ! netbeans/native-prism-es2/nbproject/Makefile-Debug.mk ! netbeans/native-prism-es2/nbproject/Makefile-Release.mk ! netbeans/native-prism-sw/nbproject/Makefile-Debug.mk ! netbeans/native-prism-sw/nbproject/Makefile-Release.mk ! netbeans/native-prism/nbproject/Makefile-Debug.mk ! netbeans/native-prism/nbproject/Makefile-Release.mk ! netbeans/swing/nbproject/build-impl.xml ! netbeans/swing/nbproject/genfiles.properties ! netbeans/swing/nbproject/project.properties ! netbeans/swt/nbproject/build-impl.xml ! netbeans/swt/nbproject/genfiles.properties ! netbeans/swt/nbproject/project.properties ! netbeans/systemTests/build.xml ! netbeans/systemTests/nbproject/build-impl.xml ! netbeans/systemTests/nbproject/genfiles.properties ! netbeans/systemTests/nbproject/project.properties ! netbeans/web/build.xml ! netbeans/web/nbproject/build-impl.xml ! netbeans/web/nbproject/genfiles.properties ! netbeans/web/nbproject/project.properties From chien.yang at oracle.com Thu Dec 26 20:22:34 2013 From: chien.yang at oracle.com (Chien Yang) Date: Thu, 26 Dec 2013 20:22:34 -0800 Subject: 8u post-commit review: RT-34900: Upgrade Netbeans projects to Netbeans 7.4 Message-ID: <52BD008A.4050205@oracle.com> JIRA: https://javafx-jira.kenai.com/browse/RT-34900 Thanks, - Chien From hang.vo at oracle.com Fri Dec 27 06:05:11 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 27 Dec 2013 14:05:11 +0000 Subject: hg: openjfx/8/graphics/rt: Sync up SceneBuilder changes Message-ID: <20131227140640.CD93062F4F@hg.openjdk.java.net> Changeset: b5ed4e9e9ce9 Author: Yves Joan Date: 2013-12-27 14:58 +0100 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/b5ed4e9e9ce9 Sync up SceneBuilder changes ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/AppPlatform.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/CssPanelDelegate.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/CssPanelMenuController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindow.css ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindow.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindowController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/ResourceController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderApp.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderTest.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneStyleSheetMenuController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SplitController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/About.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/AboutWindowController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/about-footer.png ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/I18N.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp.properties ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp_ja.properties ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp_zh_CN.properties ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/IndexEntry.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanel.css ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanel.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanelController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/LeftCell.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/RightCell.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/DebugMenuController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBar.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBarController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBar.css ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBar.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBarController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanel.css ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanel.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanelController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePopupController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Preferences.css ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Preferences.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordDocument.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordGlobal.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesWindowController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/BackgroundColor.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/BackgroundColorDialogController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/PreviewWindowController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/report/JarAnalysisReport.css ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/report/JarAnalysisReport.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/report/JarAnalysisReportController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBar.css ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBar.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBarController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonBuffer.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindow.css ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindow.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindowController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog.css ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog_css.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog_i18n.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication.css ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication_css.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication_i18n.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication.css ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication_css.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication_i18n.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/FxmlTemplates.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/TemplateDialog.fxml ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/TemplateDialogController.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/util/FileMutex.java ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/util/MessageBox.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorPlatform.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/JobManager.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/DragController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/LiveUpdater.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/AbstractDragSource.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/DocumentDragSource.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/DragSourceShadow.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/ExternalDragSource.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/source/LibraryDragSource.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/AbstractDropTarget.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/AccessoryDropTarget.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/CollectionDropTarget.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/ContainerXYDropTarget.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/ContainerZDropTarget.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/GridPaneDropTarget.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/target/RootDropTarget.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/I18N.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/SceneBuilderKit.properties ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/SceneBuilderKit_ja.properties ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/i18n/SceneBuilderKit_zh_CN.properties ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/ImageUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/ArrangeZOrderJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/BatchJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/BatchModifyObjectJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/BringForwardJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/BringToFrontJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/CutSelectionJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DeleteGridSelectionJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DeleteObjectJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DeleteObjectSelectionJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DeleteSelectionJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DuplicateSelectionJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/FitToParentObjectJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/FitToParentSelectionJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/InsertAsAccessoryJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/InsertAsSubComponentAndRelocateJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/InsertAsSubComponentJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/Job.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/JobUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/ModifyFxControllerJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/ModifyFxIdJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/ModifyObjectJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/ModifySelectionJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/PasteIntoJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/PasteJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/ReIndexObjectJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/RelocateNodeJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/SendBackwardJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/SendToBackJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/SetDocumentRootJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/TrimSelectionJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/UseComputedSizesObjectJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/UseComputedSizesSelectionJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/AddColumnConstraintsJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/AddColumnJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/AddRowConstraintsJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/AddRowJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/DeleteColumnJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/DeleteRowJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/GridPaneJobUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/MoveColumnJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/MoveRowJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/ReIndexColumnContentJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/ReIndexRowContentJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/RemoveColumnConstraintsJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/RemoveColumnContentJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/RemoveRowConstraintsJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/RemoveRowContentJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/GridSnapshot.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/GridSnapshotItem.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertColumnConstraintsJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertColumnJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertRowConstraintsJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/InsertRowJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/MoveCellContentJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/MoveColumnContentJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/v2/MoveRowContentJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/AddPropertyJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/AddPropertyValueJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/ClearSelectionJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/CompositeJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/RemovePropertyJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/RemovePropertyValueJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/v2/UpdateSelectionJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/AbstractWrapInContentJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/AbstractWrapInJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/AbstractWrapInSubComponentJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/FXOMObjectCourseComparator.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/UnwrapJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInAnchorPaneJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInGridPaneJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInGroupJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInHBoxJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInPaneJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInScrollPaneJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInSplitPaneJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInStackPaneJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInTabPaneJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInTitledPaneJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInToolBarJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapInVBoxJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/wrap/WrapJobUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/messagelog/MessageLog.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/messagelog/MessageLogEntry.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/AbstractDecoration.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanel.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanel.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/HudWindow.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/HudWindow.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/HudWindowController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/WorkspaceController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/AbstractDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/AbstractNodeDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/BorderPaneDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/FlowPaneDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/GenericDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/GridPaneDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/HBoxDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/LineDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/SplitPaneDesignInfoX.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/SplitPaneDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TabDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TabOutline.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TabPaneDesignInfoX.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TabPaneDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TableColumnDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TableViewDesignInfoX.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TableViewDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TextFlowDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/ToolBarDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TreeTableColumnDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TreeTableViewDesignInfoX.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/TreeTableViewDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/VBoxDriver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneMosaic.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPanePring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/gridpane/GridPaneTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractCurveHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractGenericHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractNodeHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/LineHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/NodeHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/SplitPaneHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TabHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TableColumnHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TableViewHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TreeTableColumnHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TreeTableViewHandles.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/outline/AbstractOutline.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/outline/NodeOutline.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/AbstractGenericPring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/AbstractPring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/NodePring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/TabPring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/TableColumnPring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/pring/TreeTableColumnPring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/relocater/AbstractRelocater.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/relocater/AnchorPaneRelocater.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/relocater/PaneRelocater.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/AbstractResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/CanvasResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/GridPaneColumnResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/GridPaneRowResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/ImageViewResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/LazyResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/RegionResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/SubSceneResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/TableColumnResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/TreeTableColumnResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/WebViewResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/shape/ArcResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/shape/CircleResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/shape/EllipseResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/shape/RectangleResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/resizer/shape/TextResizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/rudder/AbstractRudder.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/rudder/ResizeRudder.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/AbstractGenericTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/AbstractNodeTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/AbstractTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/BorderPaneTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/GenericParentTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/HBoxTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/NodeTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/Quad.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/TabTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/TableColumnTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/TreeTableColumnTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/tring/VBoxTring.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/AbstractGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/DragGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/SelectWithPringGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/ZoomGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/AbstractMouseDragGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/AbstractMouseGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/AdjustDividerGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/DebugMouseGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/DiscardGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/EditCurveGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeColumnGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeRowGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeTableColumnGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/ResizeTreeTableColumnGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/SelectAndMoveGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/SelectAndMoveInGridGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/SelectWithMarqueeGesture.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/AbstractSegment.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/HorizontalLineComparator.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/HorizontalLineIndex.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/HorizontalSegment.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/MovingGuideController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/MovingGuideRenderer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/ResizingGuideChrome.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/ResizingGuideController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/ResizingGuideRenderer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/SegmentIndex.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/VerticalLineComparator.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/VerticalLineIndex.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/guides/VerticalSegment.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/AbstractModeController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/EditModeController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/PickModeController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/BoundsUnion.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/BoundsUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/CardinalPoint.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/LineEquation.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/Picker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/RegionRectangle.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/util/ScrollPaneBooster.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssContentMaker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanel.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanel.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssValueConverter.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssValuePresenterFactory.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/SelectionPath.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/AbstractHierarchyPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyAnimationScheduler.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyDNDController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyItem.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyItemBorderPane.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyItemGraphic.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyTaskScheduler.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/ImageView.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableCell.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableRow.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableView.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableView.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableViewController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treetableview/HierarchyTreeTableViewUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeCell.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeView.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeView.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeViewController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeViewUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/Inspector.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/Inspector.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/InspectorPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/SubSection.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AnchorPaneConstraintsEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AnchorPaneConstraintsEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AutoSuggestEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BooleanEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BoundedDoubleEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BoundedDoubleEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ControllerClassEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/CursorEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/CursorEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DividerPositionsEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DoubleAutoSuggestEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DoubleEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DoubleField.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/Editor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EditorItem.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EditorItemDelegate.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EditorUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EnumEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EventHandlerEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/FxIdEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/GenericEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/I18nStringEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ImageEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ImageEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/InlineListEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/InsetsEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/InsetsEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/IntegerAutoSuggestEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/IntegerEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/IntegerField.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/NumberField.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/Point3DEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/Point3DEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/PropertiesEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/PropertyEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/RotateEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/RotateEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StringAutoSuggestEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleClassEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleClassEditorItem.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleEditorItem.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StylesheetEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StylesheetEditorInitialBt.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StylesheetEditorItem.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/TextAlignmentEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/TextAlignmentEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/BoundsPopupEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/BoundsPopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/KeyCombinationPopupEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/KeyCombinationPopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PaintPopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PopupEditor.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PopupEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PopupEditorValidation.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/StringPopupEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/StringPopupEditor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportDialog.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportDialog.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportRow.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportRowComparator.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportWindowController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryListCell.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryListItem.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanel.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanel.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractFxmlController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractFxmlPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractFxmlPopupController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractFxmlWindowController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractPopupController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractWindowController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/AbstractModalDialog.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/AbstractModalDialogM.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/AbstractModalDialogW.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/AlertDialog.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/AlertDialog.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/ErrorDialog.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/TextViewDialog.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/TextViewDialog.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/report/ErrorReport.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/report/ErrorReportEntry.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/search/Search.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/search/Search.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/search/SearchController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/AbstractSelectionGroup.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/GridSelectionGroup.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/ObjectSelectionGroup.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/selection/Selection.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/util/ContextMenuController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/util/InlineEditController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMArchive.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMCollection.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMDocument.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMIndex.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMInstance.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMIntrinsic.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMLoader.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMNode.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMNodes.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMNormalizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMObject.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMProperty.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMPropertyC.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMPropertyT.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMRefresher.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMSaver.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/GlueCursor.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/ResourceKeyCollector.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/TransientIntrinsic.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/TransientNode.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/TransientObject.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/TransientProperty.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/TransientStateBackup.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueAuxiliary.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueCharacters.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueDocument.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueElement.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueInstruction.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueLoader.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueNode.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueSerializer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/GlueSnapshot.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/QualifiedName.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/XMLAttrComparator.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/glue/XMLBuffer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/AbstractSampleData.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/ChoiceBoxSampleData.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/ComboBoxSampleData.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/ListViewSampleData.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/PieChartSampleData.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/SampleDataGenerator.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/TableViewSampleData.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/TreeTableViewSampleData.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/TreeViewSampleData.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/XYChartSampleData.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/glossary/BuiltinGlossary.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/glossary/ControllerClass.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/glossary/Glossary.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/glossary/JavaTokenizer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/BuiltinLibrary.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/BuiltinSectionComparator.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/Library.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/LibraryItem.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/LibraryItemNameComparator.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Accordion.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/AmbientLight.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Arc.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/AreaChart.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/AreaChartNN.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/BarChart.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Box.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/BubbleChart.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Button.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Canvas.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/CheckBox.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/CheckMenuItem.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ChoiceBox.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Circle.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ComboBox.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ContextMenu.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/CubicCurve.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/CustomMenuItem.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Cylinder.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Ellipse.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/GridPane.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/HTMLEditor.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Hyperlink.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ImageView.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Label.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Line.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/LineChart.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/LineChartNN.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/MediaView.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Menu.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/MenuBar.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/MenuButton.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/MenuItem.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/PointLight.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Polygon.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Polyline.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ProgressBar.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ProgressIndicator.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/QuadCurve.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/RadioButton.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/RadioMenuItem.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Rectangle.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SVGPath.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ScatterChart.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ScatterChartNN.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ScrollBarH.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ScrollBarV.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ScrollPane.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SeparatorH.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SeparatorMenuItem.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SeparatorV.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SliderH.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SliderV.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Sphere.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SplitMenuButton.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SplitPaneH.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SplitPaneV.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/StackedAreaChart.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/StackedBarChart.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/SwingNode.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Tab.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/TabPane.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/TableColumn.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/TableView.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Text.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/TitledPane.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ToggleButton.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/ToolBar.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/Tooltip.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/TreeTableColumn.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/TreeTableView.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/builtin/WebView.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/user/LibraryFolderWatcher.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/user/UserLibrary.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/util/JarExplorer.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/util/JarReport.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/util/JarReportEntry.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/Metadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/MetadataIntrospector.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/klass/ClassMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/klass/ComponentClassMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/klass/CustomComponentClassMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/klass/ValueClassMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/ComponentPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/PropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/ValuePropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ArrayPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/BooleanPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/BorderPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/BoundsPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/CallbackPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ColumnConstraintsPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ComplexPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/CursorPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/DoubleArrayPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/DoublePropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/EffectPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/EnumerationPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/EventHandlerPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/FontPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ImagePropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/InsetsPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/IntegerPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ListCellPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/MaterialPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/MeshPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/ObjectPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/Point3DPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/Rectangle2DPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/RowConstraintsPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/SingleValuePropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/StringConverterPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/StringPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/TableViewResizePolicyPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/TextEncodablePropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/TransformPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/TreeTableViewResizePolicyPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/background/BackgroundFillPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/background/BackgroundImagePropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/background/BackgroundPositionPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/background/BackgroundPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/background/BackgroundSizePropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/background/CornerRadiiPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/keycombination/KeyCharacterCombinationPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/keycombination/KeyCodeCombinationPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/keycombination/KeyCombinationPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/BackgroundFillListPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/BackgroundImageListPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/ColorListPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/ColumnConstraintsListPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/DividerListPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/DoubleListPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/ListValuePropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/ObjectListPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/RowConstraintsListPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/StopListPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/StringListPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/TickMarkListPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/list/TransformListPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/ColorPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/ImagePatternPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/LinearGradientPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/PaintPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/RadialGradientPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/property/value/paint/StopPropertyMetadata.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/BeanPropertyIntrospector.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ClipboardDecoder.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ClipboardEncoder.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ColorEncoder.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/DesignHierarchyMask.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/DesignHierarchyPath.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/InspectorPath.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/InspectorPathComparator.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/PrefixedValue.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/PropertyName.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/StaticPropertyIntrospector.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ValuePropertyMetadataClassComparator.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/ValuePropertyMetadataNameComparator.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/CssInternal.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/Deprecation.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/GridBounds.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/JavaLanguage.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/MathUtils.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPicker.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPicker.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPicker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPickerController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/colorpicker/ColorPicker.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/colorpicker/ColorPicker.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/colorpicker/ColorPicker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPicker.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPicker.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPicker.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/rotator/RotatorControl.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/rotator/RotatorControl.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/rotator/RotatorControl.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/slider/SliderControl.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/slider/SliderControl.java From hang.vo at oracle.com Sat Dec 28 08:18:55 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sat, 28 Dec 2013 16:18:55 +0000 Subject: hg: openjfx/8/graphics/rt: 2 new changesets Message-ID: <20131228161958.6782B62F72@hg.openjdk.java.net> Changeset: bee85bc7f009 Author: mv157916 Date: 2013-12-20 14:19 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/bee85bc7f009 RT-35083: Update the JDK 8 build number to b121 in rt/build.properties file in the JavaFX 8 Master forest. ! build.properties Changeset: dd789066e61e Author: kcr Date: 2013-12-28 08:05 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/dd789066e61e Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt ! build.properties From hang.vo at oracle.com Sat Dec 28 12:04:01 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sat, 28 Dec 2013 20:04:01 +0000 Subject: hg: openjfx/8u-dev/rt: Fix to RT-34385: Support Prism HW acceleration on Linux with open-source driver.Reviewed-by: kcr, felipe. Message-ID: <20131228200600.A819F62F76@hg.openjdk.java.net> Changeset: 824becae74f5 Author: Chien Yang Date: 2013-12-28 12:00 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/824becae74f5 Fix to RT-34385: Support Prism HW acceleration on Linux with open-source driver.Reviewed-by: kcr, felipe. ! modules/graphics/src/main/java/com/sun/prism/es2/X11GLFactory.java From felix.bembrick at gmail.com Sun Dec 29 15:15:52 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Mon, 30 Dec 2013 10:15:52 +1100 Subject: Performance-limiting characteristics of Nodes Message-ID: I just watched the excellent presentation by Gerrit Grunwald "Use the force Luke" on Parleys and in it he mentions that one of the key ways to improve performance is to limit the number of nodes in the scenegraph. He also mentions that on such devices as the Raspberry Pi the maximum number of nodes viable before performance degrades significantly is very, very limited. Further, he then goes on to demonstrate that the equivalent visual appearance can be achieved by other means such as CSS, Canvas etc. where the number of nodes is much less. The implication here is that there is a performance-limiting effect of Nodes. If the device's GPU is capable of rendering certain graphics primitives, effects, transitions etc. and JavaFX is capable of "making them happen" by one way or another, I am curious as to why the simple presence of Nodes limits performance so significantly. The obvious conclusion is that Nodes use memory and perhaps the associated overhead is the cause but given that we are largely talking about GPU based processing I find it hard to believe that it's as simple as this. So what is it about the nature of Nodes that causes them to have such a limiting effect on performance? Cheers, Felix From herve.girod at gmail.com Sun Dec 29 16:03:50 2013 From: herve.girod at gmail.com (=?utf-8?Q?Herv=C3=A9_Girod?=) Date: Mon, 30 Dec 2013 01:03:50 +0100 Subject: Performance-limiting characteristics of Nodes In-Reply-To: References: Message-ID: <5EF70FEE-DA63-4BD0-87CB-2BD19A3486F0@gmail.com> I did not look at the presentation, but perhaps the Raspberry Pi itself is one if the key reasons for these performance problems. It is a great but limited device. I'm not taking at face value the claim that the Pi beats last year generation smartphones architecture. And I'm not sure that canvas would be a suitable tool for "complex" graphic work in JavaFX. It is very limited, I think intentionally. For example you end having a lot of "work" to do even if you want to make a small change to an existing "scene". Nodes are much more powerful. Herv? Sent from my iPhone > On 30 d?c. 2013, at 00:15, Felix Bembrick wrote: > > I just watched the excellent presentation by Gerrit Grunwald "Use the force > Luke" on Parleys and in it he mentions that one of the key ways to improve > performance is to limit the number of nodes in the scenegraph. He also > mentions that on such devices as the Raspberry Pi the maximum number of > nodes viable before performance degrades significantly is very, very > limited. Further, he then goes on to demonstrate that the equivalent > visual appearance can be achieved by other means such as CSS, Canvas etc. > where the number of nodes is much less. > > The implication here is that there is a performance-limiting effect of > Nodes. If the device's GPU is capable of rendering certain graphics > primitives, effects, transitions etc. and JavaFX is capable of "making them > happen" by one way or another, I am curious as to why the simple presence > of Nodes limits performance so significantly. > > The obvious conclusion is that Nodes use memory and perhaps the associated > overhead is the cause but given that we are largely talking about GPU based > processing I find it hard to believe that it's as simple as this. > > So what is it about the nature of Nodes that causes them to have such a > limiting effect on performance? > > Cheers, > > Felix From felix.bembrick at gmail.com Sun Dec 29 16:27:41 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Mon, 30 Dec 2013 11:27:41 +1100 Subject: Performance-limiting characteristics of Nodes In-Reply-To: <5EF70FEE-DA63-4BD0-87CB-2BD19A3486F0@gmail.com> References: <5EF70FEE-DA63-4BD0-87CB-2BD19A3486F0@gmail.com> Message-ID: <9414C781-A6B9-423C-96C8-0FFB6B8D1A91@gmail.com> But the impact on performance that arises simply by increasing the number of nodes is not limited to low powered devices like the Pi. I am interested to know what the cause of that effect is. > On 30 Dec 2013, at 11:03, Herv?? Girod wrote: > > I did not look at the presentation, but perhaps the Raspberry Pi itself is one if the key reasons for these performance problems. It is a great but limited device. I'm not taking at face value the claim that the Pi beats last year generation smartphones architecture. > > And I'm not sure that canvas would be a suitable tool for "complex" graphic work in JavaFX. It is very limited, I think intentionally. For example you end having a lot of "work" to do even if you want to make a small change to an existing "scene". Nodes are much more powerful. > > Herv?? > > Sent from my iPhone > >> On 30 d??c. 2013, at 00:15, Felix Bembrick wrote: >> >> I just watched the excellent presentation by Gerrit Grunwald "Use the force >> Luke" on Parleys and in it he mentions that one of the key ways to improve >> performance is to limit the number of nodes in the scenegraph. He also >> mentions that on such devices as the Raspberry Pi the maximum number of >> nodes viable before performance degrades significantly is very, very >> limited. Further, he then goes on to demonstrate that the equivalent >> visual appearance can be achieved by other means such as CSS, Canvas etc. >> where the number of nodes is much less. >> >> The implication here is that there is a performance-limiting effect of >> Nodes. If the device's GPU is capable of rendering certain graphics >> primitives, effects, transitions etc. and JavaFX is capable of "making them >> happen" by one way or another, I am curious as to why the simple presence >> of Nodes limits performance so significantly. >> >> The obvious conclusion is that Nodes use memory and perhaps the associated >> overhead is the cause but given that we are largely talking about GPU based >> processing I find it hard to believe that it's as simple as this. >> >> So what is it about the nature of Nodes that causes them to have such a >> limiting effect on performance? >> >> Cheers, >> >> Felix From jasper.potts at oracle.com Sun Dec 29 16:50:04 2013 From: jasper.potts at oracle.com (Jasper Potts) Date: Sun, 29 Dec 2013 16:50:04 -0800 Subject: Performance-limiting characteristics of Nodes In-Reply-To: References: Message-ID: My experience was it is not the number of Nodes. It's the number of Nodes that are changed/dirty in a single frame. So having a scene with 500 nodes may take a couple of seconds to render first time but then you can animate a couple of those nodes at 60fps if you done make too big a area dirty. Performance issues are one of two things too much SceneGraph work or too much Graphics card work. You can use pulse logger to determine which issue you are having. Jasper > On Dec 29, 2013, at 3:15 PM, Felix Bembrick wrote: > > I just watched the excellent presentation by Gerrit Grunwald "Use the force > Luke" on Parleys and in it he mentions that one of the key ways to improve > performance is to limit the number of nodes in the scenegraph. He also > mentions that on such devices as the Raspberry Pi the maximum number of > nodes viable before performance degrades significantly is very, very > limited. Further, he then goes on to demonstrate that the equivalent > visual appearance can be achieved by other means such as CSS, Canvas etc. > where the number of nodes is much less. > > The implication here is that there is a performance-limiting effect of > Nodes. If the device's GPU is capable of rendering certain graphics > primitives, effects, transitions etc. and JavaFX is capable of "making them > happen" by one way or another, I am curious as to why the simple presence > of Nodes limits performance so significantly. > > The obvious conclusion is that Nodes use memory and perhaps the associated > overhead is the cause but given that we are largely talking about GPU based > processing I find it hard to believe that it's as simple as this. > > So what is it about the nature of Nodes that causes them to have such a > limiting effect on performance? > > Cheers, > > Felix From mikegps1 at gmail.com Mon Dec 30 00:27:38 2013 From: mikegps1 at gmail.com (Mike) Date: Mon, 30 Dec 2013 00:27:38 -0800 Subject: IPA / APK Internal Message-ID: I know this is a difficult question, but who can give us some advice on what to study up on regarding APK / IPA Generation and a RAD tool for Javafx built on JDK8 I'm laying the ground work for doing this and I'm not certain the best tools to use from inside a Rad tool to help developers build such file types. We plan on having an APP that runs (dashboards) (templates) built from within a RAD tool on a desktop but this doesn't allow developers to make their own APK and IPA's I'm familiar with out Appery.io and other platforms use Phonegap as help in this process but I'm curious how developers think a Javafx jdk8 building platform should do the same. Thanks in advance Mike Tallent CEO Objectwheel From tbee at tbee.org Mon Dec 30 01:50:23 2013 From: tbee at tbee.org (Tom Eugelink) Date: Mon, 30 Dec 2013 10:50:23 +0100 Subject: Performance-limiting characteristics of Nodes In-Reply-To: References: Message-ID: <52C141DF.7080000@tbee.org> I also watched Gerrits presentation, and he put a lot of emphasis on the difference between drawing using nodes and drawing using CSS. One of the examples was one of his famous gauges, where he used a number of gradients to draw the background. His initial approach was one-node-per-gradient, so a node for the background, one for the upper shadow, one for the lower, etc. This resulted in a lot of nodes and he says the Pi has a maximum of about 120 nodes. Now, these background nodes (and all others that make up the dial) are static nodes, they do not easily go dirty. So I'm not sure that that is the problem Gerrit experienced. That said, the other approach where he tries to do as much in one node as possible, using CSS, insets and multiple backgrounds/fills seems like a much clear implementation. So there are other advantages as well. But never the less it would be interesting to see what the performance issue really is, given your statement. Tom On 2013-12-30 1:50, Jasper Potts wrote: > My experience was it is not the number of Nodes. It's the number of Nodes that are changed/dirty in a single frame. So having a scene with 500 nodes may take a couple of seconds to render first time but then you can animate a couple of those nodes at 60fps if you done make too big a area dirty. > > Performance issues are one of two things too much SceneGraph work or too much Graphics card work. You can use pulse logger to determine which issue you are having. > > Jasper > >> On Dec 29, 2013, at 3:15 PM, Felix Bembrick wrote: >> >> I just watched the excellent presentation by Gerrit Grunwald "Use the force >> Luke" on Parleys and in it he mentions that one of the key ways to improve >> performance is to limit the number of nodes in the scenegraph. He also >> mentions that on such devices as the Raspberry Pi the maximum number of >> nodes viable before performance degrades significantly is very, very >> limited. Further, he then goes on to demonstrate that the equivalent >> visual appearance can be achieved by other means such as CSS, Canvas etc. >> where the number of nodes is much less. >> >> The implication here is that there is a performance-limiting effect of >> Nodes. If the device's GPU is capable of rendering certain graphics >> primitives, effects, transitions etc. and JavaFX is capable of "making them >> happen" by one way or another, I am curious as to why the simple presence >> of Nodes limits performance so significantly. >> >> The obvious conclusion is that Nodes use memory and perhaps the associated >> overhead is the cause but given that we are largely talking about GPU based >> processing I find it hard to believe that it's as simple as this. >> >> So what is it about the nature of Nodes that causes them to have such a >> limiting effect on performance? >> >> Cheers, >> >> Felix From felix.bembrick at gmail.com Mon Dec 30 02:01:40 2013 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Mon, 30 Dec 2013 21:01:40 +1100 Subject: Performance-limiting characteristics of Nodes In-Reply-To: <52C141DF.7080000@tbee.org> References: <52C141DF.7080000@tbee.org> Message-ID: Yes Tom, I also came to the conclusion that most of the nodes in those (awesome) gauges are largely static and would rarely, if ever, become "dirty" so the inference that it's excessive work on the scenegraph would seem unlikely as the cause of the performance degradation. It does look to me that there is some inherent impact on performance associated simply with having more nodes. I hope Richard or someone with intimate knowledge of the innards of JavaFX rendering could chime in here... On 30 December 2013 20:50, Tom Eugelink wrote: > > I also watched Gerrits presentation, and he put a lot of emphasis on the > difference between drawing using nodes and drawing using CSS. One of the > examples was one of his famous gauges, where he used a number of gradients > to draw the background. His initial approach was one-node-per-gradient, so > a node for the background, one for the upper shadow, one for the lower, > etc. This resulted in a lot of nodes and he says the Pi has a maximum of > about 120 nodes. Now, these background nodes (and all others that make up > the dial) are static nodes, they do not easily go dirty. So I'm not sure > that that is the problem Gerrit experienced. > > That said, the other approach where he tries to do as much in one node as > possible, using CSS, insets and multiple backgrounds/fills seems like a > much clear implementation. So there are other advantages as well. But never > the less it would be interesting to see what the performance issue really > is, given your statement. > > Tom > > > > > On 2013-12-30 1:50, Jasper Potts wrote: > >> My experience was it is not the number of Nodes. It's the number of Nodes >> that are changed/dirty in a single frame. So having a scene with 500 nodes >> may take a couple of seconds to render first time but then you can animate >> a couple of those nodes at 60fps if you done make too big a area dirty. >> >> Performance issues are one of two things too much SceneGraph work or too >> much Graphics card work. You can use pulse logger to determine which issue >> you are having. >> >> Jasper >> >> On Dec 29, 2013, at 3:15 PM, Felix Bembrick >>> wrote: >>> >>> I just watched the excellent presentation by Gerrit Grunwald "Use the >>> force >>> Luke" on Parleys and in it he mentions that one of the key ways to >>> improve >>> performance is to limit the number of nodes in the scenegraph. He also >>> mentions that on such devices as the Raspberry Pi the maximum number of >>> nodes viable before performance degrades significantly is very, very >>> limited. Further, he then goes on to demonstrate that the equivalent >>> visual appearance can be achieved by other means such as CSS, Canvas etc. >>> where the number of nodes is much less. >>> >>> The implication here is that there is a performance-limiting effect of >>> Nodes. If the device's GPU is capable of rendering certain graphics >>> primitives, effects, transitions etc. and JavaFX is capable of "making >>> them >>> happen" by one way or another, I am curious as to why the simple presence >>> of Nodes limits performance so significantly. >>> >>> The obvious conclusion is that Nodes use memory and perhaps the >>> associated >>> overhead is the cause but given that we are largely talking about GPU >>> based >>> processing I find it hard to believe that it's as simple as this. >>> >>> So what is it about the nature of Nodes that causes them to have such a >>> limiting effect on performance? >>> >>> Cheers, >>> >>> Felix >>> >> > > From han.solo at muenster.de Mon Dec 30 03:09:11 2013 From: han.solo at muenster.de (Gerrit Grunwald) Date: Mon, 30 Dec 2013 12:09:11 +0100 Subject: Performance-limiting characteristics of Nodes In-Reply-To: References: <52C141DF.7080000@tbee.org> Message-ID: <8C9023CE-180F-4CD0-BF6A-1F0E27A1EBB9@muenster.de> I'm pretty sure that one performance drawback in these gauges is related to constantly removing and re-adding nodes to the scenegraph in the layoutChildren method. This might be the reason why even static drawing code will be handled even if it was not necessary. One reason why in the Enzo controls I add nodes only once to the scenegraph and from that point on only modify the nodes. On the Pi I think one reason for performance problems might be (not sure) that paths are rastered by the cpu and because I use a lot of paths and the cpu is not that powerful it leads to performance decrease when using lots of nodes containing paths but that's more a guess... Cheers, Gerrit mail han.solo at muenster.de web harmonic-code.org twitter hansolo_ > Am 30.12.2013 um 11:01 schrieb Felix Bembrick : > > Yes Tom, I also came to the conclusion that most of the nodes in those > (awesome) gauges are largely static and would rarely, if ever, become > "dirty" so the inference that it's excessive work on the scenegraph would > seem unlikely as the cause of the performance degradation. > > It does look to me that there is some inherent impact on performance > associated simply with having more nodes. I hope Richard or someone with > intimate knowledge of the innards of JavaFX rendering could chime in here... > > >> On 30 December 2013 20:50, Tom Eugelink wrote: >> >> >> I also watched Gerrits presentation, and he put a lot of emphasis on the >> difference between drawing using nodes and drawing using CSS. One of the >> examples was one of his famous gauges, where he used a number of gradients >> to draw the background. His initial approach was one-node-per-gradient, so >> a node for the background, one for the upper shadow, one for the lower, >> etc. This resulted in a lot of nodes and he says the Pi has a maximum of >> about 120 nodes. Now, these background nodes (and all others that make up >> the dial) are static nodes, they do not easily go dirty. So I'm not sure >> that that is the problem Gerrit experienced. >> >> That said, the other approach where he tries to do as much in one node as >> possible, using CSS, insets and multiple backgrounds/fills seems like a >> much clear implementation. So there are other advantages as well. But never >> the less it would be interesting to see what the performance issue really >> is, given your statement. >> >> Tom >> >> >> >> >>> On 2013-12-30 1:50, Jasper Potts wrote: >>> >>> My experience was it is not the number of Nodes. It's the number of Nodes >>> that are changed/dirty in a single frame. So having a scene with 500 nodes >>> may take a couple of seconds to render first time but then you can animate >>> a couple of those nodes at 60fps if you done make too big a area dirty. >>> >>> Performance issues are one of two things too much SceneGraph work or too >>> much Graphics card work. You can use pulse logger to determine which issue >>> you are having. >>> >>> Jasper >>> >>> On Dec 29, 2013, at 3:15 PM, Felix Bembrick >>>> wrote: >>>> >>>> I just watched the excellent presentation by Gerrit Grunwald "Use the >>>> force >>>> Luke" on Parleys and in it he mentions that one of the key ways to >>>> improve >>>> performance is to limit the number of nodes in the scenegraph. He also >>>> mentions that on such devices as the Raspberry Pi the maximum number of >>>> nodes viable before performance degrades significantly is very, very >>>> limited. Further, he then goes on to demonstrate that the equivalent >>>> visual appearance can be achieved by other means such as CSS, Canvas etc. >>>> where the number of nodes is much less. >>>> >>>> The implication here is that there is a performance-limiting effect of >>>> Nodes. If the device's GPU is capable of rendering certain graphics >>>> primitives, effects, transitions etc. and JavaFX is capable of "making >>>> them >>>> happen" by one way or another, I am curious as to why the simple presence >>>> of Nodes limits performance so significantly. >>>> >>>> The obvious conclusion is that Nodes use memory and perhaps the >>>> associated >>>> overhead is the cause but given that we are largely talking about GPU >>>> based >>>> processing I find it hard to believe that it's as simple as this. >>>> >>>> So what is it about the nature of Nodes that causes them to have such a >>>> limiting effect on performance? >>>> >>>> Cheers, >>>> >>>> Felix >> >> From tbee at tbee.org Mon Dec 30 03:39:15 2013 From: tbee at tbee.org (Tom Eugelink) Date: Mon, 30 Dec 2013 12:39:15 +0100 Subject: Performance-limiting characteristics of Nodes In-Reply-To: <8C9023CE-180F-4CD0-BF6A-1F0E27A1EBB9@muenster.de> References: <52C141DF.7080000@tbee.org> <8C9023CE-180F-4CD0-BF6A-1F0E27A1EBB9@muenster.de> Message-ID: <52C15B63.2000309@tbee.org> "removing and re-adding nodes to the scenegraph", yeah, sounds like a good suspect. I just got offered a commercial JavaFX project (which I ended up not doing because of all my other work) where the client said that they tried doing it themselves, but had all kinds of architectural issues they needed me to solve. Personally I experienced something similar Gerrit explains here when trying to write my Agenda control, it appears the first time you do JavaFX you'll be doing it wrong. Even though the learning curve is much less than Swing's, there still is one. It may be a good idea to get some "best practices" going. Tom On 2013-12-30 12:09, Gerrit Grunwald wrote: > I'm pretty sure that one performance drawback in these gauges is related to constantly removing and re-adding nodes to the scenegraph in the layoutChildren method. This might be the reason why even static drawing code will be handled even if it was not necessary. One reason why in the Enzo controls I add nodes only once to the scenegraph and from that point on only modify the nodes. > On the Pi I think one reason for performance problems might be (not sure) that paths are rastered by the cpu and because I use a lot of paths and the cpu is not that powerful it leads to performance decrease when using lots of nodes containing paths but that's more a guess... > > Cheers, > > Gerrit > > mail han.solo at muenster.de > web harmonic-code.org > twitter hansolo_ > >> Am 30.12.2013 um 11:01 schrieb Felix Bembrick : >> >> Yes Tom, I also came to the conclusion that most of the nodes in those >> (awesome) gauges are largely static and would rarely, if ever, become >> "dirty" so the inference that it's excessive work on the scenegraph would >> seem unlikely as the cause of the performance degradation. >> >> It does look to me that there is some inherent impact on performance >> associated simply with having more nodes. I hope Richard or someone with >> intimate knowledge of the innards of JavaFX rendering could chime in here... >> >> >>> On 30 December 2013 20:50, Tom Eugelink wrote: >>> >>> >>> I also watched Gerrits presentation, and he put a lot of emphasis on the >>> difference between drawing using nodes and drawing using CSS. One of the >>> examples was one of his famous gauges, where he used a number of gradients >>> to draw the background. His initial approach was one-node-per-gradient, so >>> a node for the background, one for the upper shadow, one for the lower, >>> etc. This resulted in a lot of nodes and he says the Pi has a maximum of >>> about 120 nodes. Now, these background nodes (and all others that make up >>> the dial) are static nodes, they do not easily go dirty. So I'm not sure >>> that that is the problem Gerrit experienced. >>> >>> That said, the other approach where he tries to do as much in one node as >>> possible, using CSS, insets and multiple backgrounds/fills seems like a >>> much clear implementation. So there are other advantages as well. But never >>> the less it would be interesting to see what the performance issue really >>> is, given your statement. >>> >>> Tom >>> >>> >>> >>> >>>> On 2013-12-30 1:50, Jasper Potts wrote: >>>> >>>> My experience was it is not the number of Nodes. It's the number of Nodes >>>> that are changed/dirty in a single frame. So having a scene with 500 nodes >>>> may take a couple of seconds to render first time but then you can animate >>>> a couple of those nodes at 60fps if you done make too big a area dirty. >>>> >>>> Performance issues are one of two things too much SceneGraph work or too >>>> much Graphics card work. You can use pulse logger to determine which issue >>>> you are having. >>>> >>>> Jasper >>>> >>>> On Dec 29, 2013, at 3:15 PM, Felix Bembrick >>>>> wrote: >>>>> >>>>> I just watched the excellent presentation by Gerrit Grunwald "Use the >>>>> force >>>>> Luke" on Parleys and in it he mentions that one of the key ways to >>>>> improve >>>>> performance is to limit the number of nodes in the scenegraph. He also >>>>> mentions that on such devices as the Raspberry Pi the maximum number of >>>>> nodes viable before performance degrades significantly is very, very >>>>> limited. Further, he then goes on to demonstrate that the equivalent >>>>> visual appearance can be achieved by other means such as CSS, Canvas etc. >>>>> where the number of nodes is much less. >>>>> >>>>> The implication here is that there is a performance-limiting effect of >>>>> Nodes. If the device's GPU is capable of rendering certain graphics >>>>> primitives, effects, transitions etc. and JavaFX is capable of "making >>>>> them >>>>> happen" by one way or another, I am curious as to why the simple presence >>>>> of Nodes limits performance so significantly. >>>>> >>>>> The obvious conclusion is that Nodes use memory and perhaps the >>>>> associated >>>>> overhead is the cause but given that we are largely talking about GPU >>>>> based >>>>> processing I find it hard to believe that it's as simple as this. >>>>> >>>>> So what is it about the nature of Nodes that causes them to have such a >>>>> limiting effect on performance? >>>>> >>>>> Cheers, >>>>> >>>>> Felix >>> From jasper.potts at oracle.com Mon Dec 30 10:48:18 2013 From: jasper.potts at oracle.com (Jasper Potts) Date: Mon, 30 Dec 2013 10:48:18 -0800 Subject: Performance-limiting characteristics of Nodes In-Reply-To: <52C15B63.2000309@tbee.org> References: <52C141DF.7080000@tbee.org> <8C9023CE-180F-4CD0-BF6A-1F0E27A1EBB9@muenster.de> <52C15B63.2000309@tbee.org> Message-ID: Removing/Adding nodes has a high cost. So doing that in a animation or any performance important area is not a good idea. I have gone to lengths to hide the node creation with apps I have built. Using small number of nodes with most drawing done with css can be good practice. But CSS can be expensive so if it changes often then might be better using code and Region API. Path performance is bad on Pi for two reasons. 1) CPU is week so takes a while to compute mask pixels 2) the bus is slow between GPU and CPU. So changing paths is bad but drawing a static path many times should be fine. The Pi has special performance characteristics that are unique because of very slow CPU and data bus but really fast GPU. By the numbers it's GPU is as fast as Intel HD found in most corporate laptops. But the CPU is slower than a Pentium II. That means performance tuning for Pi may not give same results on other devices. For example Beagle Board is quite different as CPU is almost 2x Pi but GPU power is more in live with CPU and much slower than Pi. Jasper > On Dec 30, 2013, at 3:39 AM, Tom Eugelink wrote: > > > "removing and re-adding nodes to the scenegraph", yeah, sounds like a good suspect. > > I just got offered a commercial JavaFX project (which I ended up not doing because of all my other work) where the client said that they tried doing it themselves, but had all kinds of architectural issues they needed me to solve. Personally I experienced something similar Gerrit explains here when trying to write my Agenda control, it appears the first time you do JavaFX you'll be doing it wrong. Even though the learning curve is much less than Swing's, there still is one. It may be a good idea to get some "best practices" going. > > Tom > > >> On 2013-12-30 12:09, Gerrit Grunwald wrote: >> I'm pretty sure that one performance drawback in these gauges is related to constantly removing and re-adding nodes to the scenegraph in the layoutChildren method. This might be the reason why even static drawing code will be handled even if it was not necessary. One reason why in the Enzo controls I add nodes only once to the scenegraph and from that point on only modify the nodes. >> On the Pi I think one reason for performance problems might be (not sure) that paths are rastered by the cpu and because I use a lot of paths and the cpu is not that powerful it leads to performance decrease when using lots of nodes containing paths but that's more a guess... >> >> Cheers, >> >> Gerrit >> >> mail han.solo at muenster.de >> web harmonic-code.org >> twitter hansolo_ >> >>> Am 30.12.2013 um 11:01 schrieb Felix Bembrick : >>> >>> Yes Tom, I also came to the conclusion that most of the nodes in those >>> (awesome) gauges are largely static and would rarely, if ever, become >>> "dirty" so the inference that it's excessive work on the scenegraph would >>> seem unlikely as the cause of the performance degradation. >>> >>> It does look to me that there is some inherent impact on performance >>> associated simply with having more nodes. I hope Richard or someone with >>> intimate knowledge of the innards of JavaFX rendering could chime in here... >>> >>> >>>> On 30 December 2013 20:50, Tom Eugelink wrote: >>>> >>>> >>>> I also watched Gerrits presentation, and he put a lot of emphasis on the >>>> difference between drawing using nodes and drawing using CSS. One of the >>>> examples was one of his famous gauges, where he used a number of gradients >>>> to draw the background. His initial approach was one-node-per-gradient, so >>>> a node for the background, one for the upper shadow, one for the lower, >>>> etc. This resulted in a lot of nodes and he says the Pi has a maximum of >>>> about 120 nodes. Now, these background nodes (and all others that make up >>>> the dial) are static nodes, they do not easily go dirty. So I'm not sure >>>> that that is the problem Gerrit experienced. >>>> >>>> That said, the other approach where he tries to do as much in one node as >>>> possible, using CSS, insets and multiple backgrounds/fills seems like a >>>> much clear implementation. So there are other advantages as well. But never >>>> the less it would be interesting to see what the performance issue really >>>> is, given your statement. >>>> >>>> Tom >>>> >>>> >>>> >>>> >>>>> On 2013-12-30 1:50, Jasper Potts wrote: >>>>> >>>>> My experience was it is not the number of Nodes. It's the number of Nodes >>>>> that are changed/dirty in a single frame. So having a scene with 500 nodes >>>>> may take a couple of seconds to render first time but then you can animate >>>>> a couple of those nodes at 60fps if you done make too big a area dirty. >>>>> >>>>> Performance issues are one of two things too much SceneGraph work or too >>>>> much Graphics card work. You can use pulse logger to determine which issue >>>>> you are having. >>>>> >>>>> Jasper >>>>> >>>>> On Dec 29, 2013, at 3:15 PM, Felix Bembrick >>>>>> wrote: >>>>>> >>>>>> I just watched the excellent presentation by Gerrit Grunwald "Use the >>>>>> force >>>>>> Luke" on Parleys and in it he mentions that one of the key ways to >>>>>> improve >>>>>> performance is to limit the number of nodes in the scenegraph. He also >>>>>> mentions that on such devices as the Raspberry Pi the maximum number of >>>>>> nodes viable before performance degrades significantly is very, very >>>>>> limited. Further, he then goes on to demonstrate that the equivalent >>>>>> visual appearance can be achieved by other means such as CSS, Canvas etc. >>>>>> where the number of nodes is much less. >>>>>> >>>>>> The implication here is that there is a performance-limiting effect of >>>>>> Nodes. If the device's GPU is capable of rendering certain graphics >>>>>> primitives, effects, transitions etc. and JavaFX is capable of "making >>>>>> them >>>>>> happen" by one way or another, I am curious as to why the simple presence >>>>>> of Nodes limits performance so significantly. >>>>>> >>>>>> The obvious conclusion is that Nodes use memory and perhaps the >>>>>> associated >>>>>> overhead is the cause but given that we are largely talking about GPU >>>>>> based >>>>>> processing I find it hard to believe that it's as simple as this. >>>>>> >>>>>> So what is it about the nature of Nodes that causes them to have such a >>>>>> limiting effect on performance? >>>>>> >>>>>> Cheers, >>>>>> >>>>>> Felix > > From han.solo at muenster.de Mon Dec 30 11:16:41 2013 From: han.solo at muenster.de (Gerrit Grunwald) Date: Mon, 30 Dec 2013 20:16:41 +0100 Subject: Performance-limiting characteristics of Nodes In-Reply-To: References: <52C141DF.7080000@tbee.org> <8C9023CE-180F-4CD0-BF6A-1F0E27A1EBB9@muenster.de> <52C15B63.2000309@tbee.org> Message-ID: yep that's exactly what I figured out too...Pi needs some special treatment and optimized for Pi doesn't mean optimized for embedded in general cause Beagleboard really showed different behavior. Cheers, Gerrit > Am 30.12.2013 um 19:48 schrieb Jasper Potts : > > Removing/Adding nodes has a high cost. So doing that in a animation or any performance important area is not a good idea. I have gone to lengths to hide the node creation with apps I have built. > > Using small number of nodes with most drawing done with css can be good practice. But CSS can be expensive so if it changes often then might be better using code and Region API. > > Path performance is bad on Pi for two reasons. 1) CPU is week so takes a while to compute mask pixels 2) the bus is slow between GPU and CPU. So changing paths is bad but drawing a static path many times should be fine. > > The Pi has special performance characteristics that are unique because of very slow CPU and data bus but really fast GPU. By the numbers it's GPU is as fast as Intel HD found in most corporate laptops. But the CPU is slower than a Pentium II. > > That means performance tuning for Pi may not give same results on other devices. For example Beagle Board is quite different as CPU is almost 2x Pi but GPU power is more in live with CPU and much slower than Pi. > > Jasper > > > >> On Dec 30, 2013, at 3:39 AM, Tom Eugelink wrote: >> >> >> "removing and re-adding nodes to the scenegraph", yeah, sounds like a good suspect. >> >> I just got offered a commercial JavaFX project (which I ended up not doing because of all my other work) where the client said that they tried doing it themselves, but had all kinds of architectural issues they needed me to solve. Personally I experienced something similar Gerrit explains here when trying to write my Agenda control, it appears the first time you do JavaFX you'll be doing it wrong. Even though the learning curve is much less than Swing's, there still is one. It may be a good idea to get some "best practices" going. >> >> Tom >> >> >>> On 2013-12-30 12:09, Gerrit Grunwald wrote: >>> I'm pretty sure that one performance drawback in these gauges is related to constantly removing and re-adding nodes to the scenegraph in the layoutChildren method. This might be the reason why even static drawing code will be handled even if it was not necessary. One reason why in the Enzo controls I add nodes only once to the scenegraph and from that point on only modify the nodes. >>> On the Pi I think one reason for performance problems might be (not sure) that paths are rastered by the cpu and because I use a lot of paths and the cpu is not that powerful it leads to performance decrease when using lots of nodes containing paths but that's more a guess... >>> >>> Cheers, >>> >>> Gerrit >>> >>> mail han.solo at muenster.de >>> web harmonic-code.org >>> twitter hansolo_ >>> >>>> Am 30.12.2013 um 11:01 schrieb Felix Bembrick : >>>> >>>> Yes Tom, I also came to the conclusion that most of the nodes in those >>>> (awesome) gauges are largely static and would rarely, if ever, become >>>> "dirty" so the inference that it's excessive work on the scenegraph would >>>> seem unlikely as the cause of the performance degradation. >>>> >>>> It does look to me that there is some inherent impact on performance >>>> associated simply with having more nodes. I hope Richard or someone with >>>> intimate knowledge of the innards of JavaFX rendering could chime in here... >>>> >>>> >>>>> On 30 December 2013 20:50, Tom Eugelink wrote: >>>>> >>>>> >>>>> I also watched Gerrits presentation, and he put a lot of emphasis on the >>>>> difference between drawing using nodes and drawing using CSS. One of the >>>>> examples was one of his famous gauges, where he used a number of gradients >>>>> to draw the background. His initial approach was one-node-per-gradient, so >>>>> a node for the background, one for the upper shadow, one for the lower, >>>>> etc. This resulted in a lot of nodes and he says the Pi has a maximum of >>>>> about 120 nodes. Now, these background nodes (and all others that make up >>>>> the dial) are static nodes, they do not easily go dirty. So I'm not sure >>>>> that that is the problem Gerrit experienced. >>>>> >>>>> That said, the other approach where he tries to do as much in one node as >>>>> possible, using CSS, insets and multiple backgrounds/fills seems like a >>>>> much clear implementation. So there are other advantages as well. But never >>>>> the less it would be interesting to see what the performance issue really >>>>> is, given your statement. >>>>> >>>>> Tom >>>>> >>>>> >>>>> >>>>> >>>>>> On 2013-12-30 1:50, Jasper Potts wrote: >>>>>> >>>>>> My experience was it is not the number of Nodes. It's the number of Nodes >>>>>> that are changed/dirty in a single frame. So having a scene with 500 nodes >>>>>> may take a couple of seconds to render first time but then you can animate >>>>>> a couple of those nodes at 60fps if you done make too big a area dirty. >>>>>> >>>>>> Performance issues are one of two things too much SceneGraph work or too >>>>>> much Graphics card work. You can use pulse logger to determine which issue >>>>>> you are having. >>>>>> >>>>>> Jasper >>>>>> >>>>>> On Dec 29, 2013, at 3:15 PM, Felix Bembrick >>>>>>> wrote: >>>>>>> >>>>>>> I just watched the excellent presentation by Gerrit Grunwald "Use the >>>>>>> force >>>>>>> Luke" on Parleys and in it he mentions that one of the key ways to >>>>>>> improve >>>>>>> performance is to limit the number of nodes in the scenegraph. He also >>>>>>> mentions that on such devices as the Raspberry Pi the maximum number of >>>>>>> nodes viable before performance degrades significantly is very, very >>>>>>> limited. Further, he then goes on to demonstrate that the equivalent >>>>>>> visual appearance can be achieved by other means such as CSS, Canvas etc. >>>>>>> where the number of nodes is much less. >>>>>>> >>>>>>> The implication here is that there is a performance-limiting effect of >>>>>>> Nodes. If the device's GPU is capable of rendering certain graphics >>>>>>> primitives, effects, transitions etc. and JavaFX is capable of "making >>>>>>> them >>>>>>> happen" by one way or another, I am curious as to why the simple presence >>>>>>> of Nodes limits performance so significantly. >>>>>>> >>>>>>> The obvious conclusion is that Nodes use memory and perhaps the >>>>>>> associated >>>>>>> overhead is the cause but given that we are largely talking about GPU >>>>>>> based >>>>>>> processing I find it hard to believe that it's as simple as this. >>>>>>> >>>>>>> So what is it about the nature of Nodes that causes them to have such a >>>>>>> limiting effect on performance? >>>>>>> >>>>>>> Cheers, >>>>>>> >>>>>>> Felix >> >> From niklas at therning.org Mon Dec 30 23:04:33 2013 From: niklas at therning.org (Niklas Therning) Date: Tue, 31 Dec 2013 08:04:33 +0100 Subject: IPA / APK Internal In-Reply-To: References: Message-ID: For IPA generation with RoboVM it's pretty simple since the compiler can be easily embedded and run programmatically from within Java. Please have a look at the RoboVM Maven plugin for a sample on how this is done: https://github.com/robovm/robovm-maven-plugin On Mon, Dec 30, 2013 at 9:27 AM, Mike wrote: > I know this is a difficult question, but who can give us some advice on > what > to study up on regarding APK / IPA Generation and a RAD tool for Javafx > built on JDK8 > > I'm laying the ground work for doing this and I'm not certain the best > tools > to use from inside a Rad tool to help developers build such file types. > > We plan on having an APP that runs (dashboards) (templates) built > from within a RAD tool on a desktop but this doesn't allow developers > to make their own APK and IPA's > > I'm familiar with out Appery.io and other platforms use Phonegap as help in > this process > but I'm curious how developers think a Javafx jdk8 building platform should > do the same. > > Thanks in advance > Mike Tallent > CEO > Objectwheel > From johan at lodgon.com Tue Dec 31 00:47:53 2013 From: johan at lodgon.com (Johan Vos) Date: Tue, 31 Dec 2013 09:47:53 +0100 Subject: Android port status In-Reply-To: <52B4B65F.4020605@oracle.com> References: <52B4B65F.4020605@oracle.com> Message-ID: Steve, The main issue is currently getting bootstrapped. If we want to build the Dalvik-runtime using open-jfx, we need a location on where to put the dalvik files. This is what I tried to describe in https://javafx-jira.kenai.com/browse/RT-35123 Please note that we're not really doing an Android port, but a Dalvik port. The (excellent) work done by Oracle in the past allowed for both using Dalvik as well as an Oracle-internal VM. There are no indications that the latter is ever going to fly, so I don't want to have an abstraction on top of {Dalvik, OracleVM} if only the first one exists. I do hope there will be other VM's (Oracle VM and more) later, as that will make it easier to have Java 8 and so on, but right now we have to stick with what we have (dalvik). Without these files, we can supply patches for existing files in open-jfx, but by no means we can build the runtime. I do understand it is not trivial to "add" a directory for the sake of a port, but then, a port is not trivial as well. I'm open to all suggestions. The longer we wait, however, with synchronizing the bitbucket repo with the open-jfx repo, the harder it gets. Right now, I have no other option than committing all changes in the bitbucket repo, as I need to be able to build a runtime. We had 419 downloads of the runtime in 10 days, so clearly there are people interested in this. - Johan 2013/12/20 Stephen F Northover > Hi Johan, > > This is very good news. We need to work together so that you are able to > run OpenJFX unmodified. This may not be practical for all sorts of > reasons, but we need to seriously explore this and work towards this goal. > Please open JIRA for the various problems you are seeing and we can try to > deal with them there and on this list. > > Thanks, > Steve > > > On 2013-12-20 12:56 PM, Johan Vos wrote: > >> Hi, >> >> As you might know, 2 months ago I started a community effort for "porting" >> JavaFX to Android. Today, we released build 3 of the JavaFX Android >> runtime, which can be downloaded at >> https://bitbucket.org/javafxports/android/downloads/dalvik-sdk-b3.zipwith >> instructions on how to build applications at >> https://bitbucket.org/javafxports/android/wiki/ >> Building%20and%20deploying%20JavaFX%20Applications >> >> Building the runtime itself is explained at >> https://bitbucket.org/javafxports/android/wiki/Building%20the%20JavaFX% >> 20Android%20Runtime >> >> At this moment, most of the Ensemble suite runs on Android (positive >> reports starting with Android 3.x). >> >> The downloadable runtime is created using the bitbucket project at >> https://bitbucket.org/javafxports/android-graphics-rt which is a fork of >> the openjfx-graphics-rt mirror on bitbucket. We merge often, so all >> changes >> made in openjfx-graphics should be in the Android runtime as well. >> >> There are a number of issues left: >> * touch map issues causing applications to crash if "touched too much". I >> created a JIRA ticket for this and will create another one (related, but >> not same cause) later. >> * Java 7 only. Currently, applications cannot make use of Java 8 features. >> Dalvik has no invokedynamic, so we can't do lambda's. >> * we just started, so there will be plenty of other bugs. >> >> We are also spending efforts in documentation and community interaction. >> The google group javafxandroid has a pretty active mailinglist. Build 2 of >> the runtime has been downloaded 291 times in 2 weeks, and build 3 has been >> downloaded 60 times since it was released a couple of hours ago. So there >> is definitely community interest and involvement. >> Clearly, there is involvement from Oracle as well. Most of the effort so >> far has been done by Tomas Brandalik and the Prague team. I was positively >> surprised to see the amount of native code that was already available for >> Android. >> >> After a few discussions, it has been agreed that we should try to >> synchronize as much as possible with the OpenJFX repositories, without >> jeopardizing the stability and performance of the main ports, and without >> running into legal trouble. >> >> I will run a diff on the current code versus the OpenJFX code, and I will >> try to create issues with patches for sending the changes back to OpenJFX. >> Not all changes can go back to OpenJFX. We had to add a number of classes >> that are missing on Dalvik and that are used by OpenJFX, and clearly we >> can't commit those in OpenJFX. >> >> We had to make a number of changes to JavaFX files as well, in order to >> make them compile with JDK 1.7. Most of these were about removing Function >> and adding implementations for the default interface methods on >> ObservableList. >> I have no clear opinion on how these changed files could somehow be used >> from within OpenJFX, but I'm very open to suggestions. >> >> Finally, keep in mind that this is a community effort. Nobody is paying >> for >> this, and it is done in our spare time. I'm doing my best to move forward >> as soon as I can, but I have other things to work on as well of course. >> However, the collaboration between the Java community and Oracle (mainly >> Tomas) has been great so far. It is in the interest of anyone working on >> or >> with Java to show the world that JavaFX runs on Android devices. >> >> - Johan >> > > From hang.vo at oracle.com Tue Dec 31 08:02:30 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 31 Dec 2013 16:02:30 +0000 Subject: hg: openjfx/8u-dev/rt: [TEST] Disable failing unit test until RT-34508 is fixed Message-ID: <20131231160604.A797762FA4@hg.openjdk.java.net> Changeset: 99d6740e7efd Author: kcr Date: 2013-12-31 07:53 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/99d6740e7efd [TEST] Disable failing unit test until RT-34508 is fixed ! modules/web/src/test/java/javafx/scene/web/CallbackTest.java From steve.x.northover at oracle.com Tue Dec 31 10:04:07 2013 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Tue, 31 Dec 2013 13:04:07 -0500 Subject: Android port status In-Reply-To: References: <52B4B65F.4020605@oracle.com> Message-ID: <52C30717.9030000@oracle.com> Hi Johan, Have you signed the OCA (Oracle Contributor Agreement)? Ok, let's bootstrap your port and merge it with the existing code after we are up and running. I can see what looks like useful code in the "android" directory and we can either copy it over or merge your code in at a later time. Let's continue this discussion in the JIRA. https://javafx-jira.kenai.com/browse/RT-35123 Steve On 2013-12-31 3:47 AM, Johan Vos wrote: > Steve, > > The main issue is currently getting bootstrapped. If we want to build > the Dalvik-runtime using open-jfx, we need a location on where to put > the dalvik files. This is what I tried to describe in > https://javafx-jira.kenai.com/browse/RT-35123 > > Please note that we're not really doing an Android port, but a Dalvik > port. The (excellent) work done by Oracle in the past allowed for both > using Dalvik as well as an Oracle-internal VM. There are no > indications that the latter is ever going to fly, so I don't want to > have an abstraction on top of {Dalvik, OracleVM} if only the first one > exists. I do hope there will be other VM's (Oracle VM and more) later, > as that will make it easier to have Java 8 and so on, but right now we > have to stick with what we have (dalvik). > > Without these files, we can supply patches for existing files in > open-jfx, but by no means we can build the runtime. I do understand it > is not trivial to "add" a directory for the sake of a port, but then, > a port is not trivial as well. I'm open to all suggestions. > The longer we wait, however, with synchronizing the bitbucket repo > with the open-jfx repo, the harder it gets. Right now, I have no other > option than committing all changes in the bitbucket repo, as I need to > be able to build a runtime. We had 419 downloads of the runtime in 10 > days, so clearly there are people interested in this. > > - Johan > > > 2013/12/20 Stephen F Northover > > > Hi Johan, > > This is very good news. We need to work together so that you are > able to run OpenJFX unmodified. This may not be practical for all > sorts of reasons, but we need to seriously explore this and work > towards this goal. Please open JIRA for the various problems you > are seeing and we can try to deal with them there and on this list. > > Thanks, > Steve > > > On 2013-12-20 12:56 PM, Johan Vos wrote: > > Hi, > > As you might know, 2 months ago I started a community effort > for "porting" > JavaFX to Android. Today, we released build 3 of the JavaFX > Android > runtime, which can be downloaded at > https://bitbucket.org/javafxports/android/downloads/dalvik-sdk-b3.zip > with > instructions on how to build applications at > https://bitbucket.org/javafxports/android/wiki/Building%20and%20deploying%20JavaFX%20Applications > > Building the runtime itself is explained at > https://bitbucket.org/javafxports/android/wiki/Building%20the%20JavaFX%20Android%20Runtime > > At this moment, most of the Ensemble suite runs on Android > (positive > reports starting with Android 3.x). > > The downloadable runtime is created using the bitbucket project at > https://bitbucket.org/javafxports/android-graphics-rt which is > a fork of > the openjfx-graphics-rt mirror on bitbucket. We merge often, > so all changes > made in openjfx-graphics should be in the Android runtime as well. > > There are a number of issues left: > * touch map issues causing applications to crash if "touched > too much". I > created a JIRA ticket for this and will create another one > (related, but > not same cause) later. > * Java 7 only. Currently, applications cannot make use of Java > 8 features. > Dalvik has no invokedynamic, so we can't do lambda's. > * we just started, so there will be plenty of other bugs. > > We are also spending efforts in documentation and community > interaction. > The google group javafxandroid has a pretty active > mailinglist. Build 2 of > the runtime has been downloaded 291 times in 2 weeks, and > build 3 has been > downloaded 60 times since it was released a couple of hours > ago. So there > is definitely community interest and involvement. > Clearly, there is involvement from Oracle as well. Most of the > effort so > far has been done by Tomas Brandalik and the Prague team. I > was positively > surprised to see the amount of native code that was already > available for > Android. > > After a few discussions, it has been agreed that we should try to > synchronize as much as possible with the OpenJFX repositories, > without > jeopardizing the stability and performance of the main ports, > and without > running into legal trouble. > > I will run a diff on the current code versus the OpenJFX code, > and I will > try to create issues with patches for sending the changes back > to OpenJFX. > Not all changes can go back to OpenJFX. We had to add a number > of classes > that are missing on Dalvik and that are used by OpenJFX, and > clearly we > can't commit those in OpenJFX. > > We had to make a number of changes to JavaFX files as well, in > order to > make them compile with JDK 1.7. Most of these were about > removing Function > and adding implementations for the default interface methods on > ObservableList. > I have no clear opinion on how these changed files could > somehow be used > from within OpenJFX, but I'm very open to suggestions. > > Finally, keep in mind that this is a community effort. Nobody > is paying for > this, and it is done in our spare time. I'm doing my best to > move forward > as soon as I can, but I have other things to work on as well > of course. > However, the collaboration between the Java community and > Oracle (mainly > Tomas) has been great so far. It is in the interest of anyone > working on or > with Java to show the world that JavaFX runs on Android devices. > > - Johan > > > From chien.yang at oracle.com Tue Dec 31 11:40:41 2013 From: chien.yang at oracle.com (Chien Yang) Date: Tue, 31 Dec 2013 11:40:41 -0800 Subject: [8u] Code Review Request - RT-32631: D3D: Need to improve OS version checking into GPU qualifying logic Message-ID: <52C31DB9.3020000@oracle.com> Hi Kevin and Vadim, Can you please review my proposed fix? http://cr.openjdk.java.net/~ckyang/RT-32631/webrev.00/ Thanks, - Chien From chien.yang at oracle.com Tue Dec 31 11:43:30 2013 From: chien.yang at oracle.com (Chien Yang) Date: Tue, 31 Dec 2013 11:43:30 -0800 Subject: [8u] Code Review Request - RT-32631: D3D: Need to improve OS version checking into GPU qualifying logic In-Reply-To: <52C31DB9.3020000@oracle.com> References: <52C31DB9.3020000@oracle.com> Message-ID: <52C31E62.3010706@oracle.com> I should have used the JIRA where link to the webrev is included: https://javafx-jira.kenai.com/browse/RT-32631 - Chien On 12/31/2013 11:40 AM, Chien Yang wrote: > Hi Kevin and Vadim, > > Can you please review my proposed fix? > > http://cr.openjdk.java.net/~ckyang/RT-32631/webrev.00/ > > Thanks, > - Chien > > From hang.vo at oracle.com Tue Dec 31 13:17:03 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 31 Dec 2013 21:17:03 +0000 Subject: hg: openjfx/8u-dev/rt: RT-35159: [TOYS] move more toys to public Message-ID: <20131231211919.9A5A162FAF@hg.openjdk.java.net> Changeset: 4a699f6d16da Author: ddhill Date: 2013-12-31 16:13 -0500 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/4a699f6d16da RT-35159: [TOYS] move more toys to public Reviewed-by: kcr + apps/toys/Hello/src/main/java/hello/HelloChoiceBox.java + apps/toys/Hello/src/main/java/hello/HelloColorPicker.java + apps/toys/Hello/src/main/java/hello/HelloComboBox.java + apps/toys/Hello/src/main/java/hello/HelloControls.java + apps/toys/Hello/src/main/java/hello/HelloFonts.java + apps/toys/Hello/src/main/java/hello/HelloHyperlink.java + apps/toys/Hello/src/main/java/hello/HelloLabel.java + apps/toys/Hello/src/main/java/hello/HelloLineChart.java ! apps/toys/Hello/src/main/java/hello/HelloMenu.java + apps/toys/Hello/src/main/java/hello/HelloPagination.java + apps/toys/Hello/src/main/java/hello/HelloRadioButton.java + apps/toys/Hello/src/main/java/hello/HelloScatterChart.java + apps/toys/Hello/src/main/java/hello/HelloSeparator.java + apps/toys/Hello/src/main/java/hello/HelloSlider.java + apps/toys/Hello/src/main/java/hello/HelloStackedAreaChart.java + apps/toys/Hello/src/main/java/hello/HelloStackedBarChart.java + apps/toys/Hello/src/main/java/hello/HelloToggleButton.java