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 >>