From herve.girod at gmail.com Mon Jul 1 02:34:02 2013 From: herve.girod at gmail.com (=?utf-8?Q?Herv=C3=A9_Girod?=) Date: Mon, 1 Jul 2013 11:34:02 +0200 Subject: Drag and touch gestures In-Reply-To: <504A6F37-222F-4804-9B08-F473BEADB61E@oracle.com> References: <53D1E74A-9F6C-4B76-A93C-941E0FD0B02D@oracle.com> <504A6F37-222F-4804-9B08-F473BEADB61E@oracle.com> Message-ID: <0F5CCD87-6D75-4BFD-8762-9C5001EAF19A@gmail.com> Hello, We tried to perform something as in iOS or Android where there is several active widgets, which can be selected by touch gestures, or dragged by drag gestures. However it seems that if we allow these two gestures on the same widget, the touch gesture takes precedence and the drag is never detected. Is there a way to allow drag AND touch gestures (for simple selections) in JavaFX ? We tried this in 2.2. Herv? From cognitionmission at gmail.com Mon Jul 1 05:21:58 2013 From: cognitionmission at gmail.com (cogmission1 .) Date: Mon, 1 Jul 2013 07:21:58 -0500 Subject: Fwd: Drag and touch gestures In-Reply-To: References: <53D1E74A-9F6C-4B76-A93C-941E0FD0B02D@oracle.com> <504A6F37-222F-4804-9B08-F473BEADB61E@oracle.com> <0F5CCD87-6D75-4BFD-8762-9C5001EAF19A@gmail.com> Message-ID: Hi, I believe I read something about this recently. I believe the solution has something to do with setting "mouse transparency" (not absolutely sure of the method name) on the widget in the touch handlers so that the underlying drag mechanism can receive the event - then setting transparency false after the drag event is complete so that touch events are once again available to the widget after the drop. Make any sense? Maybe someone more familiar can elaborate on the details, but I believe the solution is very similar to what I've described. Cheers, David On Mon, Jul 1, 2013 at 4:34 AM, Herv? Girod wrote: > Hello, > > We tried to perform something as in iOS or Android where there is several > active widgets, which can be selected by touch gestures, or dragged by drag > gestures. > > However it seems that if we allow these two gestures on the same widget, > the touch gesture takes precedence and the drag is never detected. > > Is there a way to allow drag AND touch gestures (for simple selections) in > JavaFX ? We tried this in 2.2. > > Herv? From tomas.brandalik at oracle.com Mon Jul 1 06:35:31 2013 From: tomas.brandalik at oracle.com (tomas.brandalik) Date: Mon, 01 Jul 2013 15:35:31 +0200 Subject: How to use OpenJFX for Android? In-Reply-To: <11A3B075-3D95-47A8-89F1-45D4DA67D4DF@ultramixer.com> References: <11A3B075-3D95-47A8-89F1-45D4DA67D4DF@ultramixer.com> Message-ID: <51D185A3.2060803@oracle.com> Hello, gradle build for Android is not ready yet, but we're working on it intensively. Linux will come first this week. On 06/29/2013 03:09 PM, Tobias Bley wrote: > Hi, > > we learned how to use OpenJFX with RoboVM... but how can we build an Android app with the new gradle based OpenJFX? > > best, > Tobi > From milan.kubec at oracle.com Mon Jul 1 07:01:12 2013 From: milan.kubec at oracle.com (Milan Kubec) Date: Mon, 01 Jul 2013 16:01:12 +0200 Subject: [API Review]: Add 'fxml.version' to System Properties (Was: FXML version number) In-Reply-To: <51B19E88.4080203@oracle.com> References: <51B19E88.4080203@oracle.com> Message-ID: <51D18BA8.3040809@oracle.com> Hello, I propose to add 'fxml.version' property to JVM System Properties to store version of FXML specific version that is supported by FXML Loader. The property would be more specific equivalent of 'javafx.version' because these two versions won't advance simultaneously. Details about versioning and proposed namespaces are described in issue: https://javafx-jira.kenai.com/browse/RT-28599 Thanks for comments Milan Dne 7.6.2013 10:49, Milan Kubec napsal(a): > Hello, > I have implemented simple versioning for FXML documents in FXMLLoader, but without support in tools it won't be very useful. I have agreed with NetBeans and Scene Builder folks that they will include support for versioning too. Support means that they will produce document with two XML namespaces - one defines version of fx: prefixed elements and attributes (xmlns:fx; it's already there, just the version is appended) and the other of actual JavaFX API used to produce document (xmlns; default, no prefix). The first will be checked, because wrong version can cause failure. The latter is only informational, no strict checking of version is possible, but tools can suggest to upgrade runtime, translate document etc. > > JavaFX API version is stored in System Properties as "javafx.version". The open question is still where and how to store fxml version in code. I think that we could have also property for this purpose, e.g. "fxml.version" in System Properties. So far it's part of FXMLLoader API, which is probably not very fortunate. What do you think? > > Issue details: https://javafx-jira.kenai.com/browse/RT-28599 > > Milan > From felipe.heidrich at oracle.com Mon Jul 1 08:50:20 2013 From: felipe.heidrich at oracle.com (Felipe Heidrich) Date: Mon, 1 Jul 2013 08:50:20 -0700 Subject: Native font rendering in JFX8 b96? In-Reply-To: <51CE62DD.2060703@oracle.com> References: <003801ce7462$84137dd0$8c3a7970$@ozemail.com.au> <0F69B610-7854-4136-A096-F05D8B386465@oracle.com> <51CE62DD.2060703@oracle.com> Message-ID: Hi John, I believe Phil and Kevin already answered your question. Currently I'm not using DirectWrite to render glyphs at subpixel positions (thus it still looks similar to what we had in past) but I hope to enable it in another week or two. If you happen to care for complex text (Indic, Arabic, etc), it is also better now using DirectWrite instead of ICU. Cheers Felipe On Jun 28, 2013, at 9:30 PM, Phil Race wrote: > For most Windows users and use cases the main differences are that > 1) Previously GDI produced the LCD glyphs, now its DW. > 2) Previously T2K produced the grayscale glyphs, now its DW. > > T2K doesn't do layout. It just does rasterisation. > Most users won't hit the layout path (for complex text). > > -phil. > > On 6/28/13 8:52 PM, Richard Bair wrote: >>> Fonts do look good but I thought they always looked pretty good on Windows! >> With the old code we were using Windows to create the glyphs, so the rendering should look just as good for each glyph. T2K was doing the layout of glyphs, now it should be using DirectWrite on Windows. Not sure if it is b96 -- Felipe? >> >> Richard >> > From felipe.heidrich at oracle.com Mon Jul 1 08:56:57 2013 From: felipe.heidrich at oracle.com (Felipe Heidrich) Date: Mon, 1 Jul 2013 08:56:57 -0700 Subject: Native font rendering in JFX8 b96? In-Reply-To: <51CE62DD.2060703@oracle.com> References: <003801ce7462$84137dd0$8c3a7970$@ozemail.com.au> <0F69B610-7854-4136-A096-F05D8B386465@oracle.com> <51CE62DD.2060703@oracle.com> Message-ID: Hi John, I believe Phil and Kevin already answered your question. Currently I'm not using DirectWrite to render glyphs at subpixel positions (thus it still looks similar to what we had in past) but I hope to enable it in another week or two. If you happen to care for complex text (Indic, Arabic, etc), it is also better now using DirectWrite instead of ICU. Cheers Felipe On Jun 28, 2013, at 9:30 PM, Phil Race wrote: > For most Windows users and use cases the main differences are that > 1) Previously GDI produced the LCD glyphs, now its DW. > 2) Previously T2K produced the grayscale glyphs, now its DW. > > T2K doesn't do layout. It just does rasterisation. > Most users won't hit the layout path (for complex text). > > -phil. > > On 6/28/13 8:52 PM, Richard Bair wrote: >>> Fonts do look good but I thought they always looked pretty good on Windows! >> With the old code we were using Windows to create the glyphs, so the rendering should look just as good for each glyph. T2K was doing the layout of glyphs, now it should be using DirectWrite on Windows. Not sure if it is b96 -- Felipe? >> >> Richard >> > From phidias51 at gmail.com Mon Jul 1 10:34:30 2013 From: phidias51 at gmail.com (Mark Fortner) Date: Mon, 1 Jul 2013 10:34:30 -0700 Subject: How are Mnemonics On Buttons Supposed To Work? Message-ID: Recently, I added mnemonics to some buttons and enabled mnemonic parsing, and noticed that the mnemonic isn't rendered. I came across this issue: https://javafx-jira.kenai.com/browse/RT-18849 which seems to indicate that NOT showing mnemonics is the expected behavior. If that's correct, how are user's supposed to know what mnemonics are available? Cheers, Mark From richard.bair at oracle.com Mon Jul 1 12:35:04 2013 From: richard.bair at oracle.com (Richard Bair) Date: Mon, 1 Jul 2013 12:35:04 -0700 Subject: OpenJFX and iOS In-Reply-To: References: <025780C9-1BCC-4C31-AB9C-85945A7A0D02@ultramixer.com> <829FF084-2040-4F43-98E0-1662B9036CA6@oracle.com> Message-ID: <9711130F-6087-42EF-9D2D-E40B6F0BA34A@oracle.com> Thanks Danno, reading the patch now. Richard On Jun 29, 2013, at 8:01 AM, Danno Ferrin wrote: > Here's a patch that copies all the file types if variants are present, so now all .a files show up in ios-sdk: > > https://bitbucket.org/narya/jfx78/commits/e69d574206cf59ed25e215cfd2479c9aae2ab296 > > From my reading, .a files are static libraries, and dylib are dynamic libraries. iOS requires static linking if I read the docs correctly. > > On Sat, Jun 29, 2013 at 1:17 AM, Richard Bair wrote: > I haven't been this low level on building iOS, so I'm not sure how this works. On iOS we don't have dynamic libraries, so why does changing the name of the dynamic libraries to be .a make a difference? Or are you really looking for the .o files? What happens to those .a's? > > I like the patch to push the dynamic library names into the .gradle files (except it should be dylib instead of dynlib, right?) > > Richard > > On Jun 28, 2013, at 11:14 PM, Danno Ferrin wrote: > >> Here's a more general solution that pushes the naming into the compile target build files (not tried on all paths, but works for iOS) >> >> https://bitbucket.org/narya/jfx78/commits/3a05c03810657d827d92d422fdadc3f2a60f9c62 >> >> On Fri, Jun 28, 2013 at 11:51 PM, Danno Ferrin wrote: >> So it looks like the first step is to set the COMPILE_TARGETS to include ios. However, the script it spits out .dynlib instead of .a files, just a naming thing. >> >> Here's a fix it now patch: >> https://bitbucket.org/narya/jfx78/commits/1df1b31cb9618560551fb43cebe5dacb678f0c7f >> but a better patch would be to make a function in each platform build file. >> >> So this spits out some .a files if you know where to dig for them... >> >> gradle sdk -PCOMPILE_TARGETS=ios >> >> >> On Wed, Jun 26, 2013 at 10:45 AM, Richard Bair wrote: >> At the moment the first P0 is to make sure that when we switch to gradle the rest of the development team is able to continue on with their work. It is going to be bumpy for a few days, and we might miss the weekly integration for example next week depending on how it goes. However I would encourage anybody working on iOS to supply patches as soon as you have them -- we're applying an Android patch today for instance. >> >> Richard >> >> On Jun 26, 2013, at 8:26 AM, Danno Ferrin wrote: >> >> > RoboVM + libs is the goal here, on iOS. The ant based libs worked before. >> > >> > My brief read of the scripts indicates to me it is mostly a question of >> > modifying some of the guard conditions in the build, but making it work for >> > the supported platforms first is more of a priority. >> > >> > On Wed, Jun 26, 2013 at 8:58 AM, Tobias Bley wrote: >> > >> >> The problem is: a working gradle based iOS build isn?t of help to you >> >> because you?ll have to statically compile the JDK and OpenJFX together in >> >> one library - maybe with Avian+OpenJDK or RoboVM (android based) + OpenJFX. >> >> >> >> >> >> Am 26.06.2013 um 03:41 schrieb Daniel Zwolenski : >> >> >> >>> How do we go about building OpenJFX for iOS? Does it work now and/or will >> >>> the switch over to Gradle this friday/monday include support for an iOS >> >>> build? >> >>> >> >>> I'll want to build from Danno's JFX78 backport but as I understand it, he >> >>> is hooking into the official gradle build scripts so one should hopefully >> >>> lead to the other. >> >>> >> >>> Cheers, >> >>> Dan >> >> >> >> >> >> >> > > From John_Smith at symantec.com Mon Jul 1 12:44:58 2013 From: John_Smith at symantec.com (John Smith) Date: Mon, 1 Jul 2013 12:44:58 -0700 Subject: WebView and Aloha Editor In-Reply-To: References: Message-ID: <411E73D23DEC4C46BA48F2B6D8BF3D22167DE3545D@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> Perhaps Fabrizio's selection issues are related to the following issues: https://javafx-jira.kenai.com/browse/RT-18883 Google Docs editing issues https://javafx-jira.kenai.com/browse/RT-11239 Add drawGlyphVector type support to prism graphics -----Original Message----- From: openjfx-dev-bounces at openjdk.java.net [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Fabrizio Giudici Sent: Saturday, June 29, 2013 12:45 PM To: openjfx-dev at openjdk.java.net Subject: WebView and Aloha Editor First, as this is my first post here, cheers to everybody. So far I've been using WebView - other than pure HTML rendering - e.g. in embedding some JavaScript-based legacy application inside a rich desktop application, and it worked fine. It only needed some patches to the JavaScript code (that was some old one, not perfectly portable, written for Firefox). So, my idea was: as soon as I have some JavaScript that works with a WebKit browser, it's going to work with WebView. Now I'm developing a JavaFX application that provides editing features to a CMS. One of the features is the editing of XHTML documents. The HTMLEditor component does a very poor job of rendering, and I want JavaScript support, so I'm trying a WYSIWYG HTML editor made in JavaScript (Aloha Editor) with WebView (and a small embedded webserver under the hood). I supposed there were not major problems, as Aloha works well with WebKit browsers. Instead some surprise came: some things work and some are broken, e.g. selecting a sequence of characters and applying a bold style eats up some parts. I supposed that JavaScript support in WebView is exactly the original one in WebKit. Am I wrong? Thanks. PS After some more analysis, I wonder whether this is related to the font rendering engine. When I do a text selection, I see that the selection box is not precisely placed over the original text, but often it appears with a horizontal shift. I'm not an expert of JavaScript and I don't know how the text manipulation in Aloha works, but I wonder whether a font rendering that is not the original of WebKit can cause harm. -- Fabrizio Giudici - Java Architect @ Tidalwave s.a.s. "We make Java work. Everywhere." http://tidalwave.it/fabrizio/blog - fabrizio.giudici at tidalwave.it From John_Smith at symantec.com Mon Jul 1 13:29:21 2013 From: John_Smith at symantec.com (John Smith) Date: Mon, 1 Jul 2013 13:29:21 -0700 Subject: How are Mnemonics On Buttons Supposed To Work? In-Reply-To: References: Message-ID: <411E73D23DEC4C46BA48F2B6D8BF3D22167DE354E3@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> Are you using OS X? For me, mnemonics in JavaFX work on Windows, but not at all in OS X (which is perhaps by undocumented design?). Apple's platform integration guide contains a section on Mnemonics, it based on Swing but I think the concepts translate to JavaFX: https://developer.apple.com/library/mac/#documentation/Java/Conceptual/Java14Development/07-NativePlatformIntegration/NativePlatformIntegration.html >The JMenuItem class inherits the concept of mnemonics from the JAbstractButton class. In the context of menus, mnemonics are shortcuts to menus and their contents, which are executed by using a modifier key in conjunction with a single letter. When you set a mnemonic in a menu item, Java underscores the mnemonic letter in the title of the JMenuItem or JMenu component when the Option key is held down. Using mnemonics is discouraged in OS X, because mnemonics violate the principles of OS X Human Interface Guidelines. If you are developing a Java application for multiple platforms and some of those platforms recommend the use of mnemonics, just include a single setMnemonics() method that is conditionally called (based on the platform) when constructing your interface. > > How then do you get the functionality of mnemonics without using Java's mnemonics? If you have defined a keystroke sequence in the setAccelerator() method for a menu item, that key sequence is automatically entered into your menus. Accelerators work on both Windows and OS X (http://stackoverflow.com/questions/12710468/using-javafx-2-2-mnemonic). -----Original Message----- From: openjfx-dev-bounces at openjdk.java.net [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Mark Fortner Sent: Monday, July 01, 2013 10:35 AM To: openjfx-dev at openjdk.java.net Subject: How are Mnemonics On Buttons Supposed To Work? Recently, I added mnemonics to some buttons and enabled mnemonic parsing, and noticed that the mnemonic isn't rendered. I came across this issue: https://javafx-jira.kenai.com/browse/RT-18849 which seems to indicate that NOT showing mnemonics is the expected behavior. If that's correct, how are user's supposed to know what mnemonics are available? Cheers, Mark From Fabrizio.Giudici at tidalwave.it Mon Jul 1 13:41:45 2013 From: Fabrizio.Giudici at tidalwave.it (Fabrizio Giudici) Date: Mon, 01 Jul 2013 22:41:45 +0200 Subject: WebView and Aloha Editor In-Reply-To: <411E73D23DEC4C46BA48F2B6D8BF3D22167DE3545D@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> References: <411E73D23DEC4C46BA48F2B6D8BF3D22167DE3545D@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> Message-ID: On Mon, 01 Jul 2013 21:44:58 +0200, John Smith wrote: > Perhaps Fabrizio's selection issues are related to the following issues: > > https://javafx-jira.kenai.com/browse/RT-18883 Google Docs editing issues > https://javafx-jira.kenai.com/browse/RT-11239 Add drawGlyphVector type > support to prism graphics It soudns as they are. Given that hopefully somebody is working on that, do you think is it possible to apply some temporary workaround in Aloha? Or I only have to wait for a fix in JavaFX? -- Fabrizio Giudici - Java Architect @ Tidalwave s.a.s. "We make Java work. Everywhere." http://tidalwave.it/fabrizio/blog - fabrizio.giudici at tidalwave.it From phidias51 at gmail.com Mon Jul 1 13:41:13 2013 From: phidias51 at gmail.com (Mark Fortner) Date: Mon, 1 Jul 2013 13:41:13 -0700 Subject: How are Mnemonics On Buttons Supposed To Work? In-Reply-To: <411E73D23DEC4C46BA48F2B6D8BF3D22167DE354E3@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> References: <411E73D23DEC4C46BA48F2B6D8BF3D22167DE354E3@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> Message-ID: Hi John, Yes, I am using OS X. Thanks for the link. I ended up creating a window level key listener to listen for single key press events (don't really need a modifier). I'll have to rethink my approach. It would be nice if there was a note in the javadoc about this. Regards, Mark Cheers, Mark On Mon, Jul 1, 2013 at 1:29 PM, John Smith wrote: > Are you using OS X? > > For me, mnemonics in JavaFX work on Windows, but not at all in OS X (which > is perhaps by undocumented design?). > > Apple's platform integration guide contains a section on Mnemonics, it > based on Swing but I think the concepts translate to JavaFX: > > https://developer.apple.com/library/mac/#documentation/Java/Conceptual/Java14Development/07-NativePlatformIntegration/NativePlatformIntegration.html > > >The JMenuItem class inherits the concept of mnemonics from the > JAbstractButton class. In the context of menus, mnemonics are shortcuts to > menus and their contents, which are executed by using a modifier key in > conjunction with a single letter. When you set a mnemonic in a menu item, > Java underscores the mnemonic letter in the title of the JMenuItem or JMenu > component when the Option key is held down. Using mnemonics is discouraged > in OS X, because mnemonics violate the principles of OS X Human Interface > Guidelines. If you are developing a Java application for multiple platforms > and some of those platforms recommend the use of mnemonics, just include a > single setMnemonics() method that is conditionally called (based on the > platform) when constructing your interface. > > > > How then do you get the functionality of mnemonics without using Java's > mnemonics? If you have defined a keystroke sequence in the setAccelerator() > method for a menu item, that key sequence is automatically entered into > your menus. > > Accelerators work on both Windows and OS X ( > http://stackoverflow.com/questions/12710468/using-javafx-2-2-mnemonic). > > -----Original Message----- > From: openjfx-dev-bounces at openjdk.java.net [mailto: > openjfx-dev-bounces at openjdk.java.net] On Behalf Of Mark Fortner > Sent: Monday, July 01, 2013 10:35 AM > To: openjfx-dev at openjdk.java.net > Subject: How are Mnemonics On Buttons Supposed To Work? > > Recently, I added mnemonics to some buttons and enabled mnemonic parsing, > and noticed that the mnemonic isn't rendered. I came across this issue: > https://javafx-jira.kenai.com/browse/RT-18849 > > which seems to indicate that NOT showing mnemonics is the expected > behavior. > > If that's correct, how are user's supposed to know what mnemonics are > available? > > > Cheers, > > Mark > From richard.bair at oracle.com Mon Jul 1 14:25:26 2013 From: richard.bair at oracle.com (Richard Bair) Date: Mon, 1 Jul 2013 14:25:26 -0700 Subject: How are Mnemonics On Buttons Supposed To Work? In-Reply-To: References: <411E73D23DEC4C46BA48F2B6D8BF3D22167DE354E3@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> Message-ID: This is correct, Apple doesn't (typically? ever?) display mnemonics on Mac. We want our behavior here to be consistent with the OS. Richard On Jul 1, 2013, at 1:41 PM, Mark Fortner wrote: > Hi John, > Yes, I am using OS X. Thanks for the link. I ended up creating a window > level key listener to listen for single key press events (don't really need > a modifier). I'll have to rethink my approach. > > It would be nice if there was a note in the javadoc about this. > > Regards, > Mark > > Cheers, > > Mark > > > > On Mon, Jul 1, 2013 at 1:29 PM, John Smith wrote: > >> Are you using OS X? >> >> For me, mnemonics in JavaFX work on Windows, but not at all in OS X (which >> is perhaps by undocumented design?). >> >> Apple's platform integration guide contains a section on Mnemonics, it >> based on Swing but I think the concepts translate to JavaFX: >> >> https://developer.apple.com/library/mac/#documentation/Java/Conceptual/Java14Development/07-NativePlatformIntegration/NativePlatformIntegration.html >> >>> The JMenuItem class inherits the concept of mnemonics from the >> JAbstractButton class. In the context of menus, mnemonics are shortcuts to >> menus and their contents, which are executed by using a modifier key in >> conjunction with a single letter. When you set a mnemonic in a menu item, >> Java underscores the mnemonic letter in the title of the JMenuItem or JMenu >> component when the Option key is held down. Using mnemonics is discouraged >> in OS X, because mnemonics violate the principles of OS X Human Interface >> Guidelines. If you are developing a Java application for multiple platforms >> and some of those platforms recommend the use of mnemonics, just include a >> single setMnemonics() method that is conditionally called (based on the >> platform) when constructing your interface. >>> >>> How then do you get the functionality of mnemonics without using Java's >> mnemonics? If you have defined a keystroke sequence in the setAccelerator() >> method for a menu item, that key sequence is automatically entered into >> your menus. >> >> Accelerators work on both Windows and OS X ( >> http://stackoverflow.com/questions/12710468/using-javafx-2-2-mnemonic). >> >> -----Original Message----- >> From: openjfx-dev-bounces at openjdk.java.net [mailto: >> openjfx-dev-bounces at openjdk.java.net] On Behalf Of Mark Fortner >> Sent: Monday, July 01, 2013 10:35 AM >> To: openjfx-dev at openjdk.java.net >> Subject: How are Mnemonics On Buttons Supposed To Work? >> >> Recently, I added mnemonics to some buttons and enabled mnemonic parsing, >> and noticed that the mnemonic isn't rendered. I came across this issue: >> https://javafx-jira.kenai.com/browse/RT-18849 >> >> which seems to indicate that NOT showing mnemonics is the expected >> behavior. >> >> If that's correct, how are user's supposed to know what mnemonics are >> available? >> >> >> Cheers, >> >> Mark >> From richard.bair at oracle.com Mon Jul 1 14:58:43 2013 From: richard.bair at oracle.com (Richard Bair) Date: Mon, 1 Jul 2013 14:58:43 -0700 Subject: [API Review] Make Scene styleable through CSS In-Reply-To: <00012EB2-0309-48A5-B280-758DA3038209@oracle.com> References: <00012EB2-0309-48A5-B280-758DA3038209@oracle.com> Message-ID: <09FDC4EB-3D50-4851-9CE7-345496D0312F@oracle.com> Does it need a default style class, or can we just use the type selector instead? Richard On Jun 25, 2013, at 2:18 PM, David Grieve wrote: > https://javafx-jira.kenai.com/browse/RT-31282 > > Scene has a fillProperty which should be styleable via CSS but this would require making Scene implement the javafx.css.Styleable interface. The interesting bits from the interface are > > public String getId() > public ObservableList getStyleClass() > public String getStyle() > public ObservableSet getPseudoClassStates() > > Scene will have a "scene" style-class by default. > > getId() and getStyle() will be backed by corresponding properties with setters. > > public void setId(String newId) > public final StringProperty idProperty() > public void setStyle(String style) > public final StringProperty styleProperty() > > There is no setPseudoClassStates method since pseudo-class states are handled internally. The only pseudo-class state for Scene is :dir which corresponds to node orientation. > > public String getTypeSelector() will return "Scene". > > The following CSS properties will be supported for Scene: > > -fx-cursor: ; > -fx-fill: ; From John_Smith at symantec.com Mon Jul 1 17:26:29 2013 From: John_Smith at symantec.com (John Smith) Date: Mon, 1 Jul 2013 17:26:29 -0700 Subject: WebView and Aloha Editor In-Reply-To: References: <411E73D23DEC4C46BA48F2B6D8BF3D22167DE3545D@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> Message-ID: <411E73D23DEC4C46BA48F2B6D8BF3D22167DE356FC@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> > do you think is it possible to apply some temporary workaround in Aloha? Or I only have to wait for a fix in JavaFX? It sounds like a pretty low level problem in the calculation of the underlying metrics for the font measurements. I doubt you could work around it at the application level in Aloha and believe you probably need to wait for a fix in JavaFX. You could try the latest jdk8 build and see if the issue persists there (likely it does as the underlying jiras have not been closed). https://jdk8.java.net/download.html -----Original Message----- From: Fabrizio Giudici [mailto:Fabrizio.Giudici at tidalwave.it] Sent: Monday, July 01, 2013 1:42 PM To: openjfx-dev at openjdk.java.net; John Smith Subject: Re: WebView and Aloha Editor On Mon, 01 Jul 2013 21:44:58 +0200, John Smith wrote: > Perhaps Fabrizio's selection issues are related to the following issues: > > https://javafx-jira.kenai.com/browse/RT-18883 Google Docs editing > issues > https://javafx-jira.kenai.com/browse/RT-11239 Add drawGlyphVector type > support to prism graphics It soudns as they are. Given that hopefully somebody is working on that, do you think is it possible to apply some temporary workaround in Aloha? Or I only have to wait for a fix in JavaFX? -- Fabrizio Giudici - Java Architect @ Tidalwave s.a.s. "We make Java work. Everywhere." http://tidalwave.it/fabrizio/blog - fabrizio.giudici at tidalwave.it From Peter.Zhelezniakov at oracle.com Tue Jul 2 03:23:10 2013 From: Peter.Zhelezniakov at oracle.com (Peter Zhelezniakov) Date: Tue, 02 Jul 2013 14:23:10 +0400 Subject: openjfx-dev Digest, Vol 19, Issue 73 In-Reply-To: References: Message-ID: <51D2AA0E.1090408@oracle.com> > I supposed that JavaScript support in WebView is exactly the original one > in WebKit. Am I wrong? The engine is the same, but as it interacts with other parts of the browser, it may hit bugs elsewhere. What you're seeing seems to be a bug in processing font metrics. Looks very similar to RT-18883 indeed. -- Peter From Fabrizio.Giudici at tidalwave.it Tue Jul 2 03:45:02 2013 From: Fabrizio.Giudici at tidalwave.it (Fabrizio Giudici) Date: Tue, 02 Jul 2013 12:45:02 +0200 Subject: openjfx-dev Digest, Vol 19, Issue 73 In-Reply-To: <51D2AA0E.1090408@oracle.com> References: <51D2AA0E.1090408@oracle.com> Message-ID: On Tue, 02 Jul 2013 12:23:10 +0200, Peter Zhelezniakov wrote: >> I supposed that JavaScript support in WebView is exactly the original >> one >> in WebKit. Am I wrong? > > The engine is the same, but as it interacts with other parts of the > browser, it may hit bugs elsewhere. What you're seeing seems to be a bug > in processing font metrics. Looks very similar to RT-18883 indeed. Thanks. I did some research in the past days and collected some other issue references - I opened RT-31382 (I see that you just commented on it). -- Fabrizio Giudici - Java Architect @ Tidalwave s.a.s. "We make Java work. Everywhere." http://tidalwave.it/fabrizio/blog - fabrizio.giudici at tidalwave.it From tobi at ultramixer.com Tue Jul 2 16:46:18 2013 From: tobi at ultramixer.com (Tobias Bley) Date: Wed, 3 Jul 2013 01:46:18 +0200 Subject: iOS: missing native font lib (a) in SDK directory Message-ID: Hi, I tested the new gradle based build process and noticed that in the ios-sdk directory the font library (libjavafx-font-armv7.a) is missing. So maybe the ios.gradle script isn?t complete? Best regards, Tobi From richard.bair at oracle.com Tue Jul 2 17:33:08 2013 From: richard.bair at oracle.com (Richard Bair) Date: Tue, 2 Jul 2013 17:33:08 -0700 Subject: iOS: missing native font lib (a) in SDK directory In-Reply-To: References: Message-ID: That is correct, it isn't complete. I have a couple changes from Danno that are still in process, and another patch from one of the guys in Prague as well. On Jul 2, 2013, at 4:46 PM, Tobias Bley wrote: > Hi, > > I tested the new gradle based build process and noticed that in the ios-sdk directory the font library (libjavafx-font-armv7.a) is missing. So maybe the ios.gradle script isn?t complete? > > Best regards, > Tobi > From zonski at gmail.com Tue Jul 2 17:49:08 2013 From: zonski at gmail.com (Daniel Zwolenski) Date: Wed, 3 Jul 2013 10:49:08 +1000 Subject: iOS: missing native font lib (a) in SDK directory In-Reply-To: References: Message-ID: Niklas has RoboVM ready and waiting for this. I have the RoboVM Maven plugin already able to build a Java app on RoboVM and run this in a simulator or on a connected device, all from the command line (mvn robovm:ipad-sim, etc). You need only a Mac and must have xcode installed, everything else (robovm download, llvm download) just happens. This works right now without JFX. To include JFX, we are waiting only on the jar and library files from an iOS build of Danno's back port. Danno in turn is waiting on these usable build scripts from the JFX team. Once I have a copy of the iOS built libraries of JFX (they do not need to be in Maven, I just need copies of them), it should be two or three days before people are able to use this to produce JFX iOS apps and this should be very easy for the average punter to do. Obviously there's a lot going on with the move to gradle, but we are a few lines of Gradle build code away from JFX on iOS. I'm keen to find out just how well it will run. On Wed, Jul 3, 2013 at 10:33 AM, Richard Bair wrote: > That is correct, it isn't complete. I have a couple changes from Danno > that are still in process, and another patch from one of the guys in Prague > as well. > > On Jul 2, 2013, at 4:46 PM, Tobias Bley wrote: > > > Hi, > > > > I tested the new gradle based build process and noticed that in the > ios-sdk directory the font library (libjavafx-font-armv7.a) is missing. So > maybe the ios.gradle script isn?t complete? > > > > Best regards, > > Tobi > > > > From hang.vo at oracle.com Tue Jul 2 17:54:59 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 03 Jul 2013 00:54:59 +0000 Subject: hg: openjfx/2u/dev/rt: 2 new changesets Message-ID: <20130703005504.5EE3F48738@hg.openjdk.java.net> Changeset: d34eb1f7e15d Author: hudson Date: 2013-06-27 11:16 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/dev/rt/rev/d34eb1f7e15d Added tag 2.2.40-b31 for changeset ff55a1a6dfa5 ! .hgtags Changeset: 764cbe8a43e4 Author: kcr Date: 2013-07-02 13:57 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/dev/rt/rev/764cbe8a43e4 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.40/MASTER/jfx/rt From danno.ferrin at shemnon.com Tue Jul 2 21:05:54 2013 From: danno.ferrin at shemnon.com (Danno Ferrin) Date: Tue, 2 Jul 2013 22:05:54 -0600 Subject: iOS: missing native font lib (a) in SDK directory In-Reply-To: References: Message-ID: Try this patch: https://bitbucket.org/narya/jfx78/commits/e69d574206cf59ed25e215cfd2479c9aae2ab296 It allows most libs to have varients transparently handled. On Tue, Jul 2, 2013 at 6:49 PM, Daniel Zwolenski wrote: > Niklas has RoboVM ready and waiting for this. > > I have the RoboVM Maven plugin already able to build a Java app on RoboVM > and run this in a simulator or on a connected device, all from the command > line (mvn robovm:ipad-sim, etc). You need only a Mac and must have xcode > installed, everything else (robovm download, llvm download) just happens. > This works right now without JFX. > > To include JFX, we are waiting only on the jar and library files from an > iOS build of Danno's back port. Danno in turn is waiting on these usable > build scripts from the JFX team. > > Once I have a copy of the iOS built libraries of JFX (they do not need to > be in Maven, I just need copies of them), it should be two or three days > before people are able to use this to produce JFX iOS apps and this should > be very easy for the average punter to do. > > Obviously there's a lot going on with the move to gradle, but we are a few > lines of Gradle build code away from JFX on iOS. I'm keen to find out just > how well it will run. > > > > > On Wed, Jul 3, 2013 at 10:33 AM, Richard Bair >wrote: > > > That is correct, it isn't complete. I have a couple changes from Danno > > that are still in process, and another patch from one of the guys in > Prague > > as well. > > > > On Jul 2, 2013, at 4:46 PM, Tobias Bley wrote: > > > > > Hi, > > > > > > I tested the new gradle based build process and noticed that in the > > ios-sdk directory the font library (libjavafx-font-armv7.a) is missing. > So > > maybe the ios.gradle script isn?t complete? > > > > > > Best regards, > > > Tobi > > > > > > > > From tobi at ultramixer.com Wed Jul 3 00:17:45 2013 From: tobi at ultramixer.com (Tobias Bley) Date: Wed, 3 Jul 2013 09:17:45 +0200 Subject: iOS: missing native font lib (a) in SDK directory In-Reply-To: References: Message-ID: <324FDA41-9D15-4E60-8CF3-21B1DCF2C4F5@ultramixer.com> Thanks Danno, now I?m getting the following errors: Undefined symbols for architecture armv7: "_kCTFontURLAttribute", referenced from: _Java_com_sun_javafx_font_MacFontFinder_getFontData in libjavafx-font-armv7.a(MacFontFinder.obj) "_kCTFontDisplayNameAttribute", referenced from: _Java_com_sun_javafx_font_MacFontFinder_getFontData in libjavafx-font-armv7.a(MacFontFinder.obj) "_CTFontCollectionCreateMatchingFontDescriptors", referenced from: _Java_com_sun_javafx_font_MacFontFinder_getFontData in libjavafx-font-armv7.a(MacFontFinder.obj) "_CTFontCollectionCreateFromAvailableFonts", referenced from: _Java_com_sun_javafx_font_MacFontFinder_getFontData in libjavafx-font-armv7.a(MacFontFinder.obj) "_CTFontCopyFullName", referenced from: _Java_com_sun_javafx_font_MacFontFinder_getFontData in libjavafx-font-armv7.a(MacFontFinder.obj) "_CTFontCreateUIFontForLanguage", referenced from: _Java_com_sun_javafx_font_MacFontFinder_getSystemFontSize in libjavafx-font-armv7.a(MacFontFinder.obj) _Java_com_sun_javafx_font_MacFontFinder_getFont in libjavafx-font-armv7.a(MacFontFinder.obj) _Java_com_sun_javafx_font_MacFontFinder_getFontData in libjavafx-font-armv7.a(MacFontFinder.obj) "_CTFontCopyFontDescriptor", referenced from: _Java_com_sun_javafx_font_MacFontFinder_getFontData in libjavafx-font-armv7.a(MacFontFinder.obj) "_CTFontDescriptorCopyAttribute", referenced from: _Java_com_sun_javafx_font_MacFontFinder_getFontData in libjavafx-font-armv7.a(MacFontFinder.obj) "_CTFontCopyFamilyName", referenced from: _Java_com_sun_javafx_font_MacFontFinder_getFont in libjavafx-font-armv7.a(MacFontFinder.obj) "_kCTFontFamilyNameAttribute", referenced from: _Java_com_sun_javafx_font_MacFontFinder_getFontData in libjavafx-font-armv7.a(MacFontFinder.obj) "_CTFontGetSize", referenced from: _Java_com_sun_javafx_font_MacFontFinder_getSystemFontSize in libjavafx-font-armv7.a(MacFontFinder.obj) ld: symbol(s) not found for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation) Maybe the source code of MacFontFinder is outdated? Best regards, Tobi Am 03.07.2013 um 06:05 schrieb Danno Ferrin : > Try this patch: > > https://bitbucket.org/narya/jfx78/commits/e69d574206cf59ed25e215cfd2479c9aae2ab296 > > It allows most libs to have varients transparently handled. > > On Tue, Jul 2, 2013 at 6:49 PM, Daniel Zwolenski wrote: > >> Niklas has RoboVM ready and waiting for this. >> >> I have the RoboVM Maven plugin already able to build a Java app on RoboVM >> and run this in a simulator or on a connected device, all from the command >> line (mvn robovm:ipad-sim, etc). You need only a Mac and must have xcode >> installed, everything else (robovm download, llvm download) just happens. >> This works right now without JFX. >> >> To include JFX, we are waiting only on the jar and library files from an >> iOS build of Danno's back port. Danno in turn is waiting on these usable >> build scripts from the JFX team. >> >> Once I have a copy of the iOS built libraries of JFX (they do not need to >> be in Maven, I just need copies of them), it should be two or three days >> before people are able to use this to produce JFX iOS apps and this should >> be very easy for the average punter to do. >> >> Obviously there's a lot going on with the move to gradle, but we are a few >> lines of Gradle build code away from JFX on iOS. I'm keen to find out just >> how well it will run. >> >> >> >> >> On Wed, Jul 3, 2013 at 10:33 AM, Richard Bair >> wrote: >> >>> That is correct, it isn't complete. I have a couple changes from Danno >>> that are still in process, and another patch from one of the guys in >> Prague >>> as well. >>> >>> On Jul 2, 2013, at 4:46 PM, Tobias Bley wrote: >>> >>>> Hi, >>>> >>>> I tested the new gradle based build process and noticed that in the >>> ios-sdk directory the font library (libjavafx-font-armv7.a) is missing. >> So >>> maybe the ios.gradle script isn?t complete? >>>> >>>> Best regards, >>>> Tobi >>>> >>> >>> >> From tobi at ultramixer.com Wed Jul 3 02:31:27 2013 From: tobi at ultramixer.com (Tobias Bley) Date: Wed, 3 Jul 2013 11:31:27 +0200 Subject: iOS: current state of RoboVM 0.0.2 + latest gradle based OpenJFX on iOS Message-ID: <45E5B879-0C1A-4BA4-84D1-0AD59C28150F@ultramixer.com> Hi, I tried to use the latest gradle based OpenJFX on iOS using RoboVM. Current state: it fails: The reason why is the font rendering using CoreText which currently is not possible on iOS. Take a look here: coretext.c => #if TARGET_OS_MAC && !(TARGET_OS_IPHONE) The alternative would be to use the T2K renderer, which is not available in OpenJFX. So currently we have to wait for an implementation of CoreText native code on iOS. Best regards, Tobi From cognitionmission at gmail.com Wed Jul 3 05:26:46 2013 From: cognitionmission at gmail.com (cogmission1 .) Date: Wed, 3 Jul 2013 07:26:46 -0500 Subject: iOS: current state of RoboVM 0.0.2 + latest gradle based OpenJFX on iOS In-Reply-To: <45E5B879-0C1A-4BA4-84D1-0AD59C28150F@ultramixer.com> References: <45E5B879-0C1A-4BA4-84D1-0AD59C28150F@ultramixer.com> Message-ID: Hi, Is that being worked on or did we just hit a brick wall? David On Wed, Jul 3, 2013 at 4:31 AM, Tobias Bley wrote: > Hi, > > I tried to use the latest gradle based OpenJFX on iOS using RoboVM. > Current state: it fails: The reason why is the font rendering using > CoreText which currently is not possible on iOS. > > Take a look here: coretext.c => #if TARGET_OS_MAC && !(TARGET_OS_IPHONE) > > The alternative would be to use the T2K renderer, which is not available > in OpenJFX. > > So currently we have to wait for an implementation of CoreText native code > on iOS. > > Best regards, > Tobi From zonski at gmail.com Wed Jul 3 05:29:11 2013 From: zonski at gmail.com (Daniel Zwolenski) Date: Wed, 3 Jul 2013 22:29:11 +1000 Subject: iOS: current state of RoboVM 0.0.2 + latest gradle based OpenJFX on iOS In-Reply-To: References: <45E5B879-0C1A-4BA4-84D1-0AD59C28150F@ultramixer.com> Message-ID: +100 On Wed, Jul 3, 2013 at 10:26 PM, cogmission1 . wrote: > Hi, > > Is that being worked on or did we just hit a brick wall? > > David > > > On Wed, Jul 3, 2013 at 4:31 AM, Tobias Bley wrote: > > > Hi, > > > > I tried to use the latest gradle based OpenJFX on iOS using RoboVM. > > Current state: it fails: The reason why is the font rendering using > > CoreText which currently is not possible on iOS. > > > > Take a look here: coretext.c => #if TARGET_OS_MAC && !(TARGET_OS_IPHONE) > > > > The alternative would be to use the T2K renderer, which is not available > > in OpenJFX. > > > > So currently we have to wait for an implementation of CoreText native > code > > on iOS. > > > > Best regards, > > Tobi > From tobi at ultramixer.com Wed Jul 3 05:30:14 2013 From: tobi at ultramixer.com (Tobias Bley) Date: Wed, 3 Jul 2013 14:30:14 +0200 Subject: iOS: current state of RoboVM 0.0.2 + latest gradle based OpenJFX on iOS In-Reply-To: References: <45E5B879-0C1A-4BA4-84D1-0AD59C28150F@ultramixer.com> Message-ID: I don?t know what Oracle is doing.... We need a statement from the guy from Oracle who is working on the CoreText support for Mac / iOS... Am 03.07.2013 um 14:26 schrieb cogmission1 . : > Hi, > > Is that being worked on or did we just hit a brick wall? > > David > > > On Wed, Jul 3, 2013 at 4:31 AM, Tobias Bley wrote: > Hi, > > I tried to use the latest gradle based OpenJFX on iOS using RoboVM. Current state: it fails: The reason why is the font rendering using CoreText which currently is not possible on iOS. > > Take a look here: coretext.c => #if TARGET_OS_MAC && !(TARGET_OS_IPHONE) > > The alternative would be to use the T2K renderer, which is not available in OpenJFX. > > So currently we have to wait for an implementation of CoreText native code on iOS. > > Best regards, > Tobi > From martin.sladecek at oracle.com Wed Jul 3 05:33:11 2013 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Wed, 03 Jul 2013 14:33:11 +0200 Subject: [API Review]: Node validation Message-ID: <51D41A07.9010008@oracle.com> Hi, JIRA: https://javafx-jira.kenai.com/browse/RT-31133 I propose a single method "public final void validate()" to be added to Node class. The validate method would ensure that the metrics (layout bounds) of the Node are valid with regards to the current scenegraph (CSS & layout). Together with this change, Parent.layout() will be deprecated. In my current implementation, validate() method works only if the Node is in a Scene. To make it work without a Scene, we'd need to do do some small adjustments to CSS (doesn't work with getScene() == null). But I'm not sure if such feature would be useful. Regards, -Martin From steve.x.northover at oracle.com Wed Jul 3 05:32:59 2013 From: steve.x.northover at oracle.com (steve.x.northover at oracle.com) Date: Wed, 03 Jul 2013 08:32:59 -0400 Subject: iOS: current state of RoboVM 0.0.2 + latest gradle based OpenJFX on iOS In-Reply-To: <45E5B879-0C1A-4BA4-84D1-0AD59C28150F@ultramixer.com> References: <45E5B879-0C1A-4BA4-84D1-0AD59C28150F@ultramixer.com> Message-ID: <51D419FB.4060103@oracle.com> Hi Tobias, CoreText has been supported on iOS since 3.2. The code that is released was compiled and tested on OS X only but most of it should be applicable to iOS. I have not investigated the differences between CoreText on iOS and on OS X to find out where the rough edges are but the code should be close. Nobody has really tried it much except Felipe so I'll let him provide the details. I can confirm that coretext.c is wired into the gradle build and that uncommenting the #if will compile the source and get compile errors on iOS. There is a bug in the gradle incremental compiler for native code () so you will need this line to make sure your changes to native files get picked up: gradle -PCOMPILE_TARGETS=ios clean sdk I suggest we use this list to coordinate. Steve On 03/07/2013 5:31 AM, Tobias Bley wrote: > Hi, > > I tried to use the latest gradle based OpenJFX on iOS using RoboVM. Current state: it fails: The reason why is the font rendering using CoreText which currently is not possible on iOS. > > Take a look here: coretext.c => #if TARGET_OS_MAC && !(TARGET_OS_IPHONE) > > The alternative would be to use the T2K renderer, which is not available in OpenJFX. > > So currently we have to wait for an implementation of CoreText native code on iOS. > > Best regards, > Tobi From cognitionmission at gmail.com Wed Jul 3 05:35:05 2013 From: cognitionmission at gmail.com (cogmission1 .) Date: Wed, 3 Jul 2013 07:35:05 -0500 Subject: iOS: current state (Read: Who is Oracle's CoreText Guy?) :) Message-ID: Hi, Respectfully, does anyone know who this is? And is a statement of the status of his work, possible? Burning ears would like to know :) Thanks, David On Wed, Jul 3, 2013 at 7:30 AM, Tobias Bley wrote: > I don?t know what Oracle is doing.... > > We need a statement from the guy from Oracle who is working on the > CoreText support for Mac / iOS... > > > Am 03.07.2013 um 14:26 schrieb cogmission1 . : > > Hi, > > Is that being worked on or did we just hit a brick wall? > > David > > > On Wed, Jul 3, 2013 at 4:31 AM, Tobias Bley wrote: > >> Hi, >> >> I tried to use the latest gradle based OpenJFX on iOS using RoboVM. >> Current state: it fails: The reason why is the font rendering using >> CoreText which currently is not possible on iOS. >> >> Take a look here: coretext.c => #if TARGET_OS_MAC && !(TARGET_OS_IPHONE) >> >> The alternative would be to use the T2K renderer, which is not available >> in OpenJFX. >> >> So currently we have to wait for an implementation of CoreText native >> code on iOS. >> >> Best regards, >> Tobi > > > > From steve.x.northover at oracle.com Wed Jul 3 06:02:43 2013 From: steve.x.northover at oracle.com (steve.x.northover at oracle.com) Date: Wed, 03 Jul 2013 09:02:43 -0400 Subject: iOS: current state (Read: Who is Oracle's CoreText Guy?) :) In-Reply-To: References: Message-ID: <51D420F3.6020209@oracle.com> Hi all, Felipe Heidrich is the text guy. The focus has been on getting native text rendering working first on the desktop. That said, the code was written with iOS in mind and should not be far away. I suggest that you enter a JIRA to track the work. People who are interested in tracking the work and contributing patches can coordinate in the JIRA and on this list. Thanks, Steve On 03/07/2013 8:35 AM, cogmission1 . wrote: > Hi, > > Respectfully, does anyone know who this is? And is a statement of the > status of his work, possible? Burning ears would like to know :) > > > Thanks, > David > > > On Wed, Jul 3, 2013 at 7:30 AM, Tobias Bley wrote: > >> I don?t know what Oracle is doing.... >> >> We need a statement from the guy from Oracle who is working on the >> CoreText support for Mac / iOS... >> >> >> Am 03.07.2013 um 14:26 schrieb cogmission1 . : >> >> Hi, >> >> Is that being worked on or did we just hit a brick wall? >> >> David >> >> >> On Wed, Jul 3, 2013 at 4:31 AM, Tobias Bley wrote: >> >>> Hi, >>> >>> I tried to use the latest gradle based OpenJFX on iOS using RoboVM. >>> Current state: it fails: The reason why is the font rendering using >>> CoreText which currently is not possible on iOS. >>> >>> Take a look here: coretext.c => #if TARGET_OS_MAC && !(TARGET_OS_IPHONE) >>> >>> The alternative would be to use the T2K renderer, which is not available >>> in OpenJFX. >>> >>> So currently we have to wait for an implementation of CoreText native >>> code on iOS. >>> >>> Best regards, >>> Tobi >> >> >> From cognitionmission at gmail.com Wed Jul 3 06:07:52 2013 From: cognitionmission at gmail.com (David Ray) Date: Wed, 3 Jul 2013 08:07:52 -0500 Subject: iOS: current state (Read: Who is Oracle's CoreText Guy?) :) In-Reply-To: <51D420F3.6020209@oracle.com> References: <51D420F3.6020209@oracle.com> Message-ID: That is great news. Thanks Steve for the update. Cheers, David Sent from my iPhone On Jul 3, 2013, at 8:02 AM, steve.x.northover at oracle.com wrote: > Hi all, > > Felipe Heidrich is the text guy. The focus has been on getting native text rendering working first on the desktop. That said, the code was written with iOS in mind and should not be far away. > > I suggest that you enter a JIRA to track the work. People who are interested in tracking the work and contributing patches can coordinate in the JIRA and on this list. > > Thanks, > Steve > > On 03/07/2013 8:35 AM, cogmission1 . wrote: >> Hi, >> >> Respectfully, does anyone know who this is? And is a statement of the >> status of his work, possible? Burning ears would like to know :) >> >> >> Thanks, >> David >> >> >> On Wed, Jul 3, 2013 at 7:30 AM, Tobias Bley wrote: >> >>> I don?t know what Oracle is doing.... >>> >>> We need a statement from the guy from Oracle who is working on the >>> CoreText support for Mac / iOS... >>> >>> >>> Am 03.07.2013 um 14:26 schrieb cogmission1 . : >>> >>> Hi, >>> >>> Is that being worked on or did we just hit a brick wall? >>> >>> David >>> >>> >>> On Wed, Jul 3, 2013 at 4:31 AM, Tobias Bley wrote: >>> >>>> Hi, >>>> >>>> I tried to use the latest gradle based OpenJFX on iOS using RoboVM. >>>> Current state: it fails: The reason why is the font rendering using >>>> CoreText which currently is not possible on iOS. >>>> >>>> Take a look here: coretext.c => #if TARGET_OS_MAC && !(TARGET_OS_IPHONE) >>>> >>>> The alternative would be to use the T2K renderer, which is not available >>>> in OpenJFX. >>>> >>>> So currently we have to wait for an implementation of CoreText native >>>> code on iOS. >>>> >>>> Best regards, >>>> Tobi > From tobi at ultramixer.com Wed Jul 3 06:11:00 2013 From: tobi at ultramixer.com (Tobias Bley) Date: Wed, 3 Jul 2013 15:11:00 +0200 Subject: iOS: current state of RoboVM 0.0.2 + latest gradle based OpenJFX on iOS In-Reply-To: <51D419FB.4060103@oracle.com> References: <45E5B879-0C1A-4BA4-84D1-0AD59C28150F@ultramixer.com> <51D419FB.4060103@oracle.com> Message-ID: <915970B0-A466-4751-80CE-57010AA911CF@ultramixer.com> Hi Steve, thanks for your answer. Yes I tried to replace the #if statement by ?#if 1? to compile the native code but it failed with several native errors. The main problem is that the ApplicationServices.framework used by coretext.c is only available on MacOSX but not on iOS SDK... Tobi Am 03.07.2013 um 14:32 schrieb steve.x.northover at oracle.com: > Hi Tobias, > > CoreText has been supported on iOS since 3.2. The code that is released was compiled and tested on OS X only but most of it should be applicable to iOS. I have not investigated the differences between CoreText on iOS and on OS X to find out where the rough edges are but the code should be close. Nobody has really tried it much except Felipe so I'll let him provide the details. I can confirm that coretext.c is wired into the gradle build and that uncommenting the #if will compile the source and get compile errors on iOS. > > There is a bug in the gradle incremental compiler for native code () so you will need this line to make sure your changes to native files get picked up: > > gradle -PCOMPILE_TARGETS=ios clean sdk > > I suggest we use this list to coordinate. > > Steve > > On 03/07/2013 5:31 AM, Tobias Bley wrote: >> Hi, >> >> I tried to use the latest gradle based OpenJFX on iOS using RoboVM. Current state: it fails: The reason why is the font rendering using CoreText which currently is not possible on iOS. >> >> Take a look here: coretext.c => #if TARGET_OS_MAC && !(TARGET_OS_IPHONE) >> >> The alternative would be to use the T2K renderer, which is not available in OpenJFX. >> >> So currently we have to wait for an implementation of CoreText native code on iOS. >> >> Best regards, >> Tobi > From david.grieve at oracle.com Wed Jul 3 06:23:48 2013 From: david.grieve at oracle.com (David Grieve) Date: Wed, 3 Jul 2013 09:23:48 -0400 Subject: [API Review]: Node validation In-Reply-To: <51D41A07.9010008@oracle.com> References: <51D41A07.9010008@oracle.com> Message-ID: <9B5F0E2F-6B40-4180-8E45-DD69E4D66BC3@oracle.com> Hi Martin, With regard to having this work without a Scene? I think having a method that would layout a node without the node actually having to be part of the scene-graph would be _very_ useful. Often times, developers will do the show-hide trick or add-remove trick to get a node's bounds before the node is shown for real. SceneBuilder has to do tricks like these to deal with popup controls, like tooltip. What styles are applied from CSS depends on where the node is in the scene-graph, so the method would need to be 'if I add this node to this parent, what will be the node's bounds?'. To make this work on the CSS side would require decoupling the 'css graph' from the scene-graph. RT-30894 touches on that. On Jul 3, 2013, at 8:33 AM, Martin Sladecek wrote: > Hi, > > JIRA: https://javafx-jira.kenai.com/browse/RT-31133 > > I propose a single method "public final void validate()" to be added to Node class. The validate method would ensure that the metrics (layout bounds) of the Node are valid with regards to the current scenegraph (CSS & layout). > > Together with this change, Parent.layout() will be deprecated. > > In my current implementation, validate() method works only if the Node is in a Scene. To make it work without a Scene, we'd need to do do some small adjustments to CSS (doesn't work with getScene() == null). But I'm not sure if such feature would be useful. > > Regards, > -Martin From steve.x.northover at oracle.com Wed Jul 3 06:29:47 2013 From: steve.x.northover at oracle.com (steve.x.northover at oracle.com) Date: Wed, 03 Jul 2013 09:29:47 -0400 Subject: iOS: current state of RoboVM 0.0.2 + latest gradle based OpenJFX on iOS In-Reply-To: <915970B0-A466-4751-80CE-57010AA911CF@ultramixer.com> References: <45E5B879-0C1A-4BA4-84D1-0AD59C28150F@ultramixer.com> <51D419FB.4060103@oracle.com> <915970B0-A466-4751-80CE-57010AA911CF@ultramixer.com> Message-ID: <51D4274B.5050202@oracle.com> You can change the includes to match iOS as follows: //#import #import #import I can confirm that changing the includes compiles the code but the gradle build for iOS is shifting under out feet. I would let the dust setting for a few days and keep an eye on JIRA to track progress: https://javafx-jira.kenai.com/browse/RT-31420 Steve On 03/07/2013 9:11 AM, Tobias Bley wrote: > Hi Steve, > > thanks for your answer. Yes I tried to replace the #if statement by ?#if 1? to compile the native code but it failed with several native errors. The main problem is that the ApplicationServices.framework used by coretext.c is only available on MacOSX but not on iOS SDK... > > Tobi > > > > Am 03.07.2013 um 14:32 schrieb steve.x.northover at oracle.com: > >> Hi Tobias, >> >> CoreText has been supported on iOS since 3.2. The code that is released was compiled and tested on OS X only but most of it should be applicable to iOS. I have not investigated the differences between CoreText on iOS and on OS X to find out where the rough edges are but the code should be close. Nobody has really tried it much except Felipe so I'll let him provide the details. I can confirm that coretext.c is wired into the gradle build and that uncommenting the #if will compile the source and get compile errors on iOS. >> >> There is a bug in the gradle incremental compiler for native code () so you will need this line to make sure your changes to native files get picked up: >> >> gradle -PCOMPILE_TARGETS=ios clean sdk >> >> I suggest we use this list to coordinate. >> >> Steve >> >> On 03/07/2013 5:31 AM, Tobias Bley wrote: >>> Hi, >>> >>> I tried to use the latest gradle based OpenJFX on iOS using RoboVM. Current state: it fails: The reason why is the font rendering using CoreText which currently is not possible on iOS. >>> >>> Take a look here: coretext.c => #if TARGET_OS_MAC && !(TARGET_OS_IPHONE) >>> >>> The alternative would be to use the T2K renderer, which is not available in OpenJFX. >>> >>> So currently we have to wait for an implementation of CoreText native code on iOS. >>> >>> Best regards, >>> Tobi From martin.sladecek at oracle.com Wed Jul 3 06:57:48 2013 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Wed, 03 Jul 2013 15:57:48 +0200 Subject: [API Review]: Node validation In-Reply-To: <9B5F0E2F-6B40-4180-8E45-DD69E4D66BC3@oracle.com> References: <51D41A07.9010008@oracle.com> <9B5F0E2F-6B40-4180-8E45-DD69E4D66BC3@oracle.com> Message-ID: <51D42DDC.4020601@oracle.com> Thank you David for your insight. You are right with the use-case for scene-less layoutbounds query, but I think this is a completely different API, so I'd leave the validate to support only the cases where a Scene is present. -Martin On 07/03/2013 03:23 PM, David Grieve wrote: > Hi Martin, > > With regard to having this work without a Scene? > > I think having a method that would layout a node without the node actually having to be part of the scene-graph would be _very_ useful. Often times, developers will do the show-hide trick or add-remove trick to get a node's bounds before the node is shown for real. SceneBuilder has to do tricks like these to deal with popup controls, like tooltip. > > What styles are applied from CSS depends on where the node is in the scene-graph, so the method would need to be 'if I add this node to this parent, what will be the node's bounds?'. To make this work on the CSS side would require decoupling the 'css graph' from the scene-graph. RT-30894 touches on that. > > On Jul 3, 2013, at 8:33 AM, Martin Sladecek wrote: > >> Hi, >> >> JIRA: https://javafx-jira.kenai.com/browse/RT-31133 >> >> I propose a single method "public final void validate()" to be added to Node class. The validate method would ensure that the metrics (layout bounds) of the Node are valid with regards to the current scenegraph (CSS & layout). >> >> Together with this change, Parent.layout() will be deprecated. >> >> In my current implementation, validate() method works only if the Node is in a Scene. To make it work without a Scene, we'd need to do do some small adjustments to CSS (doesn't work with getScene() == null). But I'm not sure if such feature would be useful. >> >> Regards, >> -Martin From kevin.rushforth at oracle.com Wed Jul 3 07:03:36 2013 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 03 Jul 2013 07:03:36 -0700 Subject: [API Review]: Node validation In-Reply-To: <9B5F0E2F-6B40-4180-8E45-DD69E4D66BC3@oracle.com> References: <51D41A07.9010008@oracle.com> <9B5F0E2F-6B40-4180-8E45-DD69E4D66BC3@oracle.com> Message-ID: <51D42F38.1040504@oracle.com> +1 This would allow apps to dispense with the following workaround when taking a snapshot: // create a dummy scene so layout and CSS will work new Scene(new Group(node)); node.shapshot(...) -- Kevin David Grieve wrote: > Hi Martin, > > With regard to having this work without a Scene? > > I think having a method that would layout a node without the node actually having to be part of the scene-graph would be _very_ useful. Often times, developers will do the show-hide trick or add-remove trick to get a node's bounds before the node is shown for real. SceneBuilder has to do tricks like these to deal with popup controls, like tooltip. > > What styles are applied from CSS depends on where the node is in the scene-graph, so the method would need to be 'if I add this node to this parent, what will be the node's bounds?'. To make this work on the CSS side would require decoupling the 'css graph' from the scene-graph. RT-30894 touches on that. > > On Jul 3, 2013, at 8:33 AM, Martin Sladecek wrote: > > >> Hi, >> >> JIRA: https://javafx-jira.kenai.com/browse/RT-31133 >> >> I propose a single method "public final void validate()" to be added to Node class. The validate method would ensure that the metrics (layout bounds) of the Node are valid with regards to the current scenegraph (CSS & layout). >> >> Together with this change, Parent.layout() will be deprecated. >> >> In my current implementation, validate() method works only if the Node is in a Scene. To make it work without a Scene, we'd need to do do some small adjustments to CSS (doesn't work with getScene() == null). But I'm not sure if such feature would be useful. >> >> Regards, >> -Martin >> > > From philip.race at oracle.com Wed Jul 3 07:28:47 2013 From: philip.race at oracle.com (Phil Race) Date: Wed, 03 Jul 2013 07:28:47 -0700 Subject: [API Review]: Node validation In-Reply-To: <51D42F38.1040504@oracle.com> References: <51D41A07.9010008@oracle.com> <9B5F0E2F-6B40-4180-8E45-DD69E4D66BC3@oracle.com> <51D42F38.1040504@oracle.com> Message-ID: <51D4351F.7020309@oracle.com> I think SceneBuilder would like this, and I know printing would love it :-) -phil. On 7/3/13 7:03 AM, Kevin Rushforth wrote: > +1 > > This would allow apps to dispense with the following workaround when > taking a snapshot: > > // create a dummy scene so layout and CSS will work > new Scene(new Group(node)); > > node.shapshot(...) > > -- Kevin > > > David Grieve wrote: >> Hi Martin, >> >> With regard to having this work without a Scene? >> >> I think having a method that would layout a node without the node >> actually having to be part of the scene-graph would be _very_ >> useful. Often times, developers will do the show-hide trick or >> add-remove trick to get a node's bounds before the node is shown for >> real. SceneBuilder has to do tricks like these to deal with popup >> controls, like tooltip. >> What styles are applied from CSS depends on where the node is in the >> scene-graph, so the method would need to be 'if I add this node to >> this parent, what will be the node's bounds?'. To make this work on >> the CSS side would require decoupling the 'css graph' from the >> scene-graph. RT-30894 touches on that. >> On Jul 3, 2013, at 8:33 AM, Martin Sladecek >> wrote: >> >>> Hi, >>> >>> JIRA: https://javafx-jira.kenai.com/browse/RT-31133 >>> >>> I propose a single method "public final void validate()" to be added >>> to Node class. The validate method would ensure that the metrics >>> (layout bounds) of the Node are valid with regards to the current >>> scenegraph (CSS & layout). >>> >>> Together with this change, Parent.layout() will be deprecated. >>> >>> In my current implementation, validate() method works only if the >>> Node is in a Scene. To make it work without a Scene, we'd need to do >>> do some small adjustments to CSS (doesn't work with getScene() == >>> null). But I'm not sure if such feature would be useful. >>> >>> Regards, >>> -Martin >> From tobi at ultramixer.com Wed Jul 3 09:03:47 2013 From: tobi at ultramixer.com (Tobi) Date: Wed, 3 Jul 2013 18:03:47 +0200 Subject: JavaFX8 on iPhone! It works! Message-ID: It works! Latest JavaFX 8 (gradle based) with RoboVM on a real iPhone with native text rendering and JFX CSS rendering! -------------- next part -------------- Tobi From niklas at therning.org Wed Jul 3 09:07:01 2013 From: niklas at therning.org (Niklas Therning) Date: Wed, 3 Jul 2013 18:07:01 +0200 Subject: JavaFX8 on iPhone! It works! In-Reply-To: References: Message-ID: Awesome! Can you please post the build instructions somewhere? I'm not getting a long with gradle at all. :-( On Wed, Jul 3, 2013 at 6:03 PM, Tobi wrote: > It works! Latest JavaFX 8 (gradle based) with RoboVM on a real iPhone with > native text rendering and JFX CSS rendering! > > > > > Tobi > From Fabrizio.Giudici at tidalwave.it Wed Jul 3 09:14:28 2013 From: Fabrizio.Giudici at tidalwave.it (Fabrizio Giudici) Date: Wed, 03 Jul 2013 18:14:28 +0200 Subject: JavaFX8 on iPhone! It works! In-Reply-To: References: Message-ID: On Wed, 03 Jul 2013 18:07:01 +0200, Niklas Therning wrote: > Awesome! Can you please post the build instructions somewhere? I'm not > getting a long with gradle at all. :-( Please post some photos too... :-) -- Fabrizio Giudici - Java Architect @ Tidalwave s.a.s. "We make Java work. Everywhere." http://tidalwave.it/fabrizio/blog - fabrizio.giudici at tidalwave.it From jack at moxley.co.uk Wed Jul 3 09:16:57 2013 From: jack at moxley.co.uk (John Moxley) Date: Wed, 3 Jul 2013 17:16:57 +0100 Subject: JavaFX8 on iPhone! It works! In-Reply-To: References: Message-ID: <8FC58DA0-FFE7-4D3B-896F-7735445DB52A@moxley.co.uk> Congratulations Jack On 3 Jul 2013, at 17:03, Tobi wrote: > It works! Latest JavaFX 8 (gradle based) with RoboVM on a real iPhone with native text rendering and JFX CSS rendering! > > > > Tobi From steve.x.northover at oracle.com Wed Jul 3 09:43:58 2013 From: steve.x.northover at oracle.com (steve.x.northover at oracle.com) Date: Wed, 03 Jul 2013 12:43:58 -0400 Subject: JavaFX8 on iPhone! It works! In-Reply-To: <8FC58DA0-FFE7-4D3B-896F-7735445DB52A@moxley.co.uk> References: <8FC58DA0-FFE7-4D3B-896F-7735445DB52A@moxley.co.uk> Message-ID: <51D454CE.4070605@oracle.com> Woot! Tobi, did you want to attach a patch to https://javafx-jira.kenai.com/browse/RT-31420 ? This would be much appreciated. Thanks, Steve On 03/07/2013 12:16 PM, John Moxley wrote: > Congratulations > > Jack > > On 3 Jul 2013, at 17:03, Tobi wrote: > >> It works! Latest JavaFX 8 (gradle based) with RoboVM on a real iPhone with native text rendering and JFX CSS rendering! >> >> >> >> Tobi > From danno.ferrin at shemnon.com Wed Jul 3 09:50:33 2013 From: danno.ferrin at shemnon.com (Danno Ferrin) Date: Wed, 3 Jul 2013 10:50:33 -0600 Subject: JavaFX8 on iPhone! It works! In-Reply-To: References: Message-ID: JavaFX 8? Does RoboVM support invokedynamic? That is a big deal if so. On Wed, Jul 3, 2013 at 10:07 AM, Niklas Therning wrote: > Awesome! Can you please post the build instructions somewhere? I'm not > getting a long with gradle at all. :-( > > > On Wed, Jul 3, 2013 at 6:03 PM, Tobi wrote: > > > It works! Latest JavaFX 8 (gradle based) with RoboVM on a real iPhone > with > > native text rendering and JFX CSS rendering! > > > > > > > > > > Tobi > > > From richard.bair at oracle.com Wed Jul 3 09:56:23 2013 From: richard.bair at oracle.com (Richard Bair) Date: Wed, 3 Jul 2013 09:56:23 -0700 Subject: iOS: missing native font lib (a) in SDK directory In-Reply-To: References: Message-ID: > Obviously there's a lot going on with the move to gradle, but we are a few lines of Gradle build code away from JFX on iOS. I'm keen to find out just how well it will run. In the runs I've seen (not on RoboVM) the main bottleneck is in graphics rendering. We don't know specifically why yet, but we have a lot of ideas. Now that Tobi reports FX + RoboVM (including fonts!) is working, I'm eager to see the performance characteristics as well. With the work you've done on the developer workflow and now that we've got an open build running on the device, we are going to need to get organized around measuring, reporting, and fixing performance issues encountered on the device. Likely some of it will be RoboVM related, but there is plenty of optimization to do in Prism as well. We've learned a lot about embedded hardware over the last year or so. Some of the things we've learned: - It is almost *always* fill rate limited - Pixel shader complexity costs you - CPU -> GPU bandwidth is very limited Solving the fill rate issue is huge. The Android team reckons that you can overwrite the same pixel maybe 2x before you start noticeably losing performance, 3x or more and you're dead. It doesn't even matter what it is you are doing per-pixel (could be simply filling each pixel with a solid color). The fact that you are running a pixel shader for 3x or 4x the number of pixels taxes the hardware. So for example, right now I believe we are doing 3x overdraw before we even do anything. I think first we do a clear, then we fill with black, then we fill with the Scene fill color. Then we draw whatever you give us. Obviously this is not optimal! For pixel shader complexity -- you can probably get away with more complex pixel shaders if they are only running 1x per pixel, but when they are running 3x or 4x per pixel then the complexity of the pixel shaders burns you. We did a lot of optimizations here already so hopefully we've got this one in good shape. But just something to be aware of. The CPU -> GPU bandwidth problem is one that is systemic with all these mobile devices. Higher bus speeds == less battery life, so the devices are designed with low bus speeds and this makes transfer of data between CPU and GPU costly. Games will typically do all the transfer once up front (all the graphics assets for a level are loaded up front) and then during the game they are just adjusting the viewport & vertices (often in vertex shaders so as not to pass much data down to the card), etc. Right now we are doing a tremendous amount of communication with the GPU. Ironing this out is the basis for the "super shader" (https://javafx-jira.kenai.com/browse/RT-30741). I would recommend anybody interested in performance keep the "Open Performance Issues" filter on their JIRA dashboard. There is a link to 221 performance issues (most of which are ideas about things to do to improve performance). We also need to close the loop on the other issues we were discussing about jerkiness a couple weeks ago. Richard From tobi at ultramixer.com Wed Jul 3 11:48:54 2013 From: tobi at ultramixer.com (Tobias Bley) Date: Wed, 3 Jul 2013 20:48:54 +0200 Subject: JavaFX8 on iPhone! It works! In-Reply-To: References: Message-ID: <17CB2A9A-A340-4C53-BD83-F08B4E417DC3@ultramixer.com> Am 03.07.2013 um 18:14 schrieb Fabrizio Giudici : > On Wed, 03 Jul 2013 18:07:01 +0200, Niklas Therning wrote: > >> Awesome! Can you please post the build instructions somewhere? I'm not >> getting a long with gradle at all. :-( > > Please post some photos too... :-) > > > -- > Fabrizio Giudici - Java Architect @ Tidalwave s.a.s. > "We make Java work. Everywhere." > http://tidalwave.it/fabrizio/blog - fabrizio.giudici at tidalwave.it From richard.bair at oracle.com Wed Jul 3 12:11:07 2013 From: richard.bair at oracle.com (Richard Bair) Date: Wed, 3 Jul 2013 12:11:07 -0700 Subject: iOS: missing native font lib (a) in SDK directory In-Reply-To: References: Message-ID: <89A6B96D-F937-41EA-92A2-2FC195E7008F@oracle.com> Here is the breakdown of performance issues that I have. The ones I think will lead to decent wins are starred, and Super Shader triple-star'd. This list was pulled from the JIRA filter I previously sent. The point of this post is to give everybody an easy-to-see list of performance related issues (as of a month ago or so). Some of these might now be done, this isn't meant to be comprehensive (although at the time I did this I did visit each and every issue labeled "performance" so it was pretty comprehensive!). Interested in helping out? I'll be glad to give background on any one of these issues and pointers as to how to go about working on any of them. Richard Architecture ? *RT-9363*: Consider reducing conversions between 'FX' API and scene graph API ? *RT-24582*: High frequency refresh and Heavy but low priority updates in the same app (multithreaded render, multi instance?) ? *RT-26492*: Use GCC link time optimization to reduce binary size ? *RT-26531*: Provide independent stage performance ? RT-15083: Replace boolean fields with bit fields ? RT-20397: Remove PGNodes ? RT-23470: Replace java.lang.Math usage in places where precision is not as important ? RT-23741: Add a hint to let scene graph and Prism know that we are animating ? RT-23866: Optimize Raspberry PI build for armv6/VFP ? RT-23867: Mac Glass uses gcc -O3 which is known to produce code with large static footprint ? RT-23868: Glass: Consider collapsing Event classes into a single one. ? RT-24238: Analyze property getters ? RT-29861: Consider replacing Math functions with a faster alternative ? RT-29900: Increased CPU usage on application iconified Decora ? RT-2892: Improve performance of Gaussian-based effects ? RT-2908: Use scaled kernel to improve DropShadow performance for node scale factors < 1 ? RT-5347: Prism: finish drop/inner shadow optimizations ? RT-5420: DropShadow effects significantly affect performance ? RT-6935: ColorAdjust effect consumes a lot of memory which could lead to OOM exception ? RT-8890: Merge and some Blend effects should optimize rendering to destination ? RT-9225, RT-9226, RT-9227: Various effects don't limit the size of the input image when requests are outside the clip ? RT-9432: Some of the hand-tuned software effect peers are not optimized for use with transformed inputs ? RT-9433: The auto-generated software peers for the effects filters do not handle transformed inputs optimally ? RT-9434: Reflection effect does not clip its output image to the requested clip bounds ? RT-9437: Prism and Hardware Swing pipelines could perform PerspectiveTransform directly ? RT-13714: Implement ColorAdjust as a matrix multiplication Text ? *RT-23467*: Evaluate Native Text Engines ? *RT-23578*: Consider pre-populating the glyph cache with data for the default font at the default size(s) ? *RT-23705*: Reduce the amount of glyph data copied via Java from native to see if it helps performance ? *RT-23708*: Investigate if a segmented glyph cache can help performance ? *RT-30158*: Investigate String Measurement in FX (cache results, call less, ?) ? RT-5069: Text node computes complete text layout, even if clipped to a much smaller size ? RT-6475: Need new hints to control how Text node is rendered ? RT-21269: Font#loadFont(String,double) downloads file in the main thread ? RT-23579: Consider using a fixed interval for glyph cache for faster computation ? RT-23580: Add a variant of text smoothing to deal with rotated text at higher versus lower quality ? RT-24329: LCD font smoothing performance ? RT-24565: Beagle: Complex Text implementation generates big swing in frame rate ? RT-24941: 8.0-graphics-scrum-h90: GlyphCache.render() takes up to 200ms which results in jerky rendering ? RT-26111: Use glyph bounding boxes to get visual bounds ? RT-26894: String rendering is less performant than java2D one Scene Graph ? *RT-23346*: Provide API access to multiple hardware screen layers ? RT-5477: Improve performance and reduce garbage when animating gradients ? RT-5525: Group will get bounds change notification when child's bounds change, even if change in child didn't alter bounds of Group ? RT-9390: Improve picking performance using Dmitri's algorithm (or other) ? RT-9571: Consider adding image caching for images loaded from remote URLs ? RT-10604: Recomputing bounds when effects are used even if not dirty ? RT-10681: Reevaluate only changed KeyFrames ? RT-12105: Fix for RT-11562 disables an optimization for calculating content bounds ? RT-12136: SortedList possible optimizations ? RT-12137: FilteredList possible optimizations ? RT-12564: Layout spends considerable time in getManagedChildren ? RT-12715: Node.toBack()/toFront() are inefficient ? RT-13593: Performance of PathTransition sucks ? RT-19221: Padding for round cap could be optimized in Line ? RT-19222: Optimize impl_configShape of Path ? RT-20455: Do not always recreate the whole geometry in calls to impl_configShape ? RT-23312: OutOfMemoryError after pressing Ctrl+Alt+Del or minimizing the window whilst animating a canvas ? RT-24587: Changing a single child of FlowLayout is slower than changing all children ? RT-26007: Mouse event post-processing does unnecessary work, may be incorrect altogether ? RT-29717: Do not wrap notifications in ObservableList wrappers when no listeners are set Prism ? *RT-15118*: Need to consider architectural changes for doing transforms in prism ? *RT-15839*: Complex animated content in a ScrollPane is jerky although little is seen ? *RT-17396*: Shader based 2D path rendering ? *RT-17582*: Render the scene using retained data structures ? *RT-20356*: PresentingPainter and UploadingPainter disregarding dirty clip rect ? *RT-20405*: Improve Path rendering performance ? *RT-23371*: FB: Render windows on separate hardware layers ? *RT-23450*: Improve performance of Prism rendering and clipping ? *RT-23462*: Create "CommandBuffer" for storing graphics drawing commands in Prism ? *RT-24168*: View.uploadPixels could take a source rectangle to upload only a portion of the pixels ? *RT-30271*: No culling if the only dirty region contains the clip ? *RT-30361*: Consider rendering directly to frame buffer instead of RTT ? *RT-30440*: Eliminate redundant OpenGL calls ? ***RT-30741***: Super Shader ? *RT-30746*: don't fill transparent rectangles, cache a more textures to avoid buffer flush ? *RT-30748*: Use Vertex Shader to provide clipping instead of Scissor test ? RT-5835: Fix for RT-5788 disabled an optimization for anti-aliased rectangles ? RT-6968: Prism should support 2-byte gray-alpha .png format ? RT-8722: Strokes and fills of Paths slower than flash ? RT-9682: Optimize shadow effects for rounded rectangles ? RT-10369: Optimize blurs in shaders ? RT-12400: Delays in D3D Present affect performance ? RT-14058: Consider possibility to eliminate using of BasicStroke.tmpMiter ? RT-14216: MultipleArrayGradient uses a lot of memory ? RT-14358: Insertion sort in OpenPisces ScanlineIterator may be very inefficient ? RT-14421: Branch YCbCr shader may reduce performance on slower hardware ? RT-15516: image data associated with cached nodes that are removed from a scene are not aggressively released ? RT-17507: Optimize non-uniform round rect rendering in Regions ? RT-17510: Improve performance of rendering a TRANSPARENT stage on Windows 7 ? RT-17551: MacOS: Optimize using lockFocusIfCanDraw ? RT-18060: Evaluate whether enabling multithreaded GL engine on Mac benefits Mac JFX performance ? RT-18140: Consider using nearest-neighbor when smooth=false for SW pipeline to improve performance ? RT-18417: Investigate Mac runtime code for possible native code optimizations using GDC (Grand Dispatch Central) ? RT-19556: Consider removing usage of DirectByteBuffer and ByteBuffer.allocateDirect ? RT-19576: Pixel readback performance for the ES2 pipeline has room for improvement ? RT-21025: iOS: DirtyAreaTest on iOS is slower than we like ? RT-22430: Use 'fillQuad' vs. 'fillRect' for pixel aligned rectangular regions ? RT-22431: Optimize Charts drawing to use filled quads ? RT-23464: Reduce Vertex Buffer Overhead: Constant Color Attribute vs. Array Color Attributes ? RT-23465: Using TriangleStrip instead of Triangles ? RT-23466: Improve Vertex Buffer Usage: Structure of Arrays vs. Array of Structures ? RT-23471: Add new Etched effect ? RT-23574: Add support for tiled rendering of textures (both for performance and functional reasons) ? RT-23575: Need a more compact representation for text data ? RT-23576: Ability to add hand-coded shaders (bypassing JSL) ? RT-23577: Support for geometry shaders on graphics chips that support it ? RT-23581: Add ability to render 9-slice directly in Prism graphics ? RT-23725: Beagleboard: Execute fragment shader on the GPU causes significant drop in performance ? RT-23742: Gradient is slow on embedded systems ? RT-24104: Native Pisces rasterizer is slower on desktop Linux platforms ? RT-24339: Add a short-cut to dirty region code based on parent / child bounds ratio ? RT-24557: ImagePattern is slow on embedded systems ? RT-24624: prism-sw pipeline is up to 90% worse than j2d pipeline ? RT-25166: Path updates in a ScrollPane where content has a Scale transform are 100 times slower ? RT-25603: Mac optimization: Investigate layers async vs sync setting ? RT-25694: Rewrite (AA)TessShapeRep classes in order to avoid unnecessary translations ? RT-25864: New "shared textures" do not share pixel update flags as well as they should ? RT-26531: Provide independent stage performance ? RT-28222: Don't render transparent rectangles ? RT-28305: NGRegion optimizations based on Color.TRANSPARENT are ineffective ? RT-28670: Create a roundrect renderer that uses the new "texture primitive" based shaders used currently for ellipses and rects ? RT-28752: Mac: 8.0-graphics-scrum-792: up to 30% performance regression on MacOS ? RT-29542: FX 8 3D: Mesh computation code needs major clean up or redo ? RT-30360: Create fewer temporary objects in Quantum ? RT-30589: preprocess remove comments from ES2 3D shaders ? RT-30710: 8.0-graphics-scrum-1194: 20% performance regression in Bitmap benchmarks in SW pipeline ? RT-30745: Remove Flush & Finish in ES2SwapChain ? RT-30747: Introduce a low cost clipping API for simple rectangle based clipping Media ? RT-11379: video playing with MediaPlayer slows down refreshes to Java2D component ? RT-16420: MediaPlayer/View loses frames from video streams encoded at 25,30,60 fps ? RT-17861: Use shaders to assist video decoding on the GPU ? RT-20890: Too many open files and Memory leak Web ? RT-24320: WebView draws entire back buffer on screen upon every repaint ? RT-24998: Please enable Javascript JIT for 64 bit ? RT-16848: Optimize Unicode implementation ? RT-18909: Extend support for composite operations in Prism Graphics ? RT-19625: Better support for Webnode to improve rendering performance ? RT-20501: Prism needs to provide proper APIs to support the Webnode team to improve webnode rendering performance ? RT-21629: Slow and never-ending rendering of page ? RT-21722: html5 video inside is slow ? RT-22008: Zero size WCGraphicsPrismContext.Layer handling is not perfectly efficient ? RT-30083: netflix.com: vertical scrollbar is tremendously slow Threading ? *RT-2893*: Enable multi-threaded processing of software-based effects when >= 2 cores available ? *RT-26702*: Poor DisplacementMap effect performance on Mac Interop ? RT-22133: Performance: JavaFX Webview QuantumRenderer$PipelineRunnable.run() and WinApplication._runLoop() take up more than half the time in a JDeveloper operation ? RT-22567: Minor tweaks to FX/Swing painting ? RT-22705: Simple animation runs at lower FPS when embedded into JFXPanel ? RT-24278: JFXPanel with simple animation consumes entire CPU core ? RT-26993: Noticeable jerkiness when running JFXPanelBitmapBenchmark on MacOS Benchmarks ? RT-7644: Math.floor and Math.ceil take up a lot of cpu time Controls ? *RT-24105*: TabPane renders content of all tabs even only one is active ? *RT-30452*: Setting clip on TableCellSkinBase is incorrect ? *RT-30552*: Label: resolve LabelSkinBase's use of clips for text ? *RT-30568*: Reduce unnecessary calls to setManaged(true) in Controls ? *RT-30576*: Parent: add new public layout method, optimized to only layout this parent and it's children ? *RT-30648*: Investigate API for TabPane's Tab Content Loading policy ? RT-9094: VirtualFlow requests data from model too frequently ? RT-10034: Performance optimizations around SelectionModel implementations ? RT-13792: Investigate caching in controls (NOTE: Unlikely to be any win) ? RT-16529: Memory Leak: event handlers of root TreeItem are not removed ? RT-16853: TextArea: performance issue ? RT-18934: TextArea.appendText/deleteText may be very slow ? RT-20101: [ComboBox] Custom string converter is applied too many times ? RT-23825: Controls need a lifecycle API ? RT-24102: CSS Loading: Split caspian.css into multiple smaller component parts. ? RT-25652: Memory Leak in TabPane ? RT-25801: 8.0-controls-scrum-h81: 25% performance regression in Controls.RadioButton on mac-low end machine ? RT-26716: Performance of scrolling TreeView tail is much more slowly when scrolling TreeView head ? RT-26999: 8.0-controls-scrum-h122: up to 20% regression in some Controls.TableView benchmarks ? RT-27725: 8.0-controls-scrum-h186: 22% footprint increase in ChoiceBox control ? RT-27986: Spinning progress indicator overlapping an image plays havoc with RDP ? RT-29055: java.lang.OutOfMemoryError: Java heap space error in switching between caspian to modena theme in Modena App ? RT-30305: 8.0-controls-scrum-569: 42% performance regression in Controls.ListView-Keyboard ? RT-30713: VirtualFlow creates new cells in some instances ? RT-30824: TableView TableCell memory issue in javaFX 8.x Embedded ? *RT-30721*: Provide flag to turn on PRESERVED mode in EGL ? *RT-30722*: Provide an option for 16-bit opaque frame buffer on the Raspberry PI ? *RT-30723*: EGL: Disable clipping when clearing frame buffer ? RT-24685: Virtual keyboard initialization is slow ? RT-24937: Use a C/C++ compiler that can take advantage of NEON ? RT-25943: Need to consider specific OpenGL extension on embedded system ? RT-25995: Prism porting layer function to query platform VRAM ? RT-27590: Evaluate effect of ProGuard on runtime size ? RT-28012: EGLFB: RAM allocation should be reduced ? RT-28029: Improve EGLFB dialog / popup response time ? RT-30719: Enabled video underlays on Raspberry PI CSS ? *RT-28966*: CSS creates new objects for complex values which trigger redundant processing including rendering ? *RT-30381*: fx8.0-b86: CSS code for modena css rules with multiple selectors is not optimized ? RT-11506: Short circuit CSS if CSS is not relevant to the Node ? RT-11881: Some css selectors in caspian.css will turn the CSS processing on for all the parents ? RT-11882: Under current conditions, every Node is processing CSS ? RT-23468: Remove use of List in CSS internals in favor of arrays ? RT-30817: lazy deserialization of css declarations ? RT-30818: CSS: Avoid creating ObservableList for declarations and selectors in Rule FXML ? *RT-23527*: Compile FXML to .class file Tooling ? RT-13312: Develop GLBenchmark to get baseline performance on any particular hardware ? RT-13313: Performance framework (GPU usage) ? RT-18326: Implement performance counters (prism.printStats) feature for prism-es2 pipe ? RT-26560: Option to track texture memory allocation ? RT-30651: 8.0-graphics-scrum-1216: full speed mode seems to be broken Startup ? RT-14930: JNLP-start consumes large amount of time ? RT-20159: Startup regression in controls scrum #371 On Jul 3, 2013, at 9:56 AM, Richard Bair wrote: >> Obviously there's a lot going on with the move to gradle, but we are a few lines of Gradle build code away from JFX on iOS. I'm keen to find out just how well it will run. > > In the runs I've seen (not on RoboVM) the main bottleneck is in graphics rendering. We don't know specifically why yet, but we have a lot of ideas. Now that Tobi reports FX + RoboVM (including fonts!) is working, I'm eager to see the performance characteristics as well. > > With the work you've done on the developer workflow and now that we've got an open build running on the device, we are going to need to get organized around measuring, reporting, and fixing performance issues encountered on the device. Likely some of it will be RoboVM related, but there is plenty of optimization to do in Prism as well. > > We've learned a lot about embedded hardware over the last year or so. Some of the things we've learned: > - It is almost *always* fill rate limited > - Pixel shader complexity costs you > - CPU -> GPU bandwidth is very limited > > Solving the fill rate issue is huge. The Android team reckons that you can overwrite the same pixel maybe 2x before you start noticeably losing performance, 3x or more and you're dead. It doesn't even matter what it is you are doing per-pixel (could be simply filling each pixel with a solid color). The fact that you are running a pixel shader for 3x or 4x the number of pixels taxes the hardware. > > So for example, right now I believe we are doing 3x overdraw before we even do anything. I think first we do a clear, then we fill with black, then we fill with the Scene fill color. Then we draw whatever you give us. Obviously this is not optimal! > > For pixel shader complexity -- you can probably get away with more complex pixel shaders if they are only running 1x per pixel, but when they are running 3x or 4x per pixel then the complexity of the pixel shaders burns you. We did a lot of optimizations here already so hopefully we've got this one in good shape. But just something to be aware of. > > The CPU -> GPU bandwidth problem is one that is systemic with all these mobile devices. Higher bus speeds == less battery life, so the devices are designed with low bus speeds and this makes transfer of data between CPU and GPU costly. Games will typically do all the transfer once up front (all the graphics assets for a level are loaded up front) and then during the game they are just adjusting the viewport & vertices (often in vertex shaders so as not to pass much data down to the card), etc. Right now we are doing a tremendous amount of communication with the GPU. Ironing this out is the basis for the "super shader" (https://javafx-jira.kenai.com/browse/RT-30741). > > I would recommend anybody interested in performance keep the "Open Performance Issues" filter on their JIRA dashboard. There is a link to 221 performance issues (most of which are ideas about things to do to improve performance). We also need to close the loop on the other issues we were discussing about jerkiness a couple weeks ago. > > Richard From richard.bair at oracle.com Wed Jul 3 12:22:53 2013 From: richard.bair at oracle.com (Richard Bair) Date: Wed, 3 Jul 2013 12:22:53 -0700 Subject: [API Review]: Node validation In-Reply-To: <51D41A07.9010008@oracle.com> References: <51D41A07.9010008@oracle.com> Message-ID: <0674AFB2-ADCF-4890-A939-4F428231A6F5@oracle.com> Why does layout() need to be deprecated? Find Usages from IntelliJ reports 481 usages (139 in controls 2 in designTime, 339 in Graphics, including tests and such). We should only deprecate the method if it should not be used anymore by anybody for any reason, in which case we need to replace all of our own internal usages before we deprecate it (or we will just add to our compiler warning total). It seems like layout() is used for something different than validate(), unless we are collapsing our CSS & layout passes into a single pass? Richard On Jul 3, 2013, at 5:33 AM, Martin Sladecek wrote: > Hi, > > JIRA: https://javafx-jira.kenai.com/browse/RT-31133 > > I propose a single method "public final void validate()" to be added to Node class. The validate method would ensure that the metrics (layout bounds) of the Node are valid with regards to the current scenegraph (CSS & layout). > > Together with this change, Parent.layout() will be deprecated. > > In my current implementation, validate() method works only if the Node is in a Scene. To make it work without a Scene, we'd need to do do some small adjustments to CSS (doesn't work with getScene() == null). But I'm not sure if such feature would be useful. > > Regards, > -Martin From zonski at gmail.com Wed Jul 3 12:47:08 2013 From: zonski at gmail.com (Daniel Zwolenski) Date: Thu, 4 Jul 2013 05:47:08 +1000 Subject: JavaFX8 on iPhone! It works! In-Reply-To: References: Message-ID: Tobi, this is awesome! But you've left us hanging :) Did you use the 78 backport for this or just straight out J8? What are the steps to reproduce your working build? Very darn exciting! On 04/07/2013, at 2:50 AM, Danno Ferrin wrote: > JavaFX 8? Does RoboVM support invokedynamic? That is a big deal if so. > > On Wed, Jul 3, 2013 at 10:07 AM, Niklas Therning wrote: > >> Awesome! Can you please post the build instructions somewhere? I'm not >> getting a long with gradle at all. :-( >> >> >> On Wed, Jul 3, 2013 at 6:03 PM, Tobi wrote: >> >>> It works! Latest JavaFX 8 (gradle based) with RoboVM on a real iPhone >> with >>> native text rendering and JFX CSS rendering! >>> >>> >>> >>> >>> Tobi >>> >> From tobi at ultramixer.com Wed Jul 3 13:44:45 2013 From: tobi at ultramixer.com (Tobias Bley) Date: Wed, 3 Jul 2013 22:44:45 +0200 Subject: JavaFX8 on iPhone! It works! In-Reply-To: References: Message-ID: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> Hi Guys, I used RoboVM 0.0.2 and the current OpenJFX8 from mercurial graphics branch.... So no 78 backport. I will write a blog post on blog.software4java.com until tomorrow... Currently the performance is very limited - as Richard told too. I?m testing now all the basic JFX controls (like button, RadioButton, CheckBox, ListView, TableView, ...). Best regards, Tobi Am 03.07.2013 um 21:47 schrieb Daniel Zwolenski : > Tobi, this is awesome! But you've left us hanging :) > > Did you use the 78 backport for this or just straight out J8? > > What are the steps to reproduce your working build? > > Very darn exciting! > > > > On 04/07/2013, at 2:50 AM, Danno Ferrin wrote: > >> JavaFX 8? Does RoboVM support invokedynamic? That is a big deal if so. >> >> On Wed, Jul 3, 2013 at 10:07 AM, Niklas Therning wrote: >> >>> Awesome! Can you please post the build instructions somewhere? I'm not >>> getting a long with gradle at all. :-( >>> >>> >>> On Wed, Jul 3, 2013 at 6:03 PM, Tobi wrote: >>> >>>> It works! Latest JavaFX 8 (gradle based) with RoboVM on a real iPhone >>> with >>>> native text rendering and JFX CSS rendering! >>>> >>>> >>>> >>>> >>>> Tobi >>>> >>> From parvathi.somashekar at oracle.com Wed Jul 3 14:03:56 2013 From: parvathi.somashekar at oracle.com (Paru Somashekar) Date: Wed, 03 Jul 2013 14:03:56 -0700 Subject: API REVIEW for TabPane tab content loading and fixed content size Message-ID: <51D491BC.5030309@oracle.com> JIRA : https://javafx-jira.kenai.com/browse/RT-24105 & https://javafx-jira.kenai.com/browse/RT-30648 The following is API to control how tab content gets loaded for a TabPane in order to improve startup time and runtime performance for a TabPane. Jonathan has already reviewed the following API and I have incorporated his feedback. Thanks Jonathan. TabContentSceneGraphPolicy is a static enum within TabPane ------------------------------------------------------------ public static enum TabContentSceneGraphPolicy { //The content all the tabs get loaded up front with no optimization. If there are a lot of tabs and content is large - this could potentially cause slow start up time. This is the default behavior. ALL_TABS, //Only the content of the selected tab will be loaded on startup and other tabs get loaded on selection. When a new tab is selected, its content is loaded into the scenegraph and the content of the previously selected tab is unloaded from the scenegraph. SELECTED_TAB, //Only the content of the selected tab will be loaded at startup and content of other tabs get loaded lazily in the background. Hence there is no loading and unloading of tab content when different tabs are selected as in the case of SELECTED_TAB option. SELECTED_TAB_WITH_LAZY_LOADING } -------------------------------------------------------------- API to specify fixed Width/Height/Size for tab content. private DoubleProperty fixedWidth public final void setFixedWidth(double value) public final double getFixedWidth() public final DoubleProperty fixedWidthProperty() private DoubleProperty fixedHeight public final void setFixedHeight(double value) public final double getFixedHeight() public final DoubleProperty fixedHeightProperty() public final void setFixedSize(double width, double height) ---------------------------------------------------------------- Notes on performance considerations The TabPane offers some performance optimizations in the area of tab content loading. Basically the default policy is to load the contents of all specified tabs. If the TabPane consists of a large number of big content tabs, then this could lead to a potential slow start up time, as it will have to spend some time in loading all the content up front before starting up. In such situations, the TabPane allows specification of the TabContentSceneGraphPolicy which determines how the tab contents are loaded : all tabs, selected tab only, or selected tab and lazy loading of the rest of the tabs. The selected tab only option also ensures the content of the previously selected tab is removed from the scenegraph. This gives the added benefit of ensuring that no scenegraph related activities are performed on any of the tab contents that is not currently selected. However this could potentially cause the tab switch operation to be a bit slow. In order to achieve faster tab switch operation, the third option is provided where the content of the rest of the tabs are loaded lazily in the background. However the lazy loading option could result in a slower runtime performance. Another area of optimization is provided for specifying a fixed width / height / size of the tab content area. If a fixed value is specified, measurement of the tab content sizes for the purpose of setting the available space is eliminated, thus providing faster resize operations on windows that contain a TabPane in them. --------------------------------------------------------------- There might be a situation where the TabContentSceneGraphPolicy is set to SELECTED_TAB in which case only the content of the selected tab is loaded and user does not set fixed size. In such a case, we can either do one of the following, 1) hardcode a fixed size if it is not already set 2) measure the selected tab only and grow in size only if the size of the next selected tab is bigger than the previous one. 3) throw an exception if SELECTED_TAB is chosen and fixed size is not set. I prefer option either 1 or 2, that way we do not force the developer to set a fixed size for the tab content. Thoughts suggestions welcome, I shall go with option 1 if I don't hear any. From zonski at gmail.com Wed Jul 3 14:35:18 2013 From: zonski at gmail.com (Daniel Zwolenski) Date: Thu, 4 Jul 2013 07:35:18 +1000 Subject: API REVIEW for TabPane tab content loading and fixed content size In-Reply-To: <51D491BC.5030309@oracle.com> References: <51D491BC.5030309@oracle.com> Message-ID: Hi Paru, What do you mean by 'loaded'? Currently we create the tabs and then manually add them doing something like: TabPane tabPane = new TabPane(); tabPane.getTabs().add(new Tab("Tab1")); Wouldn't all the 'loading' have already happened before TabPane gets a look in? Or are you talking about when the tabs get added to the scene? Cheers, Dan On Thu, Jul 4, 2013 at 7:03 AM, Paru Somashekar < parvathi.somashekar at oracle.com> wrote: > > JIRA : https://javafx-jira.kenai.com/**browse/RT-24105& > https://javafx-jira.kenai.com/**browse/RT-30648 > > The following is API to control how tab content gets loaded for a TabPane > in order to improve startup time and runtime performance for a TabPane. > > Jonathan has already reviewed the following API and I have incorporated > his feedback. Thanks Jonathan. > > TabContentSceneGraphPolicy is a static enum within TabPane > ------------------------------**------------------------------ > public static enum TabContentSceneGraphPolicy { > //The content all the tabs get loaded up front with no > optimization. If there are a lot of tabs and content is large - this could > potentially cause slow start up time. This is the default behavior. > ALL_TABS, > //Only the content of the selected tab will be loaded on startup > and other tabs get loaded on selection. When a new tab is selected, its > content is loaded into the scenegraph and the content of the previously > selected tab is unloaded from the scenegraph. > SELECTED_TAB, > //Only the content of the selected tab will be loaded at startup > and content of other tabs get loaded lazily in the background. Hence there > is no loading and unloading of tab content when different tabs are selected > as in the case of SELECTED_TAB option. > SELECTED_TAB_WITH_LAZY_LOADING > } > ------------------------------**------------------------------**-- > API to specify fixed Width/Height/Size for tab content. > > private DoubleProperty fixedWidth > public final void setFixedWidth(double value) > public final double getFixedWidth() > public final DoubleProperty fixedWidthProperty() > > private DoubleProperty fixedHeight > public final void setFixedHeight(double value) > public final double getFixedHeight() > public final DoubleProperty fixedHeightProperty() > > public final void setFixedSize(double width, double height) > ------------------------------**------------------------------**---- > Notes on performance considerations > > The TabPane offers some performance optimizations in the area of tab > content loading. Basically the default policy is to load the contents of > all specified tabs. If the TabPane consists of a large number of big > content tabs, then this could lead to a potential slow start up time, as it > will have to spend some time in loading all the content up front before > starting up. > > In such situations, the TabPane allows specification of the > TabContentSceneGraphPolicy which determines how the tab contents are loaded > : all tabs, selected tab only, or selected tab and lazy loading of the rest > of the tabs. The selected tab only option also ensures the content of the > previously selected tab is removed from the scenegraph. This gives the > added benefit of ensuring that no scenegraph related activities are > performed on any of the tab contents that is not currently selected. > However this could potentially cause the tab switch operation to be a bit > slow. In order to achieve faster tab switch operation, the third option is > provided where the content of the rest of the tabs are loaded lazily in the > background. However the lazy loading option could result in a slower > runtime performance. > > Another area of optimization is provided for specifying a fixed width / > height / size of the tab content area. If a fixed value is specified, > measurement of the tab content sizes for the purpose of setting the > available space is eliminated, thus providing faster resize operations on > windows that contain a TabPane in them. > ------------------------------**------------------------------**--- > > There might be a situation where the TabContentSceneGraphPolicy is set to > SELECTED_TAB in which case only the content of the selected tab is loaded > and user does not set fixed size. In such a case, we can either do one of > the following, > 1) hardcode a fixed size if it is not already set > 2) measure the selected tab only and grow in size only if the size of the > next selected tab is bigger than the previous one. > 3) throw an exception if SELECTED_TAB is chosen and fixed size is not set. > I prefer option either 1 or 2, that way we do not force the developer to > set a fixed size for the tab content. > Thoughts suggestions welcome, I shall go with option 1 if I don't hear any. > From parvathi.somashekar at oracle.com Wed Jul 3 15:06:00 2013 From: parvathi.somashekar at oracle.com (Paru Somashekar) Date: Wed, 03 Jul 2013 15:06:00 -0700 Subject: API REVIEW for TabPane tab content loading and fixed content size In-Reply-To: References: <51D491BC.5030309@oracle.com> Message-ID: <51D4A048.5040906@oracle.com> Hi Daniel, Yes, loading is referring to when the tab content gets added to the scene. The API to add tabs to TabPane remain the same - the new API is only proposing a policy that controls how they get added & removed from the scenegraph. thanks, Paru. On 7/3/13 2:35 PM, Daniel Zwolenski wrote: > Hi Paru, > > What do you mean by 'loaded'? > > Currently we create the tabs and then manually add them doing > something like: > > TabPane tabPane = new TabPane(); > tabPane.getTabs().add(new Tab("Tab1")); > > Wouldn't all the 'loading' have already happened before TabPane gets a > look in? Or are you talking about when the tabs get added to the scene? > > Cheers, > Dan > > > > > On Thu, Jul 4, 2013 at 7:03 AM, Paru Somashekar > > wrote: > > > JIRA : https://javafx-jira.kenai.com/ browse/RT-24105 > & > https://javafx-jira.kenai.com/ browse/RT-30648 > > > The following is API to control how tab content gets loaded for a > TabPane in order to improve startup time and runtime performance > for a TabPane. > > Jonathan has already reviewed the following API and I have > incorporated his feedback. Thanks Jonathan. > > TabContentSceneGraphPolicy is a static enum within TabPane > ------------------------------ ------------------------------ > public static enum TabContentSceneGraphPolicy { > //The content all the tabs get loaded up front with no > optimization. If there are a lot of tabs and content is large - > this could potentially cause slow start up time. This is the > default behavior. > ALL_TABS, > //Only the content of the selected tab will be loaded on > startup and other tabs get loaded on selection. When a new tab is > selected, its content is loaded into the scenegraph and the > content of the previously selected tab is unloaded from the > scenegraph. > SELECTED_TAB, > //Only the content of the selected tab will be loaded at > startup and content of other tabs get loaded lazily in the > background. Hence there is no loading and unloading of tab content > when different tabs are selected as in the case of SELECTED_TAB > option. > SELECTED_TAB_WITH_LAZY_LOADING > } > ------------------------------ ------------------------------ -- > API to specify fixed Width/Height/Size for tab content. > > private DoubleProperty fixedWidth > public final void setFixedWidth(double value) > public final double getFixedWidth() > public final DoubleProperty fixedWidthProperty() > > private DoubleProperty fixedHeight > public final void setFixedHeight(double value) > public final double getFixedHeight() > public final DoubleProperty fixedHeightProperty() > > public final void setFixedSize(double width, double height) > ------------------------------ ------------------------------ ---- > Notes on performance considerations > > The TabPane offers some performance optimizations in the area of > tab content loading. Basically the default policy is to load the > contents of all specified tabs. If the TabPane consists of a large > number of big content tabs, then this could lead to a potential > slow start up time, as it will have to spend some time in loading > all the content up front before starting up. > > In such situations, the TabPane allows specification of the > TabContentSceneGraphPolicy which determines how the tab contents > are loaded : all tabs, selected tab only, or selected tab and lazy > loading of the rest of the tabs. The selected tab only option also > ensures the content of the previously selected tab is removed from > the scenegraph. This gives the added benefit of ensuring that no > scenegraph related activities are performed on any of the tab > contents that is not currently selected. However this could > potentially cause the tab switch operation to be a bit slow. In > order to achieve faster tab switch operation, the third option is > provided where the content of the rest of the tabs are loaded > lazily in the background. However the lazy loading option could > result in a slower runtime performance. > > Another area of optimization is provided for specifying a fixed > width / height / size of the tab content area. If a fixed value is > specified, measurement of the tab content sizes for the purpose of > setting the available space is eliminated, thus providing faster > resize operations on windows that contain a TabPane in them. > ------------------------------ ------------------------------ --- > > There might be a situation where the TabContentSceneGraphPolicy is > set to SELECTED_TAB in which case only the content of the selected > tab is loaded and user does not set fixed size. In such a case, we > can either do one of the following, > 1) hardcode a fixed size if it is not already set > 2) measure the selected tab only and grow in size only if the size > of the next selected tab is bigger than the previous one. > 3) throw an exception if SELECTED_TAB is chosen and fixed size is > not set. > I prefer option either 1 or 2, that way we do not force the > developer to set a fixed size for the tab content. > Thoughts suggestions welcome, I shall go with option 1 if I don't > hear any. > > From zonski at gmail.com Wed Jul 3 15:23:30 2013 From: zonski at gmail.com (Daniel Zwolenski) Date: Thu, 4 Jul 2013 08:23:30 +1000 Subject: API REVIEW for TabPane tab content loading and fixed content size In-Reply-To: <51D4A048.5040906@oracle.com> References: <51D491BC.5030309@oracle.com> <51D4A048.5040906@oracle.com> Message-ID: I'd probably be a little cautious about the term 'loading' then. In particular, I'd probably read 'LAZY_LOADING' to hint that the actual tabs themselves would be loaded/created lazily (a common use case). Might be just me though. It looks like the 'lazy' option actually does them eagerly (i.e. all on startup - not so lazy :) ), just asynchronously. I wonder if there is a need for one that does them truly 'lazily' (i.e. on selection) much like the SELECTED_TAB but once first loaded it then keeps it there instead of adding and removing each selection. Maybe not the best names below but some ideas: enum TabContentSceneGraphPolicy { // The content all the tabs are *added* to the scenegraph up front with no optimization. If there are a lot of tabs and content is large - this could potentially cause slow start up time. This is the default behavior. ALL_TABS, //Only the content of the selected tab will be *added* to the scenegraph at startup and content of other tabs get *added* *asynchronously* in the background. Hence there is no *adding* and *removing* of tab content when different tabs are selected as in the case of the SELECTED_TAB options. ALL_TABS_ASYNCH, //Only the content of the selected tab will be *added to the ** scenegraph* on startup and other tabs get *added* on selection. When a new tab is selected, its content is *added* into the scenegraph and the content of the previously selected tab is *removed* from the scenegraph. SELECTED_TAB_AND_REMOVE, //Only the content of the selected tab will be *added to the ** scenegraph* on startup and other tabs get *added* on selection. Once added, a Tab is kept in the scenegraph. When a new tab is selected for the first time, its content is *added* into the scenegraph, after that the tab is re-shown when selected again. SELECTED_TAB_AND_KEEP } On Thu, Jul 4, 2013 at 8:06 AM, Paru Somashekar < parvathi.somashekar at oracle.com> wrote: > ** > Hi Daniel, > > Yes, loading is referring to when the tab content gets added to the scene. > The API to add tabs to TabPane remain the same - the new API is only > proposing a policy that controls how they get added & removed from the > scenegraph. > > thanks, > Paru. > > > On 7/3/13 2:35 PM, Daniel Zwolenski wrote: > > Hi Paru, > > What do you mean by 'loaded'? > > Currently we create the tabs and then manually add them doing something > like: > > TabPane tabPane = new TabPane(); > tabPane.getTabs().add(new Tab("Tab1")); > > Wouldn't all the 'loading' have already happened before TabPane gets a > look in? Or are you talking about when the tabs get added to the scene? > > Cheers, > Dan > > > > > On Thu, Jul 4, 2013 at 7:03 AM, Paru Somashekar < > parvathi.somashekar at oracle.com> wrote: > > > JIRA : https://javafx-jira.kenai.com/ browse/RT-24105& > https://javafx-jira.kenai.com/ browse/RT-30648 > > The following is API to control how tab content gets loaded for a TabPane > in order to improve startup time and runtime performance for a TabPane. > > Jonathan has already reviewed the following API and I have incorporated > his feedback. Thanks Jonathan. > > TabContentSceneGraphPolicy is a static enum within TabPane > ------------------------------ ------------------------------ > public static enum TabContentSceneGraphPolicy { > //The content all the tabs get loaded up front with no > optimization. If there are a lot of tabs and content is large - this could > potentially cause slow start up time. This is the default behavior. > ALL_TABS, > //Only the content of the selected tab will be loaded on startup > and other tabs get loaded on selection. When a new tab is selected, its > content is loaded into the scenegraph and the content of the previously > selected tab is unloaded from the scenegraph. > SELECTED_TAB, > //Only the content of the selected tab will be loaded at startup > and content of other tabs get loaded lazily in the background. Hence there > is no loading and unloading of tab content when different tabs are selected > as in the case of SELECTED_TAB option. > SELECTED_TAB_WITH_LAZY_LOADING > } > ------------------------------ ------------------------------ -- > API to specify fixed Width/Height/Size for tab content. > > private DoubleProperty fixedWidth > public final void setFixedWidth(double value) > public final double getFixedWidth() > public final DoubleProperty fixedWidthProperty() > > private DoubleProperty fixedHeight > public final void setFixedHeight(double value) > public final double getFixedHeight() > public final DoubleProperty fixedHeightProperty() > > public final void setFixedSize(double width, double height) > ------------------------------ ------------------------------ ---- > Notes on performance considerations > > The TabPane offers some performance optimizations in the area of tab > content loading. Basically the default policy is to load the contents of > all specified tabs. If the TabPane consists of a large number of big > content tabs, then this could lead to a potential slow start up time, as it > will have to spend some time in loading all the content up front before > starting up. > > In such situations, the TabPane allows specification of the > TabContentSceneGraphPolicy which determines how the tab contents are loaded > : all tabs, selected tab only, or selected tab and lazy loading of the rest > of the tabs. The selected tab only option also ensures the content of the > previously selected tab is removed from the scenegraph. This gives the > added benefit of ensuring that no scenegraph related activities are > performed on any of the tab contents that is not currently selected. > However this could potentially cause the tab switch operation to be a bit > slow. In order to achieve faster tab switch operation, the third option is > provided where the content of the rest of the tabs are loaded lazily in the > background. However the lazy loading option could result in a slower > runtime performance. > > Another area of optimization is provided for specifying a fixed width / > height / size of the tab content area. If a fixed value is specified, > measurement of the tab content sizes for the purpose of setting the > available space is eliminated, thus providing faster resize operations on > windows that contain a TabPane in them. > ------------------------------ ------------------------------ --- > > There might be a situation where the TabContentSceneGraphPolicy is set to > SELECTED_TAB in which case only the content of the selected tab is loaded > and user does not set fixed size. In such a case, we can either do one of > the following, > 1) hardcode a fixed size if it is not already set > 2) measure the selected tab only and grow in size only if the size of the > next selected tab is bigger than the previous one. > 3) throw an exception if SELECTED_TAB is chosen and fixed size is not set. > I prefer option either 1 or 2, that way we do not force the developer to > set a fixed size for the tab content. > Thoughts suggestions welcome, I shall go with option 1 if I don't hear any. > > > > From zonski at gmail.com Wed Jul 3 15:52:38 2013 From: zonski at gmail.com (Daniel Zwolenski) Date: Thu, 4 Jul 2013 08:52:38 +1000 Subject: JavaFX8 on iPhone! It works! In-Reply-To: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> References: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> Message-ID: Trying to catch up to Tobi on this one so I can have some fun with it too. I assume in order to compile the graphics repo of JFX8 I need an OpenJ8 JDK already installed? Are there pre-built bundles for this (for mac) or do I need to checkout and build myself? Does anyone know which repo, and what command line arg should I use to build J8 in this case? On Thu, Jul 4, 2013 at 6:44 AM, Tobias Bley wrote: > Hi Guys, > > I used RoboVM 0.0.2 and the current OpenJFX8 from mercurial graphics > branch.... So no 78 backport. I will write a blog post on > blog.software4java.com until tomorrow... > > Currently the performance is very limited - as Richard told too. I?m > testing now all the basic JFX controls (like button, RadioButton, CheckBox, > ListView, TableView, ...). > > Best regards, > Tobi > > > Am 03.07.2013 um 21:47 schrieb Daniel Zwolenski : > > > Tobi, this is awesome! But you've left us hanging :) > > > > Did you use the 78 backport for this or just straight out J8? > > > > What are the steps to reproduce your working build? > > > > Very darn exciting! > > > > > > > > On 04/07/2013, at 2:50 AM, Danno Ferrin > wrote: > > > >> JavaFX 8? Does RoboVM support invokedynamic? That is a big deal if so. > >> > >> On Wed, Jul 3, 2013 at 10:07 AM, Niklas Therning >wrote: > >> > >>> Awesome! Can you please post the build instructions somewhere? I'm not > >>> getting a long with gradle at all. :-( > >>> > >>> > >>> On Wed, Jul 3, 2013 at 6:03 PM, Tobi wrote: > >>> > >>>> It works! Latest JavaFX 8 (gradle based) with RoboVM on a real iPhone > >>> with > >>>> native text rendering and JFX CSS rendering! > >>>> > >>>> > >>>> > >>>> > >>>> Tobi > >>>> > >>> > > From richard.bair at oracle.com Wed Jul 3 16:11:09 2013 From: richard.bair at oracle.com (Richard Bair) Date: Wed, 3 Jul 2013 16:11:09 -0700 Subject: JavaFX8 on iPhone! It works! In-Reply-To: References: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> Message-ID: Extensive documentation that is mostly correct: https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX https://wiki.openjdk.java.net/display/OpenJFX/Developing+OpenJFX It is still a work in progress but most things you need to know to build is found here. Richard On Jul 3, 2013, at 3:52 PM, Daniel Zwolenski wrote: > Trying to catch up to Tobi on this one so I can have some fun with it too. > > I assume in order to compile the graphics repo of JFX8 I need an OpenJ8 JDK > already installed? Are there pre-built bundles for this (for mac) or do I > need to checkout and build myself? Does anyone know which repo, and what > command line arg should I use to build J8 in this case? > > > > > On Thu, Jul 4, 2013 at 6:44 AM, Tobias Bley wrote: > >> Hi Guys, >> >> I used RoboVM 0.0.2 and the current OpenJFX8 from mercurial graphics >> branch.... So no 78 backport. I will write a blog post on >> blog.software4java.com until tomorrow... >> >> Currently the performance is very limited - as Richard told too. I?m >> testing now all the basic JFX controls (like button, RadioButton, CheckBox, >> ListView, TableView, ...). >> >> Best regards, >> Tobi >> >> >> Am 03.07.2013 um 21:47 schrieb Daniel Zwolenski : >> >>> Tobi, this is awesome! But you've left us hanging :) >>> >>> Did you use the 78 backport for this or just straight out J8? >>> >>> What are the steps to reproduce your working build? >>> >>> Very darn exciting! >>> >>> >>> >>> On 04/07/2013, at 2:50 AM, Danno Ferrin >> wrote: >>> >>>> JavaFX 8? Does RoboVM support invokedynamic? That is a big deal if so. >>>> >>>> On Wed, Jul 3, 2013 at 10:07 AM, Niklas Therning >> wrote: >>>> >>>>> Awesome! Can you please post the build instructions somewhere? I'm not >>>>> getting a long with gradle at all. :-( >>>>> >>>>> >>>>> On Wed, Jul 3, 2013 at 6:03 PM, Tobi wrote: >>>>> >>>>>> It works! Latest JavaFX 8 (gradle based) with RoboVM on a real iPhone >>>>> with >>>>>> native text rendering and JFX CSS rendering! >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> Tobi >>>>>> >>>>> >> >> From zonski at gmail.com Wed Jul 3 16:15:28 2013 From: zonski at gmail.com (Daniel Zwolenski) Date: Thu, 4 Jul 2013 09:15:28 +1000 Subject: JavaFX8 on iPhone! It works! In-Reply-To: References: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> Message-ID: Thanks Richard, in the building for Mac section there is a link to "Install the latest JDK 8 build" that goes to a dead URL (http://jdk8.dev.java.net/). Do you know the correct URL? On Thu, Jul 4, 2013 at 9:11 AM, Richard Bair wrote: > Extensive documentation that is mostly correct: > > https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX > https://wiki.openjdk.java.net/display/OpenJFX/Developing+OpenJFX > > It is still a work in progress but most things you need to know to build > is found here. > > Richard > > On Jul 3, 2013, at 3:52 PM, Daniel Zwolenski wrote: > > > Trying to catch up to Tobi on this one so I can have some fun with it > too. > > > > I assume in order to compile the graphics repo of JFX8 I need an OpenJ8 > JDK > > already installed? Are there pre-built bundles for this (for mac) or do I > > need to checkout and build myself? Does anyone know which repo, and what > > command line arg should I use to build J8 in this case? > > > > > > > > > > On Thu, Jul 4, 2013 at 6:44 AM, Tobias Bley wrote: > > > >> Hi Guys, > >> > >> I used RoboVM 0.0.2 and the current OpenJFX8 from mercurial graphics > >> branch.... So no 78 backport. I will write a blog post on > >> blog.software4java.com until tomorrow... > >> > >> Currently the performance is very limited - as Richard told too. I?m > >> testing now all the basic JFX controls (like button, RadioButton, > CheckBox, > >> ListView, TableView, ...). > >> > >> Best regards, > >> Tobi > >> > >> > >> Am 03.07.2013 um 21:47 schrieb Daniel Zwolenski : > >> > >>> Tobi, this is awesome! But you've left us hanging :) > >>> > >>> Did you use the 78 backport for this or just straight out J8? > >>> > >>> What are the steps to reproduce your working build? > >>> > >>> Very darn exciting! > >>> > >>> > >>> > >>> On 04/07/2013, at 2:50 AM, Danno Ferrin > >> wrote: > >>> > >>>> JavaFX 8? Does RoboVM support invokedynamic? That is a big deal if > so. > >>>> > >>>> On Wed, Jul 3, 2013 at 10:07 AM, Niklas Therning >>> wrote: > >>>> > >>>>> Awesome! Can you please post the build instructions somewhere? I'm > not > >>>>> getting a long with gradle at all. :-( > >>>>> > >>>>> > >>>>> On Wed, Jul 3, 2013 at 6:03 PM, Tobi wrote: > >>>>> > >>>>>> It works! Latest JavaFX 8 (gradle based) with RoboVM on a real > iPhone > >>>>> with > >>>>>> native text rendering and JFX CSS rendering! > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> Tobi > >>>>>> > >>>>> > >> > >> > > From zonski at gmail.com Wed Jul 3 16:17:52 2013 From: zonski at gmail.com (Daniel Zwolenski) Date: Thu, 4 Jul 2013 09:17:52 +1000 Subject: JavaFX8 on iPhone! It works! In-Reply-To: References: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> Message-ID: Can I just use this: https://jdk8.java.net/download.html ? On Thu, Jul 4, 2013 at 9:15 AM, Daniel Zwolenski wrote: > Thanks Richard, in the building for Mac section there is a link to > "Install the latest JDK 8 build" that goes to a dead URL ( > http://jdk8.dev.java.net/). Do you know the correct URL? > > > > On Thu, Jul 4, 2013 at 9:11 AM, Richard Bair wrote: > >> Extensive documentation that is mostly correct: >> >> https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX >> https://wiki.openjdk.java.net/display/OpenJFX/Developing+OpenJFX >> >> It is still a work in progress but most things you need to know to build >> is found here. >> >> Richard >> >> On Jul 3, 2013, at 3:52 PM, Daniel Zwolenski wrote: >> >> > Trying to catch up to Tobi on this one so I can have some fun with it >> too. >> > >> > I assume in order to compile the graphics repo of JFX8 I need an OpenJ8 >> JDK >> > already installed? Are there pre-built bundles for this (for mac) or do >> I >> > need to checkout and build myself? Does anyone know which repo, and what >> > command line arg should I use to build J8 in this case? >> > >> > >> > >> > >> > On Thu, Jul 4, 2013 at 6:44 AM, Tobias Bley >> wrote: >> > >> >> Hi Guys, >> >> >> >> I used RoboVM 0.0.2 and the current OpenJFX8 from mercurial graphics >> >> branch.... So no 78 backport. I will write a blog post on >> >> blog.software4java.com until tomorrow... >> >> >> >> Currently the performance is very limited - as Richard told too. I?m >> >> testing now all the basic JFX controls (like button, RadioButton, >> CheckBox, >> >> ListView, TableView, ...). >> >> >> >> Best regards, >> >> Tobi >> >> >> >> >> >> Am 03.07.2013 um 21:47 schrieb Daniel Zwolenski : >> >> >> >>> Tobi, this is awesome! But you've left us hanging :) >> >>> >> >>> Did you use the 78 backport for this or just straight out J8? >> >>> >> >>> What are the steps to reproduce your working build? >> >>> >> >>> Very darn exciting! >> >>> >> >>> >> >>> >> >>> On 04/07/2013, at 2:50 AM, Danno Ferrin >> >> wrote: >> >>> >> >>>> JavaFX 8? Does RoboVM support invokedynamic? That is a big deal if >> so. >> >>>> >> >>>> On Wed, Jul 3, 2013 at 10:07 AM, Niklas Therning < >> niklas at therning.org >> >>> wrote: >> >>>> >> >>>>> Awesome! Can you please post the build instructions somewhere? I'm >> not >> >>>>> getting a long with gradle at all. :-( >> >>>>> >> >>>>> >> >>>>> On Wed, Jul 3, 2013 at 6:03 PM, Tobi wrote: >> >>>>> >> >>>>>> It works! Latest JavaFX 8 (gradle based) with RoboVM on a real >> iPhone >> >>>>> with >> >>>>>> native text rendering and JFX CSS rendering! >> >>>>>> >> >>>>>> >> >>>>>> >> >>>>>> >> >>>>>> Tobi >> >>>>>> >> >>>>> >> >> >> >> >> >> > From steve.x.northover at oracle.com Wed Jul 3 16:31:03 2013 From: steve.x.northover at oracle.com (steve.x.northover at oracle.com) Date: Wed, 03 Jul 2013 19:31:03 -0400 Subject: JavaFX8 on iPhone! It works! In-Reply-To: References: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> Message-ID: <51D4B437.4060303@oracle.com> Yes. On 03/07/2013 7:17 PM, Daniel Zwolenski wrote: > Can I just use this: https://jdk8.java.net/download.html ? > > > On Thu, Jul 4, 2013 at 9:15 AM, Daniel Zwolenski wrote: > >> Thanks Richard, in the building for Mac section there is a link to >> "Install the latest JDK 8 build" that goes to a dead URL ( >> http://jdk8.dev.java.net/). Do you know the correct URL? >> >> >> >> On Thu, Jul 4, 2013 at 9:11 AM, Richard Bair wrote: >> >>> Extensive documentation that is mostly correct: >>> >>> https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX >>> https://wiki.openjdk.java.net/display/OpenJFX/Developing+OpenJFX >>> >>> It is still a work in progress but most things you need to know to build >>> is found here. >>> >>> Richard >>> >>> On Jul 3, 2013, at 3:52 PM, Daniel Zwolenski wrote: >>> >>>> Trying to catch up to Tobi on this one so I can have some fun with it >>> too. >>>> I assume in order to compile the graphics repo of JFX8 I need an OpenJ8 >>> JDK >>>> already installed? Are there pre-built bundles for this (for mac) or do >>> I >>>> need to checkout and build myself? Does anyone know which repo, and what >>>> command line arg should I use to build J8 in this case? >>>> >>>> >>>> >>>> >>>> On Thu, Jul 4, 2013 at 6:44 AM, Tobias Bley >>> wrote: >>>>> Hi Guys, >>>>> >>>>> I used RoboVM 0.0.2 and the current OpenJFX8 from mercurial graphics >>>>> branch.... So no 78 backport. I will write a blog post on >>>>> blog.software4java.com until tomorrow... >>>>> >>>>> Currently the performance is very limited - as Richard told too. I?m >>>>> testing now all the basic JFX controls (like button, RadioButton, >>> CheckBox, >>>>> ListView, TableView, ...). >>>>> >>>>> Best regards, >>>>> Tobi >>>>> >>>>> >>>>> Am 03.07.2013 um 21:47 schrieb Daniel Zwolenski : >>>>> >>>>>> Tobi, this is awesome! But you've left us hanging :) >>>>>> >>>>>> Did you use the 78 backport for this or just straight out J8? >>>>>> >>>>>> What are the steps to reproduce your working build? >>>>>> >>>>>> Very darn exciting! >>>>>> >>>>>> >>>>>> >>>>>> On 04/07/2013, at 2:50 AM, Danno Ferrin >>>>> wrote: >>>>>>> JavaFX 8? Does RoboVM support invokedynamic? That is a big deal if >>> so. >>>>>>> On Wed, Jul 3, 2013 at 10:07 AM, Niklas Therning < >>> niklas at therning.org >>>>>> wrote: >>>>>>>> Awesome! Can you please post the build instructions somewhere? I'm >>> not >>>>>>>> getting a long with gradle at all. :-( >>>>>>>> >>>>>>>> >>>>>>>> On Wed, Jul 3, 2013 at 6:03 PM, Tobi wrote: >>>>>>>> >>>>>>>>> It works! Latest JavaFX 8 (gradle based) with RoboVM on a real >>> iPhone >>>>>>>> with >>>>>>>>> native text rendering and JFX CSS rendering! >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Tobi >>>>>>>>> >>>>> >>> From martin.sladecek at oracle.com Wed Jul 3 23:19:24 2013 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Thu, 04 Jul 2013 08:19:24 +0200 Subject: [API Review]: Node validation In-Reply-To: <0674AFB2-ADCF-4890-A939-4F428231A6F5@oracle.com> References: <51D41A07.9010008@oracle.com> <0674AFB2-ADCF-4890-A939-4F428231A6F5@oracle.com> Message-ID: <51D513EC.20705@oracle.com> Without tests, there are actually only 2 in graphics (Parent, Text) and 2 in controls (XYChart). XYChart seems to invoke the layout of both axes during the layout of the chart. Not sure if this is necessary. The layout() method of children should be normally called after the layoutChildren() of a parent. The Text usage is because of TextFlow and calls layout() on it's parent. Seems very strange to me, but maybe Felipe can provide some additional insight. While I don't think it's necessary to invoke just layout pass on a Node, I don't strongly insist on deprecating the method. Invoking it at any time shouldn't break anything, so it's cannot be misused or anything. -Martin On 07/03/2013 09:22 PM, Richard Bair wrote: > Why does layout() need to be deprecated? Find Usages from IntelliJ reports 481 usages (139 in controls 2 in designTime, 339 in Graphics, including tests and such). We should only deprecate the method if it should not be used anymore by anybody for any reason, in which case we need to replace all of our own internal usages before we deprecate it (or we will just add to our compiler warning total). > > It seems like layout() is used for something different than validate(), unless we are collapsing our CSS & layout passes into a single pass? > > Richard > > On Jul 3, 2013, at 5:33 AM, Martin Sladecek wrote: > >> Hi, >> >> JIRA: https://javafx-jira.kenai.com/browse/RT-31133 >> >> I propose a single method "public final void validate()" to be added to Node class. The validate method would ensure that the metrics (layout bounds) of the Node are valid with regards to the current scenegraph (CSS & layout). >> >> Together with this change, Parent.layout() will be deprecated. >> >> In my current implementation, validate() method works only if the Node is in a Scene. To make it work without a Scene, we'd need to do do some small adjustments to CSS (doesn't work with getScene() == null). But I'm not sure if such feature would be useful. >> >> Regards, >> -Martin From niklas at therning.org Thu Jul 4 05:49:05 2013 From: niklas at therning.org (Niklas Therning) Date: Thu, 4 Jul 2013 14:49:05 +0200 Subject: JavaFX8 on iPhone! It works! In-Reply-To: <51D4B437.4060303@oracle.com> References: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> <51D4B437.4060303@oracle.com> Message-ID: RoboVM doesn't do invokedynamic so I guess this only works if the app doesn't depend on any of the code in JavaFX8 that compiles down to invokedynamic calls. Also, there are quite a few API's available in Java8 (and also Java7) that RoboVM doesn't have. We really need to get the jfx78 backport to compile for iOS and generate the static libs properly. I've just got the font related code in the BrickBreaker sample working using the jfx78 backport. There's still a bit of manual command line work needed to merge the static libraries into universal libraries like the old ant build system did automatically. But it isn't too hard. I'll try to put up instructions on the robovm blog later today. I'll let you know. On Thu, Jul 4, 2013 at 1:31 AM, wrote: > Yes. > > > On 03/07/2013 7:17 PM, Daniel Zwolenski wrote: > >> Can I just use this: https://jdk8.java.net/**download.html? >> >> >> On Thu, Jul 4, 2013 at 9:15 AM, Daniel Zwolenski >> wrote: >> >> Thanks Richard, in the building for Mac section there is a link to >>> "Install the latest JDK 8 build" that goes to a dead URL ( >>> http://jdk8.dev.java.net/). Do you know the correct URL? >>> >>> >>> >>> On Thu, Jul 4, 2013 at 9:11 AM, Richard Bair ** >>> wrote: >>> >>> Extensive documentation that is mostly correct: >>>> >>>> https://wiki.openjdk.java.net/**display/OpenJFX/Building+**OpenJFX >>>> https://wiki.openjdk.java.net/**display/OpenJFX/Developing+**OpenJFX >>>> >>>> It is still a work in progress but most things you need to know to build >>>> is found here. >>>> >>>> Richard >>>> >>>> On Jul 3, 2013, at 3:52 PM, Daniel Zwolenski wrote: >>>> >>>> Trying to catch up to Tobi on this one so I can have some fun with it >>>>> >>>> too. >>>> >>>>> I assume in order to compile the graphics repo of JFX8 I need an OpenJ8 >>>>> >>>> JDK >>>> >>>>> already installed? Are there pre-built bundles for this (for mac) or do >>>>> >>>> I >>>> >>>>> need to checkout and build myself? Does anyone know which repo, and >>>>> what >>>>> command line arg should I use to build J8 in this case? >>>>> >>>>> >>>>> >>>>> >>>>> On Thu, Jul 4, 2013 at 6:44 AM, Tobias Bley >>>>> >>>> wrote: >>>> >>>>> Hi Guys, >>>>>> >>>>>> I used RoboVM 0.0.2 and the current OpenJFX8 from mercurial graphics >>>>>> branch.... So no 78 backport. I will write a blog post on >>>>>> blog.software4java.com until tomorrow... >>>>>> >>>>>> Currently the performance is very limited - as Richard told too. I?m >>>>>> testing now all the basic JFX controls (like button, RadioButton, >>>>>> >>>>> CheckBox, >>>> >>>>> ListView, TableView, ...). >>>>>> >>>>>> Best regards, >>>>>> Tobi >>>>>> >>>>>> >>>>>> Am 03.07.2013 um 21:47 schrieb Daniel Zwolenski : >>>>>> >>>>>> Tobi, this is awesome! But you've left us hanging :) >>>>>>> >>>>>>> Did you use the 78 backport for this or just straight out J8? >>>>>>> >>>>>>> What are the steps to reproduce your working build? >>>>>>> >>>>>>> Very darn exciting! >>>>>>> >>>>>>> >>>>>>> >>>>>>> On 04/07/2013, at 2:50 AM, Danno Ferrin >>>>>>> >>>>>> wrote: >>>>>> >>>>>>> JavaFX 8? Does RoboVM support invokedynamic? That is a big deal if >>>>>>>> >>>>>>> so. >>>> >>>>> On Wed, Jul 3, 2013 at 10:07 AM, Niklas Therning < >>>>>>>> >>>>>>> niklas at therning.org >>>> >>>>> wrote: >>>>>>> >>>>>>>> Awesome! Can you please post the build instructions somewhere? I'm >>>>>>>>> >>>>>>>> not >>>> >>>>> getting a long with gradle at all. :-( >>>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, Jul 3, 2013 at 6:03 PM, Tobi wrote: >>>>>>>>> >>>>>>>>> It works! Latest JavaFX 8 (gradle based) with RoboVM on a real >>>>>>>>>> >>>>>>>>> iPhone >>>> >>>>> with >>>>>>>>> >>>>>>>>>> native text rendering and JFX CSS rendering! >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Tobi >>>>>>>>>> >>>>>>>>>> >>>>>> >>>> > From hang.vo at oracle.com Thu Jul 4 06:19:29 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 04 Jul 2013 13:19:29 +0000 Subject: hg: openjfx/8/graphics/rt: 67 new changesets Message-ID: <20130704135155.4AE6A487C9@hg.openjdk.java.net> Changeset: 1dd6b390520c Author: Chien Yang Date: 2013-06-28 15:40 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/1dd6b390520c Fix to RT-31110: Adding a Button to 3D scene breaks lights calculations in D3D pipeline. Reviewed by Kevin ! modules/graphics/src/main/native-prism-d3d/D3DContext.cc Changeset: 3e7d38132b59 Author: felipe Date: 2013-06-28 16:00 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/3e7d38132b59 RT-31343: Memory leak in glyph outline on coretext (CGPathApply) ! modules/graphics/src/main/native-font/coretext.c Changeset: 52dfad635f0a Author: felipe Date: 2013-06-28 16:12 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/52dfad635f0a [eclipse only] fixing classpath for web and media (temporary fix) ! modules/media/.classpath ! modules/web/.classpath Changeset: 9a613ceb69e9 Author: Yao Wang Date: 2013-06-28 17:43 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/9a613ceb69e9 RT-31178 MeshView displays bad TriangleMesh when the TriangleMesh's points and faces are modified. ! modules/graphics/src/main/java/javafx/scene/shape/TriangleMesh.java Changeset: 748c2ecadc74 Author: Alex X. Lee Date: 2013-06-28 18:09 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/748c2ecadc74 New subdivision surfaces implementation for efficient mesh update. Reimplemented Catmull-Clark subdivision surface for efficient mesh update (i.e. when points changes or options changes). Changed PolygonMeshView for efficient mesh update (i.e. only recompute what have changed). Changed PolygonMesh's texCoords type to observable array. ! apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/Loader.java ! apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/obj/PolyObjImporter.java ! apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/ContentModel.java ! apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/SettingsController.java ! apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/settings.fxml ! apps/experiments/3DViewer/src/main/java/com/javafx/experiments/shape3d/PolygonMesh.java ! apps/experiments/3DViewer/src/main/java/com/javafx/experiments/shape3d/PolygonMeshView.java ! apps/experiments/3DViewer/src/main/java/com/javafx/experiments/shape3d/SkinningMesh.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/shape3d/SubDivision.java + apps/experiments/3DViewer/src/main/java/com/javafx/experiments/shape3d/SubdivisionMesh.java + apps/experiments/3DViewer/src/main/java/com/javafx/experiments/shape3d/symbolic/OriginalPointArray.java + apps/experiments/3DViewer/src/main/java/com/javafx/experiments/shape3d/symbolic/SubdividedPointArray.java + apps/experiments/3DViewer/src/main/java/com/javafx/experiments/shape3d/symbolic/SymbolicPointArray.java + apps/experiments/3DViewer/src/main/java/com/javafx/experiments/shape3d/symbolic/SymbolicPolygonMesh.java + apps/experiments/3DViewer/src/main/java/com/javafx/experiments/shape3d/symbolic/SymbolicSubdivisionBuilder.java Changeset: 26bf7b829a87 Author: Martin Sladecek Date: 2013-07-01 13:27 +0200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/26bf7b829a87 RT-31359 Move Animation code from Base into Graphics - modules/base/src/main/java/com/sun/javafx/animation/TickCalculation.java - modules/base/src/main/java/com/sun/scenario/DelayedRunnable.java - modules/base/src/main/java/com/sun/scenario/Settings.java - modules/base/src/main/java/com/sun/scenario/ToolkitAccessor.java - modules/base/src/main/java/com/sun/scenario/animation/AbstractMasterTimer.java - modules/base/src/main/java/com/sun/scenario/animation/AnimationPulse.java - modules/base/src/main/java/com/sun/scenario/animation/AnimationPulseMBean.java - modules/base/src/main/java/com/sun/scenario/animation/NumberTangentInterpolator.java - modules/base/src/main/java/com/sun/scenario/animation/SplineInterpolator.java - modules/base/src/main/java/com/sun/scenario/animation/shared/AnimationAccessor.java - modules/base/src/main/java/com/sun/scenario/animation/shared/ClipEnvelope.java - modules/base/src/main/java/com/sun/scenario/animation/shared/ClipInterpolator.java - modules/base/src/main/java/com/sun/scenario/animation/shared/FiniteClipEnvelope.java - modules/base/src/main/java/com/sun/scenario/animation/shared/GeneralClipInterpolator.java - modules/base/src/main/java/com/sun/scenario/animation/shared/InfiniteClipEnvelope.java - modules/base/src/main/java/com/sun/scenario/animation/shared/InterpolationInterval.java - modules/base/src/main/java/com/sun/scenario/animation/shared/PulseReceiver.java - modules/base/src/main/java/com/sun/scenario/animation/shared/SimpleClipInterpolator.java - modules/base/src/main/java/com/sun/scenario/animation/shared/SingleLoopClipEnvelope.java - modules/base/src/main/java/com/sun/scenario/animation/shared/TimelineClipCore.java - modules/base/src/main/java/javafx/animation/Animation.java - modules/base/src/main/java/javafx/animation/AnimationAccessorImpl.java - modules/base/src/main/java/javafx/animation/AnimationTimer.java - modules/base/src/main/java/javafx/animation/Interpolatable.java - modules/base/src/main/java/javafx/animation/Interpolator.java - modules/base/src/main/java/javafx/animation/KeyFrame.java - modules/base/src/main/java/javafx/animation/KeyValue.java - modules/base/src/main/java/javafx/animation/Timeline.java - modules/base/src/test/java/com/sun/scenario/SettingsTest.java - modules/base/src/test/java/com/sun/scenario/StandaloneAccessor.java - modules/base/src/test/java/com/sun/scenario/animation/AbstractMasterTimerMock.java - modules/base/src/test/java/com/sun/scenario/animation/AbstractMasterTimerTest.java - modules/base/src/test/java/com/sun/scenario/animation/NumberTangentInterpolatorTest.java - modules/base/src/test/java/com/sun/scenario/animation/SplineInterpolatorTest.java - modules/base/src/test/java/com/sun/scenario/animation/shared/ClipEnvelopeMock.java - modules/base/src/test/java/com/sun/scenario/animation/shared/ClipTest.java - modules/base/src/test/java/com/sun/scenario/animation/shared/FiniteClipEnvelopeTest.java - modules/base/src/test/java/com/sun/scenario/animation/shared/GeneralClipInterpolatorTest.java - modules/base/src/test/java/com/sun/scenario/animation/shared/InfiniteClipEnvelopeTest.java - modules/base/src/test/java/com/sun/scenario/animation/shared/SimpleClipInterpolatorTest.java - modules/base/src/test/java/com/sun/scenario/animation/shared/SingleLoopClipEnvelopeTest.java - modules/base/src/test/java/com/sun/scenario/animation/shared/TimelineClipCoreTest.java - modules/base/src/test/java/javafx/animation/AnimationImpl.java - modules/base/src/test/java/javafx/animation/AnimationMock.java - modules/base/src/test/java/javafx/animation/AnimationPulseReceiverTest.java - modules/base/src/test/java/javafx/animation/AnimationSetRateTest.java - modules/base/src/test/java/javafx/animation/AnimationTest.java - modules/base/src/test/java/javafx/animation/InterpolatorTest.java - modules/base/src/test/java/javafx/animation/KeyFrameTest.java - modules/base/src/test/java/javafx/animation/KeyValueTest.java - modules/base/src/test/java/javafx/animation/TimelineHelper.java - modules/base/src/test/java/javafx/animation/TimelinePlayTest.java - modules/base/src/test/java/javafx/animation/TimelineTest.java + modules/graphics/src/main/java/com/sun/javafx/animation/TickCalculation.java ! modules/graphics/src/main/java/com/sun/javafx/tk/Toolkit.java + modules/graphics/src/main/java/com/sun/scenario/DelayedRunnable.java + modules/graphics/src/main/java/com/sun/scenario/Settings.java + modules/graphics/src/main/java/com/sun/scenario/animation/AbstractMasterTimer.java + modules/graphics/src/main/java/com/sun/scenario/animation/AnimationPulse.java + modules/graphics/src/main/java/com/sun/scenario/animation/AnimationPulseMBean.java + modules/graphics/src/main/java/com/sun/scenario/animation/NumberTangentInterpolator.java + modules/graphics/src/main/java/com/sun/scenario/animation/SplineInterpolator.java + modules/graphics/src/main/java/com/sun/scenario/animation/shared/AnimationAccessor.java + modules/graphics/src/main/java/com/sun/scenario/animation/shared/ClipEnvelope.java + modules/graphics/src/main/java/com/sun/scenario/animation/shared/ClipInterpolator.java + modules/graphics/src/main/java/com/sun/scenario/animation/shared/FiniteClipEnvelope.java + modules/graphics/src/main/java/com/sun/scenario/animation/shared/GeneralClipInterpolator.java + modules/graphics/src/main/java/com/sun/scenario/animation/shared/InfiniteClipEnvelope.java + modules/graphics/src/main/java/com/sun/scenario/animation/shared/InterpolationInterval.java + modules/graphics/src/main/java/com/sun/scenario/animation/shared/PulseReceiver.java + modules/graphics/src/main/java/com/sun/scenario/animation/shared/SimpleClipInterpolator.java + modules/graphics/src/main/java/com/sun/scenario/animation/shared/SingleLoopClipEnvelope.java + modules/graphics/src/main/java/com/sun/scenario/animation/shared/TimelineClipCore.java + modules/graphics/src/main/java/javafx/animation/Animation.java + modules/graphics/src/main/java/javafx/animation/AnimationAccessorImpl.java + modules/graphics/src/main/java/javafx/animation/AnimationTimer.java + modules/graphics/src/main/java/javafx/animation/Interpolatable.java + modules/graphics/src/main/java/javafx/animation/Interpolator.java + modules/graphics/src/main/java/javafx/animation/KeyFrame.java + modules/graphics/src/main/java/javafx/animation/KeyValue.java + modules/graphics/src/main/java/javafx/animation/Timeline.java ! modules/graphics/src/stub/java/javafx/animation/TransitionTest.java + modules/graphics/src/test/java/com/sun/scenario/SettingsTest.java + modules/graphics/src/test/java/com/sun/scenario/animation/AbstractMasterTimerMock.java + modules/graphics/src/test/java/com/sun/scenario/animation/AbstractMasterTimerTest.java + modules/graphics/src/test/java/com/sun/scenario/animation/NumberTangentInterpolatorTest.java + modules/graphics/src/test/java/com/sun/scenario/animation/SplineInterpolatorTest.java + modules/graphics/src/test/java/com/sun/scenario/animation/shared/ClipEnvelopeMock.java + modules/graphics/src/test/java/com/sun/scenario/animation/shared/ClipTest.java + modules/graphics/src/test/java/com/sun/scenario/animation/shared/FiniteClipEnvelopeTest.java + modules/graphics/src/test/java/com/sun/scenario/animation/shared/GeneralClipInterpolatorTest.java + modules/graphics/src/test/java/com/sun/scenario/animation/shared/InfiniteClipEnvelopeTest.java + modules/graphics/src/test/java/com/sun/scenario/animation/shared/SimpleClipInterpolatorTest.java + modules/graphics/src/test/java/com/sun/scenario/animation/shared/SingleLoopClipEnvelopeTest.java + modules/graphics/src/test/java/com/sun/scenario/animation/shared/TimelineClipCoreTest.java + modules/graphics/src/test/java/javafx/animation/AnimationImpl.java + modules/graphics/src/test/java/javafx/animation/AnimationMock.java + modules/graphics/src/test/java/javafx/animation/AnimationPulseReceiverTest.java + modules/graphics/src/test/java/javafx/animation/AnimationSetRateTest.java + modules/graphics/src/test/java/javafx/animation/AnimationTest.java + modules/graphics/src/test/java/javafx/animation/InterpolatorTest.java + modules/graphics/src/test/java/javafx/animation/KeyFrameTest.java + modules/graphics/src/test/java/javafx/animation/KeyValueTest.java + modules/graphics/src/test/java/javafx/animation/TimelineHelper.java + modules/graphics/src/test/java/javafx/animation/TimelinePlayTest.java + modules/graphics/src/test/java/javafx/animation/TimelineTest.java Changeset: a8ff7bef4484 Author: vadim Date: 2013-07-01 15:50 +0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/a8ff7bef4484 RT-28685: Unexpected JVM exit if using corrupted font Reviewed-by: prr, bae ! modules/graphics/src/main/java/com/sun/javafx/font/PrismFontFile.java Changeset: 96a247d0d4a9 Author: tb115823 Date: 2013-07-01 15:22 +0200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/96a247d0d4a9 First android.gradle build script. Reviewed by Rich. ! buildSrc/android.gradle Changeset: e5fcba6f7a82 Author: Martin Soch Date: 2013-07-01 15:51 +0200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/e5fcba6f7a82 SW pipeline: fix for empty glypgs in text rendering (RT-31287) ! modules/graphics/src/main/java/com/sun/pisces/PiscesRenderer.java ! modules/graphics/src/main/java/com/sun/prism/sw/SWGraphics.java Changeset: cce3ee55acc7 Author: Richard Bair Date: 2013-07-01 11:16 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/cce3ee55acc7 Gradle build: Added instructions for setting up android SDK / NDK for FX builds into gradle.properties.template ! gradle.properties.template Changeset: ca6dd89ab169 Author: rbair Date: 2013-07-01 13:31 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/ca6dd89ab169 [mq]: fix-whitespace ! build.gradle Changeset: cc57cf4c2ef6 Author: Felipe Heidrich Date: 2013-07-01 10:43 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/cc57cf4c2ef6 RT-31280 [ Ensemble] NPE in Inner Shadow Effect ! modules/graphics/src/main/java/com/sun/javafx/font/directwrite/DWFontFile.java Changeset: 49c0ef9bf9cd Author: Anthony Petrov Date: 2013-07-02 12:51 +0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/49c0ef9bf9cd RT-30427: Win: Colorpicker rainbow slider provides wrong coordinates ! modules/graphics/src/main/java/com/sun/glass/ui/Window.java Changeset: c395c47d3a3d Author: Vasiliy Baranov Date: 2013-07-02 16:50 +0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/c395c47d3a3d RT-31329: javafx.scene.web.MiscellaneousTest.testRT30835 is failing on Mac ! modules/web/src/test/java/javafx/scene/web/MiscellaneousTest.java Changeset: bbfd3eabb694 Author: Anthony Petrov Date: 2013-07-02 17:00 +0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/bbfd3eabb694 RT-31304: Mac: Glass robot performs shift + tab inconsistently ! modules/graphics/src/main/native-glass/mac/GlassRobot.m Changeset: abef74386876 Author: David Hill Date: 2013-07-02 10:31 -0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/abef74386876 RT-31386 fixing dfb shared lib names ! buildSrc/armv6hf.gradle ! buildSrc/armv6sf.gradle Changeset: 0749a80c0634 Author: Felipe Heidrich Date: 2013-07-02 09:06 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/0749a80c0634 [ECLIPSE ONLY] Removing references to caches/sdk/build/lib/desktop/ ! buildSrc/.classpath ! modules/media/.classpath ! modules/web/.classpath Changeset: 82163cce821d Author: Felipe Heidrich Date: 2013-07-02 10:16 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/82163cce821d [ECLIPSE ONLY] using same pattern to all .classpath ! modules/base/.classpath ! modules/controls/.classpath ! modules/designTime/.classpath ! modules/fxml/.classpath ! modules/fxpackager/.classpath ! modules/graphics/.classpath ! modules/swing/.classpath ! modules/swt/.classpath ! modules/web/.classpath Changeset: 780ac2ab1c8a Author: Alexander Kouznetsov Date: 2013-07-02 16:07 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/780ac2ab1c8a 3DViewer: Fixed model loading from the jar file ! apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/MainController.java Changeset: 877c687b9002 Author: Alexander Kouznetsov Date: 2013-07-02 16:08 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/877c687b9002 3DViewer: Fix for RT-31403 3DViewer app no longer runs after switch to gradle build - apps/experiments/3DViewer/src/main/java/META-INF/MANIFEST.MF - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/main.fxml - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/navigation.fxml - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/settings.fxml - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/viewer.css + apps/experiments/3DViewer/src/main/resources/com/javafx/experiments/jfx3dviewer/main.fxml + apps/experiments/3DViewer/src/main/resources/com/javafx/experiments/jfx3dviewer/navigation.fxml + apps/experiments/3DViewer/src/main/resources/com/javafx/experiments/jfx3dviewer/settings.fxml + apps/experiments/3DViewer/src/main/resources/com/javafx/experiments/jfx3dviewer/viewer.css Changeset: f7175070149f Author: Felipe Heidrich Date: 2013-07-02 17:08 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/f7175070149f [ECLIPSE ONLY] moving reference to jfxrt.jar down to web so it doesn't shadow workspace types ! buildSrc/.classpath ! modules/web/.classpath Changeset: c21ec69893f7 Author: rbair Date: 2013-07-02 18:18 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/c21ec69893f7 IDEA: Removed misc.xml. This appears to be a file that individual dev workspaces alter, which shouldn't be shared. - idea/.idea/misc.xml Changeset: 7a3a3d3990fc Author: snorthov Date: 2013-07-02 22:24 -0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/7a3a3d3990fc IDEA ONLY: change the name of the module to rt, add a missing web resource and the cached jar (to match Eclipse) ! idea/.idea/.name ! idea/web.iml Changeset: a4c88a9fd4c1 Author: snorthov Date: 2013-07-02 22:50 -0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/a4c88a9fd4c1 ECLIPSE [make a soft reference to jfxrt.jar] ! modules/web/.classpath Changeset: 57c32ccb4f62 Author: snorthov Date: 2013-07-02 22:50 -0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/57c32ccb4f62 IDEA: Put back misc.xml (this is needed to get the language level right and also for Make to work out of the box) + idea/.idea/misc.xml Changeset: a73c4b0d2bd7 Author: Martin Sladecek Date: 2013-07-03 15:01 +0200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/a73c4b0d2bd7 RT-31227 InvalidationListener not being always properly removed upon .removeListener() ! modules/base/src/main/java/com/sun/javafx/binding/ExpressionHelper.java Changeset: e9e6bb046dcb Author: Martin Sladecek Date: 2013-07-03 15:04 +0200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/e9e6bb046dcb Fixed the same issue as reported in RT-31227 in collection listener helpers ! modules/base/src/main/java/com/sun/javafx/collections/ListListenerHelper.java ! modules/base/src/main/java/com/sun/javafx/collections/MapListenerHelper.java ! modules/base/src/main/java/com/sun/javafx/collections/SetListenerHelper.java Changeset: 8a72ef8eb502 Author: tb115823 Date: 2013-07-03 16:27 +0200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/8a72ef8eb502 Android: Move sources in module/graphics. Fix correct placing of artifacts. Fix web build. Add javahSource and javahClasspath properties to javahTask. ! build.gradle ! buildSrc/android.gradle + modules/graphics/src/android/java/com/oracle/dalvik/AppDataInstaller.java + modules/graphics/src/android/java/com/oracle/dalvik/FXActivity.java + modules/graphics/src/android/java/com/oracle/dalvik/InternalWebView.java + modules/graphics/src/android/java/com/oracle/dalvik/MainActivity.java + modules/graphics/src/android/java/com/oracle/dalvik/NativePipeReader.java + modules/graphics/src/android/java/com/oracle/dalvik/VMLauncher.java + modules/graphics/src/android/java/com/oracle/dalvik/net/DalvikProxySelector.java + modules/graphics/src/android/native/DalvikProxySelector.c + modules/graphics/src/android/native/DalvikProxySelector.h + modules/graphics/src/android/native/NativePipeReader.c + modules/graphics/src/android/native/VMLauncher.c - modules/graphics/src/main/android/com/oracle/dalvik/AppDataInstaller.java - modules/graphics/src/main/android/com/oracle/dalvik/FXActivity.java - modules/graphics/src/main/android/com/oracle/dalvik/InternalWebView.java - modules/graphics/src/main/android/com/oracle/dalvik/MainActivity.java - modules/graphics/src/main/android/com/oracle/dalvik/NativePipeReader.java - modules/graphics/src/main/android/com/oracle/dalvik/VMLauncher.java - modules/graphics/src/main/android/com/oracle/dalvik/net/DalvikProxySelector.java - modules/graphics/src/main/native-android/DalvikProxySelector.c - modules/graphics/src/main/native-android/DalvikProxySelector.h - modules/graphics/src/main/native-android/NativePipeReader.c - modules/graphics/src/main/native-android/VMLauncher.c Changeset: cb27f5403f2e Author: David Hill Date: 2013-07-03 10:55 -0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/cb27f5403f2e RT-31409 fix application copy paths ! build.gradle Changeset: 35618c416587 Author: rbair Date: 2013-07-03 10:08 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/35618c416587 RT-31378: Gradle build doesn't produce .a files for iOS, only dylib Contributed-By: Danno Ferrin ! build.gradle ! buildSrc/android.gradle ! buildSrc/armv6hf.gradle ! buildSrc/armv6sf.gradle ! buildSrc/ios.gradle ! buildSrc/linux.gradle ! buildSrc/mac.gradle ! buildSrc/win.gradle Changeset: ff23ce90413d Author: David Grieve Date: 2013-06-27 11:05 -0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/ff23ce90413d RT-31166: use System.lineSeparator() ! javafx-ui-common/src/com/sun/javafx/css/ParsedValueImpl.java Changeset: c64690e845b3 Author: David Grieve Date: 2013-06-27 14:23 -0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/c64690e845b3 RT-31195: remove use of Window.impl_getWindows() from StyleManager ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java Changeset: 198f10b0a0af Author: David Grieve Date: 2013-06-27 16:55 -0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/198f10b0a0af RT-31316: track resolved values to see if there is a loop ! javafx-ui-common/src/javafx/scene/CssStyleHelper.java ! javafx-ui-common/test/unit/com/sun/javafx/css/StylesheetTest.java Changeset: 9c42ba1c8877 Author: David Grieve Date: 2013-06-28 16:39 -0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/9c42ba1c8877 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/scrum/controls/jfx/rt Changeset: 26e3bbe9d134 Author: David Grieve Date: 2013-06-28 16:47 -0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/26e3bbe9d134 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt ! modules/graphics/src/main/java/com/sun/javafx/css/ParsedValueImpl.java ! modules/graphics/src/main/java/com/sun/javafx/css/StyleManager.java ! modules/graphics/src/main/java/javafx/scene/CssStyleHelper.java ! modules/graphics/src/stub/java/com/sun/javafx/css/StylesheetTest.java Changeset: 158a733e046e Author: David Grieve Date: 2013-06-28 17:09 -0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/158a733e046e RT-31316: comment out previous change since it falsely detects loops in some cases ! modules/graphics/src/main/java/javafx/scene/CssStyleHelper.java Changeset: 2d81c781012c Author: David Grieve Date: 2013-07-01 16:18 -0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/2d81c781012c RT-31316: track resolved values to see if there is a loop ! modules/graphics/src/main/java/javafx/scene/CssStyleHelper.java ! modules/graphics/src/stub/java/com/sun/javafx/css/StylesheetTest.java Changeset: ced44eebe478 Author: jgiles Date: 2013-07-02 11:28 +1200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/ced44eebe478 Resolve gradle build issue on Windows where cygwin requires PATH but Windows requires Path. This resolves the issue where cl.exe was returning non-zero results and failing the build. ! buildSrc/win.gradle Changeset: 2aecc59adf1d Author: jgiles Date: 2013-07-02 12:02 +1200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/2aecc59adf1d Remove workaround in build.gradle for controls tests such that the vm is forked for tests. This was needed due to some misbehaving unit tests which have been temporarily disabled until they can be fixed up. ! build.gradle ! modules/controls/src/test/java/javafx/scene/chart/StackedAreaChartTest.java ! modules/controls/src/test/java/javafx/scene/chart/StackedBarChartTest.java Changeset: e6dfb0c62e57 Author: jgiles Date: 2013-07-02 12:37 +1200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/e6dfb0c62e57 Backed out changeset: ced44eebe478 ! buildSrc/win.gradle Changeset: bd9e99eb8735 Author: jgiles Date: 2013-07-03 08:10 +1200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/bd9e99eb8735 [DOC ONLY] clarify when ComboBox prompt text is shown. ! modules/controls/src/main/java/javafx/scene/control/ComboBoxBase.java Changeset: f0c5b8c75c94 Author: jgiles Date: 2013-07-03 08:58 +1200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/f0c5b8c75c94 RT-31404: TreeTableView doesn't update properly when showRoot is toggled ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeTableViewSkin.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeViewTest.java Changeset: 4ae1706251da Author: jgiles Date: 2013-07-03 09:08 +1200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/4ae1706251da RT-31234: 8.0-controls-scrum-624: 84% footprint regression in TableColumn ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/NestedTableColumnHeader.java Changeset: 35d3fe04f57e Author: jgiles Date: 2013-07-03 11:54 +1200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/35d3fe04f57e RT-31340: TextInputControl pseudo class state "readonly" is being set for editable fields ! modules/controls/src/main/java/javafx/scene/control/TextInputControl.java ! modules/controls/src/test/java/javafx/scene/control/TextFieldTest.java Changeset: 7526766c86f5 Author: jgiles Date: 2013-07-03 12:15 +1200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/7526766c86f5 RT-30836: Sorting large tables is a lot slower if your data model does not have property accessors Contributed-by: James Denvir Reviewed-by: jgiles ! modules/controls/src/main/java/javafx/scene/control/cell/PropertyValueFactory.java Changeset: 4a7255f5651e Author: jgiles Date: 2013-07-03 13:03 +1200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/4a7255f5651e Small code optimisation in TreeTableCell. ! modules/controls/src/main/java/javafx/scene/control/TreeTableCell.java Changeset: 2da2330e4ea7 Author: jgiles Date: 2013-07-03 14:59 +1200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/2da2330e4ea7 Backed out changeset: e6dfb0c62e57 ! buildSrc/win.gradle Changeset: 2bbd2f1c93c9 Author: jgiles Date: 2013-07-03 15:15 +1200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/2bbd2f1c93c9 RT-30930: CSS: After adding in another thread, DatePicker doesn't have normal size. ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxBaseSkin.java Changeset: 2dfd53d0965c Author: jgiles Date: 2013-07-03 15:33 +1200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/2dfd53d0965c Backed out changeset: 2da2330e4ea7 ! buildSrc/win.gradle Changeset: f6edfc2f7b85 Author: David Grieve Date: 2013-07-03 07:35 -0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/f6edfc2f7b85 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt ! build.gradle Changeset: bc913850bda0 Author: David Grieve Date: 2013-07-03 08:46 -0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/bc913850bda0 [TEST-ONLY] RT-20575 caused assert from impl_processCSS(boolean). Removed assert since it wasn't needed. ! modules/graphics/src/main/java/javafx/scene/Node.java Changeset: d56bf9890fe6 Author: jgodinez Date: 2013-07-03 11:19 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/d56bf9890fe6 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt - apps/experiments/3DViewer/src/main/java/META-INF/MANIFEST.MF - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/main.fxml - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/navigation.fxml - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/settings.fxml - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/viewer.css ! build.gradle ! buildSrc/win.gradle ! idea/.idea/misc.xml - modules/graphics/src/main/android/com/oracle/dalvik/AppDataInstaller.java - modules/graphics/src/main/android/com/oracle/dalvik/FXActivity.java - modules/graphics/src/main/android/com/oracle/dalvik/InternalWebView.java - modules/graphics/src/main/android/com/oracle/dalvik/MainActivity.java - modules/graphics/src/main/android/com/oracle/dalvik/NativePipeReader.java - modules/graphics/src/main/android/com/oracle/dalvik/VMLauncher.java - modules/graphics/src/main/android/com/oracle/dalvik/net/DalvikProxySelector.java - modules/graphics/src/main/native-android/DalvikProxySelector.c - modules/graphics/src/main/native-android/DalvikProxySelector.h - modules/graphics/src/main/native-android/NativePipeReader.c - modules/graphics/src/main/native-android/VMLauncher.c Changeset: b43eb1f37da3 Author: rbair Date: 2013-07-03 11:32 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/b43eb1f37da3 RT-31378: Gradle build doesn't produce .a files for iOS, only dylib. Previous fix had erroneous lower case "v" in armv6hf and armv6sf gradle files. ! buildSrc/armv6hf.gradle ! buildSrc/armv6sf.gradle Changeset: 9465df6b2a0b Author: Alex X. Lee Date: 2013-07-03 12:01 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/9465df6b2a0b Modified SkinningMesh implementation for efficiency improvements and fixed some bugs based on wrong assumptions Changed to simpler data structures for faster update. Added an event handler for joints to only update points if the joints' transforms changed. Fixed bug that assumed that the mesh and the parent joint have the same transform. Fixed bug that assumed that the joints transforms are defined w.r.t. the scene. ! apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/Loader.java ! apps/experiments/3DViewer/src/main/java/com/javafx/experiments/shape3d/SkinningMesh.java Changeset: 15f45099ae7a Author: rbair Date: 2013-07-03 13:31 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/15f45099ae7a Added idea/.idea/misc.xml to hgignore because this file is always being updated with per-developer settings that shouldn't be checked in (and having to revert it all the time is horrible). This file can't just be removed because it contains some settings that we do want shared (such as the JDK level to use). ! .hgignore Changeset: e34e57d2a432 Author: rbair Date: 2013-07-03 13:38 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/e34e57d2a432 Updated .hgignore to correctly work with IDEA project files. I was wrong to remove misc.xml, but we also needed to ignore tasks.xml. This according to http://devnet.jetbrains.com/docs/DOC-1186 and http://youtrack.jetbrains.com/issue/IDEA-54149 ! .hgignore Changeset: 207a2886a6b9 Author: rbair Date: 2013-07-03 13:42 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/207a2886a6b9 IDEA: Added entry to misc.xml for IDETalk plugin which can be safely shared among multiple developers ! idea/.idea/misc.xml Changeset: 71deba7c9601 Author: rbair Date: 2013-07-03 13:48 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/71deba7c9601 IDEA: Configure gradle SDk support + idea/.idea/gradle.xml ! idea/javafx.iml Changeset: f0f6b7687ce3 Author: rbair Date: 2013-07-03 13:52 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/f0f6b7687ce3 RT-31029: Update design time API code Contributed-By: Yves Joan ! modules/designTime/src/main/java/com/sun/javafx/beans/design/author/AbstractDesignInfo.java Changeset: 0bf0d9dafcc7 Author: peterz Date: 2013-07-04 07:29 +0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/0bf0d9dafcc7 RT-30657 Gradle: web compilation needs to move to rt/build.gradle ! build.gradle ! settings.gradle Changeset: c1c41fb9dca8 Author: tb115823 Date: 2013-07-04 10:12 +0200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/c1c41fb9dca8 Android: Set sysroot in gcc. ! buildSrc/android.gradle Changeset: 3c6268833424 Author: tb115823 Date: 2013-07-04 10:12 +0200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/3c6268833424 Update for Android build. Add some necessary includes. ! modules/graphics/src/main/native-decora/SSEBoxBlurPeer.cc ! modules/graphics/src/main/native-decora/SSEBoxShadowPeer.cc ! modules/graphics/src/main/native-decora/SSEUtils.h ! modules/graphics/src/main/native-prism-sw/PiscesRenderer.h Changeset: d63f879fbfc3 Author: tb115823 Date: 2013-07-04 10:12 +0200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/d63f879fbfc3 Android: minor fix after library function has been made closure stored in property. ! buildSrc/android.gradle Changeset: e48b05c36e15 Author: snorthov Date: 2013-07-04 06:15 -0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/e48b05c36e15 Fix the IDE's to reference build/libs instead of .libs, use "swt-debug.jar" ! .hgignore ! build.gradle ! buildSrc/.classpath ! idea/buildSrc.iml ! idea/javafx.iml ! netbeans/buildSrc/nbproject/project.properties ! netbeans/fxpackager/nbproject/project.properties ! netbeans/graphics/nbproject/project.properties ! netbeans/swt/nbproject/project.properties Changeset: 2417bb85eda7 Author: snorthov Date: 2013-07-04 08:12 -0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/2417bb85eda7 IDEA, ECLIPSE: Get rid of circular dependencies, ensure that cached jfrt.jar is on the end of the class path to avoid shadowing, rename 'javafx' to 'rt', ensure projects outside of 'rt' depend on 'rt' instead of individual modules ! idea/.idea/modules.xml ! idea/buildSrc.iml ! idea/builders.iml ! idea/deploy.iml ! idea/graphics.iml - idea/javafx.iml ! idea/media.iml ! idea/rt-closed.iml + idea/rt.iml ! idea/web.iml ! modules/graphics/.classpath Changeset: b4b7cc4c182a Author: Martin Sladecek Date: 2013-07-04 15:14 +0200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/b4b7cc4c182a RT-29738 TableView painting issue with dirtyOpts enabled, treeVisibily fixed for clips ! modules/graphics/src/main/java/javafx/scene/Node.java Changeset: 62160d20258a Author: Martin Sladecek Date: 2013-07-04 15:16 +0200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/62160d20258a merge ! modules/graphics/src/main/java/javafx/scene/Node.java From tobi at ultramixer.com Thu Jul 4 06:53:49 2013 From: tobi at ultramixer.com (Tobias Bley) Date: Thu, 4 Jul 2013 15:53:49 +0200 Subject: JavaFX8 on iPhone! It works! In-Reply-To: References: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> <51D4B437.4060303@oracle.com> Message-ID: <26BFCCAA-2B2D-4711-A2B4-4312F00C09EB@ultramixer.com> I published by blog post about using JavaFX8 and RoboVM to build a iOS app: http://blog.software4java.com/?p=41 @Niklas: IMO it?s important that RoboVM support OpenJDK as alternative to the android class library because OpenJFX depends on OpenJDK not on Android class library (Apache Harmony). Best regards, Tobi Am 04.07.2013 um 14:49 schrieb Niklas Therning : > RoboVM doesn't do invokedynamic so I guess this only works if the app > doesn't depend on any of the code in JavaFX8 that compiles down to > invokedynamic calls. Also, there are quite a few API's available in Java8 > (and also Java7) that RoboVM doesn't have. We really need to get the jfx78 > backport to compile for iOS and generate the static libs properly. > > I've just got the font related code in the BrickBreaker sample working > using the jfx78 backport. There's still a bit of manual command line work > needed to merge the static libraries into universal libraries like the old > ant build system did automatically. But it isn't too hard. I'll try to put > up instructions on the robovm blog later today. I'll let you know. > > > On Thu, Jul 4, 2013 at 1:31 AM, wrote: > >> Yes. >> >> >> On 03/07/2013 7:17 PM, Daniel Zwolenski wrote: >> >>> Can I just use this: https://jdk8.java.net/**download.html? >>> >>> >>> On Thu, Jul 4, 2013 at 9:15 AM, Daniel Zwolenski >>> wrote: >>> >>> Thanks Richard, in the building for Mac section there is a link to >>>> "Install the latest JDK 8 build" that goes to a dead URL ( >>>> http://jdk8.dev.java.net/). Do you know the correct URL? >>>> >>>> >>>> >>>> On Thu, Jul 4, 2013 at 9:11 AM, Richard Bair ** >>>> wrote: >>>> >>>> Extensive documentation that is mostly correct: >>>>> >>>>> https://wiki.openjdk.java.net/**display/OpenJFX/Building+**OpenJFX >>>>> https://wiki.openjdk.java.net/**display/OpenJFX/Developing+**OpenJFX >>>>> >>>>> It is still a work in progress but most things you need to know to build >>>>> is found here. >>>>> >>>>> Richard >>>>> >>>>> On Jul 3, 2013, at 3:52 PM, Daniel Zwolenski wrote: >>>>> >>>>> Trying to catch up to Tobi on this one so I can have some fun with it >>>>>> >>>>> too. >>>>> >>>>>> I assume in order to compile the graphics repo of JFX8 I need an OpenJ8 >>>>>> >>>>> JDK >>>>> >>>>>> already installed? Are there pre-built bundles for this (for mac) or do >>>>>> >>>>> I >>>>> >>>>>> need to checkout and build myself? Does anyone know which repo, and >>>>>> what >>>>>> command line arg should I use to build J8 in this case? >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Thu, Jul 4, 2013 at 6:44 AM, Tobias Bley >>>>>> >>>>> wrote: >>>>> >>>>>> Hi Guys, >>>>>>> >>>>>>> I used RoboVM 0.0.2 and the current OpenJFX8 from mercurial graphics >>>>>>> branch.... So no 78 backport. I will write a blog post on >>>>>>> blog.software4java.com until tomorrow... >>>>>>> >>>>>>> Currently the performance is very limited - as Richard told too. I?m >>>>>>> testing now all the basic JFX controls (like button, RadioButton, >>>>>>> >>>>>> CheckBox, >>>>> >>>>>> ListView, TableView, ...). >>>>>>> >>>>>>> Best regards, >>>>>>> Tobi >>>>>>> >>>>>>> >>>>>>> Am 03.07.2013 um 21:47 schrieb Daniel Zwolenski : >>>>>>> >>>>>>> Tobi, this is awesome! But you've left us hanging :) >>>>>>>> >>>>>>>> Did you use the 78 backport for this or just straight out J8? >>>>>>>> >>>>>>>> What are the steps to reproduce your working build? >>>>>>>> >>>>>>>> Very darn exciting! >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On 04/07/2013, at 2:50 AM, Danno Ferrin >>>>>>>> >>>>>>> wrote: >>>>>>> >>>>>>>> JavaFX 8? Does RoboVM support invokedynamic? That is a big deal if >>>>>>>>> >>>>>>>> so. >>>>> >>>>>> On Wed, Jul 3, 2013 at 10:07 AM, Niklas Therning < >>>>>>>>> >>>>>>>> niklas at therning.org >>>>> >>>>>> wrote: >>>>>>>> >>>>>>>>> Awesome! Can you please post the build instructions somewhere? I'm >>>>>>>>>> >>>>>>>>> not >>>>> >>>>>> getting a long with gradle at all. :-( >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Wed, Jul 3, 2013 at 6:03 PM, Tobi wrote: >>>>>>>>>> >>>>>>>>>> It works! Latest JavaFX 8 (gradle based) with RoboVM on a real >>>>>>>>>>> >>>>>>>>>> iPhone >>>>> >>>>>> with >>>>>>>>>> >>>>>>>>>>> native text rendering and JFX CSS rendering! >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Tobi >>>>>>>>>>> >>>>>>>>>>> >>>>>>> >>>>> >> From tobi at ultramixer.com Thu Jul 4 08:44:56 2013 From: tobi at ultramixer.com (Tobias Bley) Date: Thu, 4 Jul 2013 17:44:56 +0200 Subject: iOS: Calling native methods on iPhone Message-ID: <1014ED74-2819-48B5-94BF-82BF2CD6DE7B@ultramixer.com> Hi, after successfully using JavaFX (including font and CSS) on iOS I tried to call native code on iPhone. I successfully fetched and visualized the battery level of the iPhone! To do this I wrote objective c code and bind it to Java via JNI. No problem so far. -------------- next part -------------- But what I would like to do is using a technology like JNA to directly access Cocoa frameworks without writing native JNI code. Does anybody knows if JNA (or something else) could also be used in RoboVM? Best regards, Tobi From steve.x.northover at oracle.com Thu Jul 4 08:57:39 2013 From: steve.x.northover at oracle.com (steve.x.northover at oracle.com) Date: Thu, 04 Jul 2013 11:57:39 -0400 Subject: iOS: Calling native methods on iPhone In-Reply-To: <1014ED74-2819-48B5-94BF-82BF2CD6DE7B@ultramixer.com> References: <1014ED74-2819-48B5-94BF-82BF2CD6DE7B@ultramixer.com> Message-ID: <51D59B73.3040507@oracle.com> Hi Tobias, JNA can't be used on iOS because it dynamically looks up the address of a function at runtime and calls it. This is not allowed on iOS. Steve On 04/07/2013 11:44 AM, Tobias Bley wrote: > Hi, > > after successfully using JavaFX (including font and CSS) on iOS I tried to call native code on iPhone. I successfully fetched and visualized the battery level of the iPhone! > > To do this I wrote objective c code and bind it to Java via JNI. No problem so far. > > > > > But what I would like to do is using a technology like JNA to directly access Cocoa frameworks without writing native JNI code. Does anybody knows if JNA (or something else) could also be used in RoboVM? > > Best regards, > Tobi > > > From tom.schindl at bestsolution.at Thu Jul 4 09:16:42 2013 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Thu, 4 Jul 2013 18:16:42 +0200 Subject: iOS: Calling native methods on iPhone In-Reply-To: <1014ED74-2819-48B5-94BF-82BF2CD6DE7B@ultramixer.com> References: <1014ED74-2819-48B5-94BF-82BF2CD6DE7B@ultramixer.com> Message-ID: <07EFFF03-227C-48D2-9215-48C669329AC2@bestsolution.at> Robovm does that without jni it is called bro Tom Von meinem iPhone gesendet Am 04.07.2013 um 17:44 schrieb Tobias Bley : > Hi, > > after successfully using JavaFX (including font and CSS) on iOS I tried to call native code on iPhone. I successfully fetched and visualized the battery level of the iPhone! > > To do this I wrote objective c code and bind it to Java via JNI. No problem so far. > > > > But what I would like to do is using a technology like JNA to directly access Cocoa frameworks without writing native JNI code. Does anybody knows if JNA (or something else) could also be used in RoboVM? > > Best regards, > Tobi > > > From hang.vo at oracle.com Thu Jul 4 10:33:55 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 04 Jul 2013 17:33:55 +0000 Subject: hg: openjfx/8/graphics/rt: IDEA, ECLIPSE: Add 3DViewer, Ensemble8 and Modena projects/modules Message-ID: <20130704173438.D766D487DB@hg.openjdk.java.net> Changeset: 7218d2c34f01 Author: snorthov Date: 2013-07-04 13:25 -0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/7218d2c34f01 IDEA, ECLIPSE: Add 3DViewer, Ensemble8 and Modena projects/modules + apps/experiments/3DViewer/.classpath + apps/experiments/3DViewer/.project + apps/experiments/Modena/.classpath + apps/experiments/Modena/.project + apps/samples/Ensemble8/.classpath + apps/samples/Ensemble8/.project ! idea/.idea/modules.xml + idea/3DViewer.iml + idea/Ensemble8.iml + idea/Modena.iml From Fabrizio.Giudici at tidalwave.it Thu Jul 4 11:15:25 2013 From: Fabrizio.Giudici at tidalwave.it (Fabrizio Giudici) Date: Thu, 04 Jul 2013 20:15:25 +0200 Subject: JavaFX app with Spring doesn't terminate on Mac OS X with Cmd-Q Message-ID: Hello. I have a JavaFX app that uses Spring to instantiate a number of services and presentation controllers. I think it's relevant to mention that among other services there's Jetty, an embedded web server that starts listening to a socket with its own threads. The Spring ApplicationContext is initialized in background after init() is called; and it also uses applicationContext.registerShutdownHook(). When I run the application in development mode (with Maven, from the terminal) or I launch the Java stub inside the bundled .app from the terminal (so the process is bound to the terminal) and I hit Ctrl-C, the application properly quits (with the Spring Application Context properly shutting down everything). When I launch the bundled .app and I press Cmd-Q, the window closes, but the application lingers somewhere (e.g. I see it in running processes). I have to "force quit" it. Platform.setImplicitExit(true) doesn't make any difference. I expected that Cmd-Q called System.exit() and the Spring ApplicationContext just had its opportunity to orderly quit thanks to the shutdown hook. Instead, I see that the ApplicationContext stays alive and probably the threads started by some services keep the application running. I've found that this solution works: stage.setOnCloseRequest(new EventHandler() { @Override public void handle (final @Nonnull WindowEvent event) { applicationContext.close(); } }); For me it's fine, but I'd like to understand whether this is the correct behaviour, or I'm doing something wrong, or there's a bug somewhere. Details: JDK 1.7.0_25 with its embedded JavaFX runtime, Mac OS X 10.8.4. Sources fully available if needed. Thanks. -- Fabrizio Giudici - Java Architect @ Tidalwave s.a.s. "We make Java work. Everywhere." http://tidalwave.it/fabrizio/blog - fabrizio.giudici at tidalwave.it From richard.bair at oracle.com Thu Jul 4 12:23:05 2013 From: richard.bair at oracle.com (Richard Bair) Date: Thu, 4 Jul 2013 12:23:05 -0700 Subject: JavaFX8 on iPhone! It works! In-Reply-To: References: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> Message-ID: Thanks Dan, the links should now be fixed! On Jul 3, 2013, at 4:15 PM, Daniel Zwolenski wrote: > Thanks Richard, in the building for Mac section there is a link to "Install the latest JDK 8 build" that goes to a dead URL (http://jdk8.dev.java.net/). Do you know the correct URL? From pedro.duquevieira at gmail.com Thu Jul 4 13:53:06 2013 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Thu, 4 Jul 2013 21:53:06 +0100 Subject: Text rendering engine in ios7 Message-ID: Hi, Given that the text rendering engine will change in ios 7: http://typographica.org/on-typography/beyond-helvetica-the-real-story-behind-fonts-in-ios-7/ (later in the article) How will that impact the porting of javafx apps to ios? Will it still be possible with the current state of things? Regards, -- Pedro Duque Vieira From steve.x.northover at oracle.com Thu Jul 4 14:20:18 2013 From: steve.x.northover at oracle.com (steve.x.northover at oracle.com) Date: Thu, 04 Jul 2013 17:20:18 -0400 Subject: Text rendering engine in ios7 In-Reply-To: References: Message-ID: <51D5E712.3080209@oracle.com> Text Kit is built on CoreText. JavaFX on iOS uses CoreText so text will continue to work. New features of Text Kit won't be available unless there is a port to Text Kit (and this might not make sense, needs investigation). Steve On 04/07/2013 4:53 PM, Pedro Duque Vieira wrote: > Hi, > > Given that the text rendering engine will change in ios 7: > http://typographica.org/on-typography/beyond-helvetica-the-real-story-behind-fonts-in-ios-7/ > (later > in the article) > How will that impact the porting of javafx apps to ios? Will it still be > possible with the current state of things? > > Regards, > > From hang.vo at oracle.com Fri Jul 5 02:22:41 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 05 Jul 2013 09:22:41 +0000 Subject: hg: openjfx/2u/dev/rt: Added tag 2.2.40-b32 for changeset 764cbe8a43e4 Message-ID: <20130705092245.918E448819@hg.openjdk.java.net> Changeset: 053af337fe50 Author: hudson Date: 2013-07-03 18:29 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/dev/rt/rev/053af337fe50 Added tag 2.2.40-b32 for changeset 764cbe8a43e4 ! .hgtags From tobi at ultramixer.com Fri Jul 5 02:24:52 2013 From: tobi at ultramixer.com (Tobias Bley) Date: Fri, 5 Jul 2013 11:24:52 +0200 Subject: Errors while building OpenJFX8 for Android Message-ID: <5B76E482-FE67-4E6B-BD31-3C85C97F7B12@ultramixer.com> Hi, I tried to build OpenJFX for Android via the new gradle scripts and I?m getting the following error: Build file '/Applications/Developer/Java/open-jfx-bitbucket/openjfx-8-graphics-rt/build.gradle' line: 493 * What went wrong: A problem occurred evaluating root project 'openjfx-8-graphics-rt'. > ERROR: Incorrectly configured compile flags file, missing jfxrtJarExcludes property on android Do I have to configure something? Best regards, Tobi From tom.schindl at bestsolution.at Fri Jul 5 02:56:57 2013 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Fri, 05 Jul 2013 11:56:57 +0200 Subject: iOS: Calling native methods on iPhone In-Reply-To: <07EFFF03-227C-48D2-9215-48C669329AC2@bestsolution.at> References: <1014ED74-2819-48B5-94BF-82BF2CD6DE7B@ultramixer.com> <07EFFF03-227C-48D2-9215-48C669329AC2@bestsolution.at> Message-ID: <51D69869.7010402@bestsolution.at> Hi, To not write the bro stuff manually I fired up xtext yesterday and created a small DSL which holds the (relevant) Header-Information and generates the Bro-Files for you. You can see the input https://github.com/tomsontom/objcgenerator/tree/master/bundles/at.bestsolution.objc.mapper.cocoatouch/mappings and output https://github.com/tomsontom/objcgenerator/tree/master/bundles/at.bestsolution.objc.mapper.cocoatouch/src/main/java/org/robovm/cocoatouch/corelocation . Currently it is bound to Eclipse but I could add support to run the mapper on the command line as well. Tom On 04.07.13 18:16, Tom Schindl wrote: > Robovm does that without jni it is called bro > > Tom > > Von meinem iPhone gesendet > > Am 04.07.2013 um 17:44 schrieb Tobias Bley : > >> Hi, >> >> after successfully using JavaFX (including font and CSS) on iOS I tried to call native code on iPhone. I successfully fetched and visualized the battery level of the iPhone! >> >> To do this I wrote objective c code and bind it to Java via JNI. No problem so far. >> >> >> >> But what I would like to do is using a technology like JNA to directly access Cocoa frameworks without writing native JNI code. Does anybody knows if JNA (or something else) could also be used in RoboVM? >> >> Best regards, >> Tobi >> >> >> From tobi at ultramixer.com Fri Jul 5 03:26:29 2013 From: tobi at ultramixer.com (Tobias Bley) Date: Fri, 5 Jul 2013 12:26:29 +0200 Subject: iOS: Calling native methods on iPhone In-Reply-To: <51D69869.7010402@bestsolution.at> References: <1014ED74-2819-48B5-94BF-82BF2CD6DE7B@ultramixer.com> <07EFFF03-227C-48D2-9215-48C669329AC2@bestsolution.at> <51D69869.7010402@bestsolution.at> Message-ID: Hi Tom, thats great! We need such efforts! the goal should be to use the automatically wrapped UIKit from Java, call the image picker and fetch an image from the iphone to show it in JavaFX! Who is the first guy who posts a demo image ;)? Best regards, Tobi It would be fantastic to have a real use case for using a native cocoa touch function in JavaFX (on RoboVM). I suggest to load an image via ImagePicker from the iPhone image library. So we need to use the UIKit framework and the UIImagePickerController... Am 05.07.2013 um 11:56 schrieb Tom Schindl : > Hi, > > To not write the bro stuff manually I fired up xtext yesterday and created a small DSL which holds the (relevant) Header-Information and generates the Bro-Files for you. > > You can see the input https://github.com/tomsontom/objcgenerator/tree/master/bundles/at.bestsolution.objc.mapper.cocoatouch/mappings and output https://github.com/tomsontom/objcgenerator/tree/master/bundles/at.bestsolution.objc.mapper.cocoatouch/src/main/java/org/robovm/cocoatouch/corelocation . > > Currently it is bound to Eclipse but I could add support to run the mapper on the command line as well. > > Tom > > On 04.07.13 18:16, Tom Schindl wrote: >> Robovm does that without jni it is called bro >> >> Tom >> >> Von meinem iPhone gesendet >> >> Am 04.07.2013 um 17:44 schrieb Tobias Bley : >> >>> Hi, >>> >>> after successfully using JavaFX (including font and CSS) on iOS I tried to call native code on iPhone. I successfully fetched and visualized the battery level of the iPhone! >>> >>> To do this I wrote objective c code and bind it to Java via JNI. No problem so far. >>> >>> >>> >>> But what I would like to do is using a technology like JNA to directly access Cocoa frameworks without writing native JNI code. Does anybody knows if JNA (or something else) could also be used in RoboVM? >>> >>> Best regards, >>> Tobi >>> >>> >>> > From hang.vo at oracle.com Fri Jul 5 03:18:31 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 05 Jul 2013 10:18:31 +0000 Subject: hg: openjfx/8/graphics/rt: 2 new changesets Message-ID: <20130705101929.863E14881B@hg.openjdk.java.net> Changeset: 9ceb29c29665 Author: peterz Date: 2013-07-04 20:31 +0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/9ceb29c29665 RT-31381 Apps using WebView don't work with default build setting ! build.gradle Changeset: 4d91fcff597d Author: peterz Date: 2013-07-05 14:15 +0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/4d91fcff597d Merge From anthony.petrov at oracle.com Fri Jul 5 03:46:35 2013 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Fri, 05 Jul 2013 14:46:35 +0400 Subject: JavaFX app with Spring doesn't terminate on Mac OS X with Cmd-Q In-Reply-To: References: Message-ID: <51D6A40B.6060503@oracle.com> Hi Fabrizio, Cmd-Q (or, rather the implicit exit machinery) does not call System.exit(). All it does when it detects that there's no FX windows open, it terminates the FX Event Thread. This is clearly stated in the javadoc [1]. The rest depends on the JVM. As long as there are active non-daemon threads running, the JVM won't exit. I suspect that the services you're running create non-daemon threads and they prevent the JVM from exiting. So the solution you came up with (calling applicationContext.close()) looks correct: you tell the background services to shut down, and then the application can terminate as expected. Hope this helps. [1] http://docs.oracle.com/javafx/2/api/javafx/application/Platform.html#setImplicitExit(boolean) -- best regards, Anthony On 07/04/2013 10:15 PM, Fabrizio Giudici wrote: > Hello. > > I have a JavaFX app that uses Spring to instantiate a number of services > and presentation controllers. I think it's relevant to mention that > among other services there's Jetty, an embedded web server that starts > listening to a socket with its own threads. The Spring > ApplicationContext is initialized in background after init() is called; > and it also uses applicationContext.registerShutdownHook(). When I run > the application in development mode (with Maven, from the terminal) or I > launch the Java stub inside the bundled .app from the terminal (so the > process is bound to the terminal) and I hit Ctrl-C, the application > properly quits (with the Spring Application Context properly shutting > down everything). When I launch the bundled .app and I press Cmd-Q, the > window closes, but the application lingers somewhere (e.g. I see it in > running processes). I have to "force quit" it. > Platform.setImplicitExit(true) doesn't make any difference. > > I expected that Cmd-Q called System.exit() and the Spring > ApplicationContext just had its opportunity to orderly quit thanks to > the shutdown hook. Instead, I see that the ApplicationContext stays > alive and probably the threads started by some services keep the > application running. > > I've found that this solution works: > > stage.setOnCloseRequest(new EventHandler() > { > @Override > public void handle (final @Nonnull WindowEvent event) > { > applicationContext.close(); > } > }); > > For me it's fine, but I'd like to understand whether this is the correct > behaviour, or I'm doing something wrong, or there's a bug somewhere. > > Details: JDK 1.7.0_25 with its embedded JavaFX runtime, Mac OS X 10.8.4. > Sources fully available if needed. > > Thanks. > From zonski at gmail.com Fri Jul 5 04:11:40 2013 From: zonski at gmail.com (Daniel Zwolenski) Date: Fri, 5 Jul 2013 21:11:40 +1000 Subject: JavaFX8 on iPhone! It works! In-Reply-To: <26BFCCAA-2B2D-4711-A2B4-4312F00C09EB@ultramixer.com> References: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> <51D4B437.4060303@oracle.com> <26BFCCAA-2B2D-4711-A2B4-4312F00C09EB@ultramixer.com> Message-ID: <252710C7-403E-4752-9979-191924A04694@gmail.com> This is great Tobi, thanks! I'm a bit confused though - seems to be mixed messages on the need for the 78 backport? Danno, since Niklas is saying we need the backport, what steps do we need to take to get this working? I also don't understand Tobi's comments below about not using the android jdk. What is it that's not working, and isn't jfx suppose to run on android as well? On 04/07/2013, at 11:53 PM, Tobias Bley wrote: > I published by blog post about using JavaFX8 and RoboVM to build a iOS app: http://blog.software4java.com/?p=41 > > @Niklas: IMO it?s important that RoboVM support OpenJDK as alternative to the android class library because OpenJFX depends on OpenJDK not on Android class library (Apache Harmony). > > Best regards, > Tobi > > Am 04.07.2013 um 14:49 schrieb Niklas Therning : > >> RoboVM doesn't do invokedynamic so I guess this only works if the app >> doesn't depend on any of the code in JavaFX8 that compiles down to >> invokedynamic calls. Also, there are quite a few API's available in Java8 >> (and also Java7) that RoboVM doesn't have. We really need to get the jfx78 >> backport to compile for iOS and generate the static libs properly. >> >> I've just got the font related code in the BrickBreaker sample working >> using the jfx78 backport. There's still a bit of manual command line work >> needed to merge the static libraries into universal libraries like the old >> ant build system did automatically. But it isn't too hard. I'll try to put >> up instructions on the robovm blog later today. I'll let you know. >> >> >> On Thu, Jul 4, 2013 at 1:31 AM, wrote: >> >>> Yes. >>> >>> >>> On 03/07/2013 7:17 PM, Daniel Zwolenski wrote: >>> >>>> Can I just use this: https://jdk8.java.net/**download.html? >>>> >>>> >>>> On Thu, Jul 4, 2013 at 9:15 AM, Daniel Zwolenski >>>> wrote: >>>> >>>> Thanks Richard, in the building for Mac section there is a link to >>>>> "Install the latest JDK 8 build" that goes to a dead URL ( >>>>> http://jdk8.dev.java.net/). Do you know the correct URL? >>>>> >>>>> >>>>> >>>>> On Thu, Jul 4, 2013 at 9:11 AM, Richard Bair ** >>>>> wrote: >>>>> >>>>> Extensive documentation that is mostly correct: >>>>>> >>>>>> https://wiki.openjdk.java.net/**display/OpenJFX/Building+**OpenJFX >>>>>> https://wiki.openjdk.java.net/**display/OpenJFX/Developing+**OpenJFX >>>>>> >>>>>> It is still a work in progress but most things you need to know to build >>>>>> is found here. >>>>>> >>>>>> Richard >>>>>> >>>>>> On Jul 3, 2013, at 3:52 PM, Daniel Zwolenski wrote: >>>>>> >>>>>> Trying to catch up to Tobi on this one so I can have some fun with it >>>>>>> >>>>>> too. >>>>>> >>>>>>> I assume in order to compile the graphics repo of JFX8 I need an OpenJ8 >>>>>>> >>>>>> JDK >>>>>> >>>>>>> already installed? Are there pre-built bundles for this (for mac) or do >>>>>>> >>>>>> I >>>>>> >>>>>>> need to checkout and build myself? Does anyone know which repo, and >>>>>>> what >>>>>>> command line arg should I use to build J8 in this case? >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Thu, Jul 4, 2013 at 6:44 AM, Tobias Bley >>>>>>> >>>>>> wrote: >>>>>> >>>>>>> Hi Guys, >>>>>>>> >>>>>>>> I used RoboVM 0.0.2 and the current OpenJFX8 from mercurial graphics >>>>>>>> branch.... So no 78 backport. I will write a blog post on >>>>>>>> blog.software4java.com until tomorrow... >>>>>>>> >>>>>>>> Currently the performance is very limited - as Richard told too. I?m >>>>>>>> testing now all the basic JFX controls (like button, RadioButton, >>>>>>>> >>>>>>> CheckBox, >>>>>> >>>>>>> ListView, TableView, ...). >>>>>>>> >>>>>>>> Best regards, >>>>>>>> Tobi >>>>>>>> >>>>>>>> >>>>>>>> Am 03.07.2013 um 21:47 schrieb Daniel Zwolenski : >>>>>>>> >>>>>>>> Tobi, this is awesome! But you've left us hanging :) >>>>>>>>> >>>>>>>>> Did you use the 78 backport for this or just straight out J8? >>>>>>>>> >>>>>>>>> What are the steps to reproduce your working build? >>>>>>>>> >>>>>>>>> Very darn exciting! >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On 04/07/2013, at 2:50 AM, Danno Ferrin >>>>>>>>> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> JavaFX 8? Does RoboVM support invokedynamic? That is a big deal if >>>>>>>>>> >>>>>>>>> so. >>>>>> >>>>>>> On Wed, Jul 3, 2013 at 10:07 AM, Niklas Therning < >>>>>>>>>> >>>>>>>>> niklas at therning.org >>>>>> >>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Awesome! Can you please post the build instructions somewhere? I'm >>>>>>>>>>> >>>>>>>>>> not >>>>>> >>>>>>> getting a long with gradle at all. :-( >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Wed, Jul 3, 2013 at 6:03 PM, Tobi wrote: >>>>>>>>>>> >>>>>>>>>>> It works! Latest JavaFX 8 (gradle based) with RoboVM on a real >>>>>>>>>>>> >>>>>>>>>>> iPhone >>>>>> >>>>>>> with >>>>>>>>>>> >>>>>>>>>>>> native text rendering and JFX CSS rendering! >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Tobi >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>> >>>>>> >>> > From tobi at ultramixer.com Fri Jul 5 04:15:46 2013 From: tobi at ultramixer.com (Tobias Bley) Date: Fri, 5 Jul 2013 13:15:46 +0200 Subject: JavaFX8 on iPhone! It works! In-Reply-To: <252710C7-403E-4752-9979-191924A04694@gmail.com> References: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> <51D4B437.4060303@oracle.com> <26BFCCAA-2B2D-4711-A2B4-4312F00C09EB@ultramixer.com> <252710C7-403E-4752-9979-191924A04694@gmail.com> Message-ID: <283C15EF-74F1-44F2-9EBA-7949AA532F44@ultramixer.com> Maybe the missing classes in the android classes used by RoboVM are only missing in an old android class library and Oracles android port is based on a newer version? Am 05.07.2013 um 13:11 schrieb Daniel Zwolenski : > This is great Tobi, thanks! > > I'm a bit confused though - seems to be mixed messages on the need for the 78 backport? > > Danno, since Niklas is saying we need the backport, what steps do we need to take to get this working? > > I also don't understand Tobi's comments below about not using the android jdk. What is it that's not working, and isn't jfx suppose to run on android as well? > > > > On 04/07/2013, at 11:53 PM, Tobias Bley wrote: > >> I published by blog post about using JavaFX8 and RoboVM to build a iOS app: http://blog.software4java.com/?p=41 >> >> @Niklas: IMO it?s important that RoboVM support OpenJDK as alternative to the android class library because OpenJFX depends on OpenJDK not on Android class library (Apache Harmony). >> >> Best regards, >> Tobi >> >> Am 04.07.2013 um 14:49 schrieb Niklas Therning : >> >>> RoboVM doesn't do invokedynamic so I guess this only works if the app >>> doesn't depend on any of the code in JavaFX8 that compiles down to >>> invokedynamic calls. Also, there are quite a few API's available in Java8 >>> (and also Java7) that RoboVM doesn't have. We really need to get the jfx78 >>> backport to compile for iOS and generate the static libs properly. >>> >>> I've just got the font related code in the BrickBreaker sample working >>> using the jfx78 backport. There's still a bit of manual command line work >>> needed to merge the static libraries into universal libraries like the old >>> ant build system did automatically. But it isn't too hard. I'll try to put >>> up instructions on the robovm blog later today. I'll let you know. >>> >>> >>> On Thu, Jul 4, 2013 at 1:31 AM, wrote: >>> >>>> Yes. >>>> >>>> >>>> On 03/07/2013 7:17 PM, Daniel Zwolenski wrote: >>>> >>>>> Can I just use this: https://jdk8.java.net/**download.html? >>>>> >>>>> >>>>> On Thu, Jul 4, 2013 at 9:15 AM, Daniel Zwolenski >>>>> wrote: >>>>> >>>>> Thanks Richard, in the building for Mac section there is a link to >>>>>> "Install the latest JDK 8 build" that goes to a dead URL ( >>>>>> http://jdk8.dev.java.net/). Do you know the correct URL? >>>>>> >>>>>> >>>>>> >>>>>> On Thu, Jul 4, 2013 at 9:11 AM, Richard Bair ** >>>>>> wrote: >>>>>> >>>>>> Extensive documentation that is mostly correct: >>>>>>> >>>>>>> https://wiki.openjdk.java.net/**display/OpenJFX/Building+**OpenJFX >>>>>>> https://wiki.openjdk.java.net/**display/OpenJFX/Developing+**OpenJFX >>>>>>> >>>>>>> It is still a work in progress but most things you need to know to build >>>>>>> is found here. >>>>>>> >>>>>>> Richard >>>>>>> >>>>>>> On Jul 3, 2013, at 3:52 PM, Daniel Zwolenski wrote: >>>>>>> >>>>>>> Trying to catch up to Tobi on this one so I can have some fun with it >>>>>>>> >>>>>>> too. >>>>>>> >>>>>>>> I assume in order to compile the graphics repo of JFX8 I need an OpenJ8 >>>>>>>> >>>>>>> JDK >>>>>>> >>>>>>>> already installed? Are there pre-built bundles for this (for mac) or do >>>>>>>> >>>>>>> I >>>>>>> >>>>>>>> need to checkout and build myself? Does anyone know which repo, and >>>>>>>> what >>>>>>>> command line arg should I use to build J8 in this case? >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Jul 4, 2013 at 6:44 AM, Tobias Bley >>>>>>>> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi Guys, >>>>>>>>> >>>>>>>>> I used RoboVM 0.0.2 and the current OpenJFX8 from mercurial graphics >>>>>>>>> branch.... So no 78 backport. I will write a blog post on >>>>>>>>> blog.software4java.com until tomorrow... >>>>>>>>> >>>>>>>>> Currently the performance is very limited - as Richard told too. I?m >>>>>>>>> testing now all the basic JFX controls (like button, RadioButton, >>>>>>>>> >>>>>>>> CheckBox, >>>>>>> >>>>>>>> ListView, TableView, ...). >>>>>>>>> >>>>>>>>> Best regards, >>>>>>>>> Tobi >>>>>>>>> >>>>>>>>> >>>>>>>>> Am 03.07.2013 um 21:47 schrieb Daniel Zwolenski : >>>>>>>>> >>>>>>>>> Tobi, this is awesome! But you've left us hanging :) >>>>>>>>>> >>>>>>>>>> Did you use the 78 backport for this or just straight out J8? >>>>>>>>>> >>>>>>>>>> What are the steps to reproduce your working build? >>>>>>>>>> >>>>>>>>>> Very darn exciting! >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 04/07/2013, at 2:50 AM, Danno Ferrin >>>>>>>>>> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> JavaFX 8? Does RoboVM support invokedynamic? That is a big deal if >>>>>>>>>>> >>>>>>>>>> so. >>>>>>> >>>>>>>> On Wed, Jul 3, 2013 at 10:07 AM, Niklas Therning < >>>>>>>>>>> >>>>>>>>>> niklas at therning.org >>>>>>> >>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Awesome! Can you please post the build instructions somewhere? I'm >>>>>>>>>>>> >>>>>>>>>>> not >>>>>>> >>>>>>>> getting a long with gradle at all. :-( >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Wed, Jul 3, 2013 at 6:03 PM, Tobi wrote: >>>>>>>>>>>> >>>>>>>>>>>> It works! Latest JavaFX 8 (gradle based) with RoboVM on a real >>>>>>>>>>>>> >>>>>>>>>>>> iPhone >>>>>>> >>>>>>>> with >>>>>>>>>>>> >>>>>>>>>>>>> native text rendering and JFX CSS rendering! >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Tobi >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>> >>>>>>> >>>> >> From Fabrizio.Giudici at tidalwave.it Fri Jul 5 04:21:35 2013 From: Fabrizio.Giudici at tidalwave.it (Fabrizio Giudici) Date: Fri, 05 Jul 2013 13:21:35 +0200 Subject: JavaFX app with Spring doesn't terminate on Mac OS X with Cmd-Q In-Reply-To: <51D6A40B.6060503@oracle.com> References: <51D6A40B.6060503@oracle.com> Message-ID: On Fri, 05 Jul 2013 12:46:35 +0200, Anthony Petrov wrote: > Hi Fabrizio, > > Cmd-Q (or, rather the implicit exit machinery) does not call > System.exit(). All it does when it detects that there's no FX windows > open, it terminates the FX Event Thread. This is clearly stated in the > javadoc [1]. Ok, I missed the link between Cmd-Q and the rest. > The rest depends on the JVM. As long as there are active non-daemon > threads running, the JVM won't exit. I suspect that the services you're > running create non-daemon threads and they prevent the JVM from exiting. > So the solution you came up with (calling applicationContext.close()) > looks correct: you tell the background services to shut down, and then > the application can terminate as expected. > > Hope this helps. It makes perfectly sense. Thanks. -- Fabrizio Giudici - Java Architect @ Tidalwave s.a.s. "We make Java work. Everywhere." http://tidalwave.it/fabrizio/blog - fabrizio.giudici at tidalwave.it From tobi at ultramixer.com Fri Jul 5 04:21:11 2013 From: tobi at ultramixer.com (Tobias Bley) Date: Fri, 5 Jul 2013 13:21:11 +0200 Subject: JavaFX8 on iPhone! It works! In-Reply-To: <252710C7-403E-4752-9979-191924A04694@gmail.com> References: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> <51D4B437.4060303@oracle.com> <26BFCCAA-2B2D-4711-A2B4-4312F00C09EB@ultramixer.com> <252710C7-403E-4752-9979-191924A04694@gmail.com> Message-ID: Maybe the missing classes in the android classes used by RoboVM are only missing in an old android class library and Oracles android port is based on a newer version? Am 05.07.2013 um 13:11 schrieb Daniel Zwolenski : > This is great Tobi, thanks! > > I'm a bit confused though - seems to be mixed messages on the need for the 78 backport? > > Danno, since Niklas is saying we need the backport, what steps do we need to take to get this working? > > I also don't understand Tobi's comments below about not using the android jdk. What is it that's not working, and isn't jfx suppose to run on android as well? > > > > On 04/07/2013, at 11:53 PM, Tobias Bley wrote: > >> I published by blog post about using JavaFX8 and RoboVM to build a iOS app: http://blog.software4java.com/?p=41 >> >> @Niklas: IMO it?s important that RoboVM support OpenJDK as alternative to the android class library because OpenJFX depends on OpenJDK not on Android class library (Apache Harmony). >> >> Best regards, >> Tobi >> >> Am 04.07.2013 um 14:49 schrieb Niklas Therning : >> >>> RoboVM doesn't do invokedynamic so I guess this only works if the app >>> doesn't depend on any of the code in JavaFX8 that compiles down to >>> invokedynamic calls. Also, there are quite a few API's available in Java8 >>> (and also Java7) that RoboVM doesn't have. We really need to get the jfx78 >>> backport to compile for iOS and generate the static libs properly. >>> >>> I've just got the font related code in the BrickBreaker sample working >>> using the jfx78 backport. There's still a bit of manual command line work >>> needed to merge the static libraries into universal libraries like the old >>> ant build system did automatically. But it isn't too hard. I'll try to put >>> up instructions on the robovm blog later today. I'll let you know. >>> >>> >>> On Thu, Jul 4, 2013 at 1:31 AM, wrote: >>> >>>> Yes. >>>> >>>> >>>> On 03/07/2013 7:17 PM, Daniel Zwolenski wrote: >>>> >>>>> Can I just use this: https://jdk8.java.net/**download.html? >>>>> >>>>> >>>>> On Thu, Jul 4, 2013 at 9:15 AM, Daniel Zwolenski >>>>> wrote: >>>>> >>>>> Thanks Richard, in the building for Mac section there is a link to >>>>>> "Install the latest JDK 8 build" that goes to a dead URL ( >>>>>> http://jdk8.dev.java.net/). Do you know the correct URL? >>>>>> >>>>>> >>>>>> >>>>>> On Thu, Jul 4, 2013 at 9:11 AM, Richard Bair ** >>>>>> wrote: >>>>>> >>>>>> Extensive documentation that is mostly correct: >>>>>>> >>>>>>> https://wiki.openjdk.java.net/**display/OpenJFX/Building+**OpenJFX >>>>>>> https://wiki.openjdk.java.net/**display/OpenJFX/Developing+**OpenJFX >>>>>>> >>>>>>> It is still a work in progress but most things you need to know to build >>>>>>> is found here. >>>>>>> >>>>>>> Richard >>>>>>> >>>>>>> On Jul 3, 2013, at 3:52 PM, Daniel Zwolenski wrote: >>>>>>> >>>>>>> Trying to catch up to Tobi on this one so I can have some fun with it >>>>>>>> >>>>>>> too. >>>>>>> >>>>>>>> I assume in order to compile the graphics repo of JFX8 I need an OpenJ8 >>>>>>>> >>>>>>> JDK >>>>>>> >>>>>>>> already installed? Are there pre-built bundles for this (for mac) or do >>>>>>>> >>>>>>> I >>>>>>> >>>>>>>> need to checkout and build myself? Does anyone know which repo, and >>>>>>>> what >>>>>>>> command line arg should I use to build J8 in this case? >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Jul 4, 2013 at 6:44 AM, Tobias Bley >>>>>>>> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi Guys, >>>>>>>>> >>>>>>>>> I used RoboVM 0.0.2 and the current OpenJFX8 from mercurial graphics >>>>>>>>> branch.... So no 78 backport. I will write a blog post on >>>>>>>>> blog.software4java.com until tomorrow... >>>>>>>>> >>>>>>>>> Currently the performance is very limited - as Richard told too. I?m >>>>>>>>> testing now all the basic JFX controls (like button, RadioButton, >>>>>>>>> >>>>>>>> CheckBox, >>>>>>> >>>>>>>> ListView, TableView, ...). >>>>>>>>> >>>>>>>>> Best regards, >>>>>>>>> Tobi >>>>>>>>> >>>>>>>>> >>>>>>>>> Am 03.07.2013 um 21:47 schrieb Daniel Zwolenski : >>>>>>>>> >>>>>>>>> Tobi, this is awesome! But you've left us hanging :) >>>>>>>>>> >>>>>>>>>> Did you use the 78 backport for this or just straight out J8? >>>>>>>>>> >>>>>>>>>> What are the steps to reproduce your working build? >>>>>>>>>> >>>>>>>>>> Very darn exciting! >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 04/07/2013, at 2:50 AM, Danno Ferrin >>>>>>>>>> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> JavaFX 8? Does RoboVM support invokedynamic? That is a big deal if >>>>>>>>>>> >>>>>>>>>> so. >>>>>>> >>>>>>>> On Wed, Jul 3, 2013 at 10:07 AM, Niklas Therning < >>>>>>>>>>> >>>>>>>>>> niklas at therning.org >>>>>>> >>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Awesome! Can you please post the build instructions somewhere? I'm >>>>>>>>>>>> >>>>>>>>>>> not >>>>>>> >>>>>>>> getting a long with gradle at all. :-( >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Wed, Jul 3, 2013 at 6:03 PM, Tobi wrote: >>>>>>>>>>>> >>>>>>>>>>>> It works! Latest JavaFX 8 (gradle based) with RoboVM on a real >>>>>>>>>>>>> >>>>>>>>>>>> iPhone >>>>>>> >>>>>>>> with >>>>>>>>>>>> >>>>>>>>>>>>> native text rendering and JFX CSS rendering! >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Tobi >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>> >>>>>>> >>>> >> From hang.vo at oracle.com Fri Jul 5 04:51:31 2013 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 05 Jul 2013 11:51:31 +0000 Subject: hg: openjfx/8/graphics/rt: RT-30649: SwingNode: Swing events should not be dispatched if content is not set Message-ID: <20130705115228.E25E64881F@hg.openjdk.java.net> Changeset: c92013229eda Author: ant Date: 2013-07-05 15:14 +0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/c92013229eda RT-30649: SwingNode: Swing events should not be dispatched if content is not set Reviewed-by: art ! modules/swing/src/main/java/javafx/embed/swing/SwingNode.java From niklas at therning.org Fri Jul 5 04:57:30 2013 From: niklas at therning.org (Niklas Therning) Date: Fri, 5 Jul 2013 13:57:30 +0200 Subject: JavaFX8 on iPhone! It works! In-Reply-To: References: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> <51D4B437.4060303@oracle.com> <26BFCCAA-2B2D-4711-A2B4-4312F00C09EB@ultramixer.com> <252710C7-403E-4752-9979-191924A04694@gmail.com> Message-ID: Even the latest version of Android are missing these classes and Dalvik (the VM in Android) doesn't support invokedynamic so a backport is required, not just for RoboVM. I managed to get Ensemble working yesterday on iOS with the jfx78 sources and RoboVM. But even this backport contains code which won't work on Android nor on RoboVM. E.g. I had to patch FontFileWriter to get Ensemble working (it uses java.nio.file.Files which is a Java7+ class). IMO the backport needs to target Android/RoboVM specifically and not Java7. A first step would be to make it compile with Java6. On Fri, Jul 5, 2013 at 1:21 PM, Tobias Bley wrote: > Maybe the missing classes in the android classes used by RoboVM are only > missing in an old android class library and Oracles android port is based > on a newer version? > > > Am 05.07.2013 um 13:11 schrieb Daniel Zwolenski : > > > This is great Tobi, thanks! > > > > I'm a bit confused though - seems to be mixed messages on the need for > the 78 backport? > > > > Danno, since Niklas is saying we need the backport, what steps do we > need to take to get this working? > > > > I also don't understand Tobi's comments below about not using the > android jdk. What is it that's not working, and isn't jfx suppose to run on > android as well? > > > > > > > > On 04/07/2013, at 11:53 PM, Tobias Bley wrote: > > > >> I published by blog post about using JavaFX8 and RoboVM to build a iOS > app: http://blog.software4java.com/?p=41 > >> > >> @Niklas: IMO it?s important that RoboVM support OpenJDK as alternative > to the android class library because OpenJFX depends on OpenJDK not on > Android class library (Apache Harmony). > >> > >> Best regards, > >> Tobi > >> > >> Am 04.07.2013 um 14:49 schrieb Niklas Therning : > >> > >>> RoboVM doesn't do invokedynamic so I guess this only works if the app > >>> doesn't depend on any of the code in JavaFX8 that compiles down to > >>> invokedynamic calls. Also, there are quite a few API's available in > Java8 > >>> (and also Java7) that RoboVM doesn't have. We really need to get the > jfx78 > >>> backport to compile for iOS and generate the static libs properly. > >>> > >>> I've just got the font related code in the BrickBreaker sample working > >>> using the jfx78 backport. There's still a bit of manual command line > work > >>> needed to merge the static libraries into universal libraries like the > old > >>> ant build system did automatically. But it isn't too hard. I'll try to > put > >>> up instructions on the robovm blog later today. I'll let you know. > >>> > >>> > >>> On Thu, Jul 4, 2013 at 1:31 AM, wrote: > >>> > >>>> Yes. > >>>> > >>>> > >>>> On 03/07/2013 7:17 PM, Daniel Zwolenski wrote: > >>>> > >>>>> Can I just use this: https://jdk8.java.net/**download.html< > https://jdk8.java.net/download.html>? > >>>>> > >>>>> > >>>>> On Thu, Jul 4, 2013 at 9:15 AM, Daniel Zwolenski > >>>>> wrote: > >>>>> > >>>>> Thanks Richard, in the building for Mac section there is a link to > >>>>>> "Install the latest JDK 8 build" that goes to a dead URL ( > >>>>>> http://jdk8.dev.java.net/). Do you know the correct URL? > >>>>>> > >>>>>> > >>>>>> > >>>>>> On Thu, Jul 4, 2013 at 9:11 AM, Richard Bair < > richard.bair at oracle.com>** > >>>>>> wrote: > >>>>>> > >>>>>> Extensive documentation that is mostly correct: > >>>>>>> > >>>>>>> https://wiki.openjdk.java.net/**display/OpenJFX/Building+**OpenJFX > > >>>>>>> > https://wiki.openjdk.java.net/**display/OpenJFX/Developing+**OpenJFX< > https://wiki.openjdk.java.net/display/OpenJFX/Developing+OpenJFX> > >>>>>>> > >>>>>>> It is still a work in progress but most things you need to know to > build > >>>>>>> is found here. > >>>>>>> > >>>>>>> Richard > >>>>>>> > >>>>>>> On Jul 3, 2013, at 3:52 PM, Daniel Zwolenski > wrote: > >>>>>>> > >>>>>>> Trying to catch up to Tobi on this one so I can have some fun with > it > >>>>>>>> > >>>>>>> too. > >>>>>>> > >>>>>>>> I assume in order to compile the graphics repo of JFX8 I need an > OpenJ8 > >>>>>>>> > >>>>>>> JDK > >>>>>>> > >>>>>>>> already installed? Are there pre-built bundles for this (for mac) > or do > >>>>>>>> > >>>>>>> I > >>>>>>> > >>>>>>>> need to checkout and build myself? Does anyone know which repo, > and > >>>>>>>> what > >>>>>>>> command line arg should I use to build J8 in this case? > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> On Thu, Jul 4, 2013 at 6:44 AM, Tobias Bley > >>>>>>>> > >>>>>>> wrote: > >>>>>>> > >>>>>>>> Hi Guys, > >>>>>>>>> > >>>>>>>>> I used RoboVM 0.0.2 and the current OpenJFX8 from mercurial > graphics > >>>>>>>>> branch.... So no 78 backport. I will write a blog post on > >>>>>>>>> blog.software4java.com until tomorrow... > >>>>>>>>> > >>>>>>>>> Currently the performance is very limited - as Richard told too. > I?m > >>>>>>>>> testing now all the basic JFX controls (like button, RadioButton, > >>>>>>>>> > >>>>>>>> CheckBox, > >>>>>>> > >>>>>>>> ListView, TableView, ...). > >>>>>>>>> > >>>>>>>>> Best regards, > >>>>>>>>> Tobi > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> Am 03.07.2013 um 21:47 schrieb Daniel Zwolenski < > zonski at gmail.com>: > >>>>>>>>> > >>>>>>>>> Tobi, this is awesome! But you've left us hanging :) > >>>>>>>>>> > >>>>>>>>>> Did you use the 78 backport for this or just straight out J8? > >>>>>>>>>> > >>>>>>>>>> What are the steps to reproduce your working build? > >>>>>>>>>> > >>>>>>>>>> Very darn exciting! > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> On 04/07/2013, at 2:50 AM, Danno Ferrin < > danno.ferrin at shemnon.com> > >>>>>>>>>> > >>>>>>>>> wrote: > >>>>>>>>> > >>>>>>>>>> JavaFX 8? Does RoboVM support invokedynamic? That is a big > deal if > >>>>>>>>>>> > >>>>>>>>>> so. > >>>>>>> > >>>>>>>> On Wed, Jul 3, 2013 at 10:07 AM, Niklas Therning < > >>>>>>>>>>> > >>>>>>>>>> niklas at therning.org > >>>>>>> > >>>>>>>> wrote: > >>>>>>>>>> > >>>>>>>>>>> Awesome! Can you please post the build instructions somewhere? > I'm > >>>>>>>>>>>> > >>>>>>>>>>> not > >>>>>>> > >>>>>>>> getting a long with gradle at all. :-( > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> On Wed, Jul 3, 2013 at 6:03 PM, Tobi > wrote: > >>>>>>>>>>>> > >>>>>>>>>>>> It works! Latest JavaFX 8 (gradle based) with RoboVM on a real > >>>>>>>>>>>>> > >>>>>>>>>>>> iPhone > >>>>>>> > >>>>>>>> with > >>>>>>>>>>>> > >>>>>>>>>>>>> native text rendering and JFX CSS rendering! > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> Tobi > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>> > >>>>>>> > >>>> > >> > > From niklas at therning.org Fri Jul 5 05:03:53 2013 From: niklas at therning.org (Niklas Therning) Date: Fri, 5 Jul 2013 14:03:53 +0200 Subject: iOS: Calling native methods on iPhone In-Reply-To: References: <1014ED74-2819-48B5-94BF-82BF2CD6DE7B@ultramixer.com> <07EFFF03-227C-48D2-9215-48C669329AC2@bestsolution.at> <51D69869.7010402@bestsolution.at> Message-ID: RoboVM already has bindings for most of the stuff in UIKit, UIImagePickerController included [1]. It's in the robovm-cocoatouch.jar file included in the download. It's mostly untested though. Please go ahead and try it out and let me know how it goes. [1] https://github.com/robovm/robovm/blob/master/cocoatouch/src/main/java/org/robovm/cocoatouch/uikit/UIImagePickerController.java On Fri, Jul 5, 2013 at 12:26 PM, Tobias Bley wrote: > Hi Tom, > > thats great! We need such efforts! > the goal should be to use the automatically wrapped UIKit from Java, call > the image picker and fetch an image from the iphone to show it in JavaFX! > > Who is the first guy who posts a demo image ;)? > > Best regards, > Tobi > > It would be fantastic to have a real use case for using a native cocoa > touch function in JavaFX (on RoboVM). I suggest to load an image via > ImagePicker from the iPhone image library. So we need to use the UIKit > framework and the UIImagePickerController... > > Am 05.07.2013 um 11:56 schrieb Tom Schindl : > > > Hi, > > > > To not write the bro stuff manually I fired up xtext yesterday and > created a small DSL which holds the (relevant) Header-Information and > generates the Bro-Files for you. > > > > You can see the input > https://github.com/tomsontom/objcgenerator/tree/master/bundles/at.bestsolution.objc.mapper.cocoatouch/mappingsand output > https://github.com/tomsontom/objcgenerator/tree/master/bundles/at.bestsolution.objc.mapper.cocoatouch/src/main/java/org/robovm/cocoatouch/corelocation. > > > > Currently it is bound to Eclipse but I could add support to run the > mapper on the command line as well. > > > > Tom > > > > On 04.07.13 18:16, Tom Schindl wrote: > >> Robovm does that without jni it is called bro > >> > >> Tom > >> > >> Von meinem iPhone gesendet > >> > >> Am 04.07.2013 um 17:44 schrieb Tobias Bley : > >> > >>> Hi, > >>> > >>> after successfully using JavaFX (including font and CSS) on iOS I > tried to call native code on iPhone. I successfully fetched and visualized > the battery level of the iPhone! > >>> > >>> To do this I wrote objective c code and bind it to Java via JNI. No > problem so far. > >>> > >>> > >>> > >>> But what I would like to do is using a technology like JNA to directly > access Cocoa frameworks without writing native JNI code. Does anybody knows > if JNA (or something else) could also be used in RoboVM? > >>> > >>> Best regards, > >>> Tobi > >>> > >>> > >>> > > > > From zonski at gmail.com Fri Jul 5 05:07:19 2013 From: zonski at gmail.com (Daniel Zwolenski) Date: Fri, 5 Jul 2013 22:07:19 +1000 Subject: JavaFX8 on iPhone! It works! In-Reply-To: References: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> <51D4B437.4060303@oracle.com> <26BFCCAA-2B2D-4711-A2B4-4312F00C09EB@ultramixer.com> <252710C7-403E-4752-9979-191924A04694@gmail.com> Message-ID: <38AE7290-594A-40BA-B47F-E79BC7481BF0@gmail.com> Thanks Niklas - sounds like there's still a bit to do. I'm still a bit confused though, I thought the JFX team were/are giving us a version of jfx that is specifically designed to work on Android but it sounds like that's pretty far from the actuality? What will the gradle build for android actually give us? I'd be keen to hear from someone on the jfx side on all of this. Is this how you planned for your smart device releases to work or has something gone wrong in the journey here? On 05/07/2013, at 9:57 PM, Niklas Therning wrote: > From herve.girod at gmail.com Fri Jul 5 05:37:19 2013 From: herve.girod at gmail.com (=?utf-8?Q?Herv=C3=A9_Girod?=) Date: Fri, 5 Jul 2013 14:37:19 +0200 Subject: JavaFX8 on iPhone! It works! In-Reply-To: References: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> <51D4B437.4060303@oracle.com> <26BFCCAA-2B2D-4711-A2B4-4312F00C09EB@ultramixer.com> <252710C7-403E-4752-9979-191924A04694@gmail.com> Message-ID: <933BA34B-865F-481E-BB49-1578A7D71A95@gmail.com> I'm with Tobias. Android class library has really stalled a lot compared to Java, and it wont improve in the future, and sticking to an outdated class library is not very interesting IMO. Beside we don't specifically need Android class library to compile AOT. Mono work on Android, and it even does not use Android class library. Herv? Sent from my iPhone On 5 juil. 2013, at 13:57, Niklas Therning wrote: > Even the latest version of Android are missing these classes and Dalvik > (the VM in Android) doesn't support invokedynamic so a backport is > required, not just for RoboVM. I managed to get Ensemble working yesterday > on iOS with the jfx78 sources and RoboVM. But even this backport contains > code which won't work on Android nor on RoboVM. E.g. I had to patch > FontFileWriter to get Ensemble working (it uses java.nio.file.Files which > is a Java7+ class). IMO the backport needs to target Android/RoboVM > specifically and not Java7. A first step would be to make it compile with > Java6. > > > On Fri, Jul 5, 2013 at 1:21 PM, Tobias Bley wrote: > >> Maybe the missing classes in the android classes used by RoboVM are only >> missing in an old android class library and Oracles android port is based >> on a newer version? >> >> >> Am 05.07.2013 um 13:11 schrieb Daniel Zwolenski : >> >>> This is great Tobi, thanks! >>> >>> I'm a bit confused though - seems to be mixed messages on the need for >> the 78 backport? >>> >>> Danno, since Niklas is saying we need the backport, what steps do we >> need to take to get this working? >>> >>> I also don't understand Tobi's comments below about not using the >> android jdk. What is it that's not working, and isn't jfx suppose to run on >> android as well? >>> >>> >>> >>> On 04/07/2013, at 11:53 PM, Tobias Bley wrote: >>> >>>> I published by blog post about using JavaFX8 and RoboVM to build a iOS >> app: http://blog.software4java.com/?p=41 >>>> >>>> @Niklas: IMO it?s important that RoboVM support OpenJDK as alternative >> to the android class library because OpenJFX depends on OpenJDK not on >> Android class library (Apache Harmony). >>>> >>>> Best regards, >>>> Tobi >>>> >>>> Am 04.07.2013 um 14:49 schrieb Niklas Therning : >>>> >>>>> RoboVM doesn't do invokedynamic so I guess this only works if the app >>>>> doesn't depend on any of the code in JavaFX8 that compiles down to >>>>> invokedynamic calls. Also, there are quite a few API's available in >> Java8 >>>>> (and also Java7) that RoboVM doesn't have. We really need to get the >> jfx78 >>>>> backport to compile for iOS and generate the static libs properly. >>>>> >>>>> I've just got the font related code in the BrickBreaker sample working >>>>> using the jfx78 backport. There's still a bit of manual command line >> work >>>>> needed to merge the static libraries into universal libraries like the >> old >>>>> ant build system did automatically. But it isn't too hard. I'll try to >> put >>>>> up instructions on the robovm blog later today. I'll let you know. >>>>> >>>>> >>>>> On Thu, Jul 4, 2013 at 1:31 AM, wrote: >>>>> >>>>>> Yes. >>>>>> >>>>>> >>>>>> On 03/07/2013 7:17 PM, Daniel Zwolenski wrote: >>>>>> >>>>>>> Can I just use this: https://jdk8.java.net/**download.html< >> https://jdk8.java.net/download.html>? >>>>>>> >>>>>>> >>>>>>> On Thu, Jul 4, 2013 at 9:15 AM, Daniel Zwolenski >>>>>>> wrote: >>>>>>> >>>>>>> Thanks Richard, in the building for Mac section there is a link to >>>>>>>> "Install the latest JDK 8 build" that goes to a dead URL ( >>>>>>>> http://jdk8.dev.java.net/). Do you know the correct URL? >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Jul 4, 2013 at 9:11 AM, Richard Bair < >> richard.bair at oracle.com>** >>>>>>>> wrote: >>>>>>>> >>>>>>>> Extensive documentation that is mostly correct: >>>>>>>>> >>>>>>>>> https://wiki.openjdk.java.net/**display/OpenJFX/Building+**OpenJFX >> >> https://wiki.openjdk.java.net/**display/OpenJFX/Developing+**OpenJFX< >> https://wiki.openjdk.java.net/display/OpenJFX/Developing+OpenJFX> >>>>>>>>> >>>>>>>>> It is still a work in progress but most things you need to know to >> build >>>>>>>>> is found here. >>>>>>>>> >>>>>>>>> Richard >>>>>>>>> >>>>>>>>> On Jul 3, 2013, at 3:52 PM, Daniel Zwolenski >> wrote: >>>>>>>>> >>>>>>>>> Trying to catch up to Tobi on this one so I can have some fun with >> it >>>>>>>>> too. >>>>>>>>> >>>>>>>>>> I assume in order to compile the graphics repo of JFX8 I need an >> OpenJ8 >>>>>>>>> JDK >>>>>>>>> >>>>>>>>>> already installed? Are there pre-built bundles for this (for mac) >> or do >>>>>>>>> I >>>>>>>>> >>>>>>>>>> need to checkout and build myself? Does anyone know which repo, >> and >>>>>>>>>> what >>>>>>>>>> command line arg should I use to build J8 in this case? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Thu, Jul 4, 2013 at 6:44 AM, Tobias Bley >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hi Guys, >>>>>>>>>>> >>>>>>>>>>> I used RoboVM 0.0.2 and the current OpenJFX8 from mercurial >> graphics >>>>>>>>>>> branch.... So no 78 backport. I will write a blog post on >>>>>>>>>>> blog.software4java.com until tomorrow... >>>>>>>>>>> >>>>>>>>>>> Currently the performance is very limited - as Richard told too. >> I?m >>>>>>>>>>> testing now all the basic JFX controls (like button, RadioButton, >>>>>>>>>> CheckBox, >>>>>>>>> >>>>>>>>>> ListView, TableView, ...). >>>>>>>>>>> >>>>>>>>>>> Best regards, >>>>>>>>>>> Tobi >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Am 03.07.2013 um 21:47 schrieb Daniel Zwolenski < >> zonski at gmail.com>: >>>>>>>>>>> >>>>>>>>>>> Tobi, this is awesome! But you've left us hanging :) >>>>>>>>>>>> >>>>>>>>>>>> Did you use the 78 backport for this or just straight out J8? >>>>>>>>>>>> >>>>>>>>>>>> What are the steps to reproduce your working build? >>>>>>>>>>>> >>>>>>>>>>>> Very darn exciting! >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 04/07/2013, at 2:50 AM, Danno Ferrin < >> danno.ferrin at shemnon.com> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> JavaFX 8? Does RoboVM support invokedynamic? That is a big >> deal if >>>>>>>>>>>> so. >>>>>>>>> >>>>>>>>>> On Wed, Jul 3, 2013 at 10:07 AM, Niklas Therning < >>>>>>>>>>>> niklas at therning.org >>>>>>>>> >>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Awesome! Can you please post the build instructions somewhere? >> I'm >>>>>>>>>>>>> not >>>>>>>>> >>>>>>>>>> getting a long with gradle at all. :-( >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Wed, Jul 3, 2013 at 6:03 PM, Tobi >> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> It works! Latest JavaFX 8 (gradle based) with RoboVM on a real >>>>>>>>>>>>>> iPhone >>>>>>>>> >>>>>>>>>> with >>>>>>>>>>>>>> >>>>>>>>>>>>>>> native text rendering and JFX CSS rendering! >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Tobi >> >> From tobi at ultramixer.com Fri Jul 5 05:35:20 2013 From: tobi at ultramixer.com (Tobi) Date: Fri, 5 Jul 2013 14:35:20 +0200 Subject: iOS: Calling native methods on iPhone In-Reply-To: References: <1014ED74-2819-48B5-94BF-82BF2CD6DE7B@ultramixer.com> <07EFFF03-227C-48D2-9215-48C669329AC2@bestsolution.at> <51D69869.7010402@bestsolution.at> Message-ID: Yes I know and I tried it already. But it throws an classCastException when setting the delegate to imagepicker. I think the problem could be that I do not use cocoa touch for the UI, I use javafx. Am 05.07.2013 um 14:03 schrieb Niklas Therning : > RoboVM already has bindings for most of the stuff in UIKit, UIImagePickerController included [1]. It's in the robovm-cocoatouch.jar file included in the download. It's mostly untested though. Please go ahead and try it out and let me know how it goes. > > [1] https://github.com/robovm/robovm/blob/master/cocoatouch/src/main/java/org/robovm/cocoatouch/uikit/UIImagePickerController.java > > > On Fri, Jul 5, 2013 at 12:26 PM, Tobias Bley wrote: >> Hi Tom, >> >> thats great! We need such efforts! >> the goal should be to use the automatically wrapped UIKit from Java, call the image picker and fetch an image from the iphone to show it in JavaFX! >> >> Who is the first guy who posts a demo image ;)? >> >> Best regards, >> Tobi >> >> It would be fantastic to have a real use case for using a native cocoa touch function in JavaFX (on RoboVM). I suggest to load an image via ImagePicker from the iPhone image library. So we need to use the UIKit framework and the UIImagePickerController... >> >> Am 05.07.2013 um 11:56 schrieb Tom Schindl : >> >> > Hi, >> > >> > To not write the bro stuff manually I fired up xtext yesterday and created a small DSL which holds the (relevant) Header-Information and generates the Bro-Files for you. >> > >> > You can see the input https://github.com/tomsontom/objcgenerator/tree/master/bundles/at.bestsolution.objc.mapper.cocoatouch/mappings and output https://github.com/tomsontom/objcgenerator/tree/master/bundles/at.bestsolution.objc.mapper.cocoatouch/src/main/java/org/robovm/cocoatouch/corelocation . >> > >> > Currently it is bound to Eclipse but I could add support to run the mapper on the command line as well. >> > >> > Tom >> > >> > On 04.07.13 18:16, Tom Schindl wrote: >> >> Robovm does that without jni it is called bro >> >> >> >> Tom >> >> >> >> Von meinem iPhone gesendet >> >> >> >> Am 04.07.2013 um 17:44 schrieb Tobias Bley : >> >> >> >>> Hi, >> >>> >> >>> after successfully using JavaFX (including font and CSS) on iOS I tried to call native code on iPhone. I successfully fetched and visualized the battery level of the iPhone! >> >>> >> >>> To do this I wrote objective c code and bind it to Java via JNI. No problem so far. >> >>> >> >>> >> >>> >> >>> But what I would like to do is using a technology like JNA to directly access Cocoa frameworks without writing native JNI code. Does anybody knows if JNA (or something else) could also be used in RoboVM? >> >>> >> >>> Best regards, >> >>> Tobi >> >>> >> >>> >> >>> >> > > From tobi at ultramixer.com Fri Jul 5 05:37:03 2013 From: tobi at ultramixer.com (Tobi) Date: Fri, 5 Jul 2013 14:37:03 +0200 Subject: JavaFX8 on iPhone! It works! In-Reply-To: <933BA34B-865F-481E-BB49-1578A7D71A95@gmail.com> References: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> <51D4B437.4060303@oracle.com> <26BFCCAA-2B2D-4711-A2B4-4312F00C09EB@ultramixer.com> <252710C7-403E-4752-9979-191924A04694@gmail.com> <933BA34B-865F-481E-BB49-1578A7D71A95@gmail.com> Message-ID: <224E255E-2814-4A86-8DAA-4A6D39FCFC5D@ultramixer.com> Mono is not Java and does not need the android java class library... Von meinem iPhone gesendet Am 05.07.2013 um 14:37 schrieb Herv? Girod : > I'm with Tobias. Android class library has really stalled a lot compared to Java, and it wont improve in the future, and sticking to an outdated class library is not very interesting IMO. > > Beside we don't specifically need Android class library to compile AOT. Mono work on Android, and it even does not use Android class library. > > Herv? > > Sent from my iPhone > > On 5 juil. 2013, at 13:57, Niklas Therning wrote: > >> Even the latest version of Android are missing these classes and Dalvik >> (the VM in Android) doesn't support invokedynamic so a backport is >> required, not just for RoboVM. I managed to get Ensemble working yesterday >> on iOS with the jfx78 sources and RoboVM. But even this backport contains >> code which won't work on Android nor on RoboVM. E.g. I had to patch >> FontFileWriter to get Ensemble working (it uses java.nio.file.Files which >> is a Java7+ class). IMO the backport needs to target Android/RoboVM >> specifically and not Java7. A first step would be to make it compile with >> Java6. >> >> >> On Fri, Jul 5, 2013 at 1:21 PM, Tobias Bley wrote: >> >>> Maybe the missing classes in the android classes used by RoboVM are only >>> missing in an old android class library and Oracles android port is based >>> on a newer version? >>> >>> >>> Am 05.07.2013 um 13:11 schrieb Daniel Zwolenski : >>> >>>> This is great Tobi, thanks! >>>> >>>> I'm a bit confused though - seems to be mixed messages on the need for >>> the 78 backport? >>>> >>>> Danno, since Niklas is saying we need the backport, what steps do we >>> need to take to get this working? >>>> >>>> I also don't understand Tobi's comments below about not using the >>> android jdk. What is it that's not working, and isn't jfx suppose to run on >>> android as well? >>>> >>>> >>>> >>>> On 04/07/2013, at 11:53 PM, Tobias Bley wrote: >>>> >>>>> I published by blog post about using JavaFX8 and RoboVM to build a iOS >>> app: http://blog.software4java.com/?p=41 >>>>> >>>>> @Niklas: IMO it?s important that RoboVM support OpenJDK as alternative >>> to the android class library because OpenJFX depends on OpenJDK not on >>> Android class library (Apache Harmony). >>>>> >>>>> Best regards, >>>>> Tobi >>>>> >>>>> Am 04.07.2013 um 14:49 schrieb Niklas Therning : >>>>> >>>>>> RoboVM doesn't do invokedynamic so I guess this only works if the app >>>>>> doesn't depend on any of the code in JavaFX8 that compiles down to >>>>>> invokedynamic calls. Also, there are quite a few API's available in >>> Java8 >>>>>> (and also Java7) that RoboVM doesn't have. We really need to get the >>> jfx78 >>>>>> backport to compile for iOS and generate the static libs properly. >>>>>> >>>>>> I've just got the font related code in the BrickBreaker sample working >>>>>> using the jfx78 backport. There's still a bit of manual command line >>> work >>>>>> needed to merge the static libraries into universal libraries like the >>> old >>>>>> ant build system did automatically. But it isn't too hard. I'll try to >>> put >>>>>> up instructions on the robovm blog later today. I'll let you know. >>>>>> >>>>>> >>>>>> On Thu, Jul 4, 2013 at 1:31 AM, wrote: >>>>>> >>>>>>> Yes. >>>>>>> >>>>>>> >>>>>>> On 03/07/2013 7:17 PM, Daniel Zwolenski wrote: >>>>>>> >>>>>>>> Can I just use this: https://jdk8.java.net/**download.html< >>> https://jdk8.java.net/download.html>? >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Jul 4, 2013 at 9:15 AM, Daniel Zwolenski >>>>>>>> wrote: >>>>>>>> >>>>>>>> Thanks Richard, in the building for Mac section there is a link to >>>>>>>>> "Install the latest JDK 8 build" that goes to a dead URL ( >>>>>>>>> http://jdk8.dev.java.net/). Do you know the correct URL? >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, Jul 4, 2013 at 9:11 AM, Richard Bair < >>> richard.bair at oracle.com>** >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Extensive documentation that is mostly correct: >>>>>>>>>> >>>>>>>>>> https://wiki.openjdk.java.net/**display/OpenJFX/Building+**OpenJFX >>> >>> https://wiki.openjdk.java.net/**display/OpenJFX/Developing+**OpenJFX< >>> https://wiki.openjdk.java.net/display/OpenJFX/Developing+OpenJFX> >>>>>>>>>> >>>>>>>>>> It is still a work in progress but most things you need to know to >>> build >>>>>>>>>> is found here. >>>>>>>>>> >>>>>>>>>> Richard >>>>>>>>>> >>>>>>>>>> On Jul 3, 2013, at 3:52 PM, Daniel Zwolenski >>> wrote: >>>>>>>>>> >>>>>>>>>> Trying to catch up to Tobi on this one so I can have some fun with >>> it >>>>>>>>>> too. >>>>>>>>>> >>>>>>>>>>> I assume in order to compile the graphics repo of JFX8 I need an >>> OpenJ8 >>>>>>>>>> JDK >>>>>>>>>> >>>>>>>>>>> already installed? Are there pre-built bundles for this (for mac) >>> or do >>>>>>>>>> I >>>>>>>>>> >>>>>>>>>>> need to checkout and build myself? Does anyone know which repo, >>> and >>>>>>>>>>> what >>>>>>>>>>> command line arg should I use to build J8 in this case? >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Thu, Jul 4, 2013 at 6:44 AM, Tobias Bley >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Guys, >>>>>>>>>>>> >>>>>>>>>>>> I used RoboVM 0.0.2 and the current OpenJFX8 from mercurial >>> graphics >>>>>>>>>>>> branch.... So no 78 backport. I will write a blog post on >>>>>>>>>>>> blog.software4java.com until tomorrow... >>>>>>>>>>>> >>>>>>>>>>>> Currently the performance is very limited - as Richard told too. >>> I?m >>>>>>>>>>>> testing now all the basic JFX controls (like button, RadioButton, >>>>>>>>>>> CheckBox, >>>>>>>>>> >>>>>>>>>>> ListView, TableView, ...). >>>>>>>>>>>> >>>>>>>>>>>> Best regards, >>>>>>>>>>>> Tobi >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Am 03.07.2013 um 21:47 schrieb Daniel Zwolenski < >>> zonski at gmail.com>: >>>>>>>>>>>> >>>>>>>>>>>> Tobi, this is awesome! But you've left us hanging :) >>>>>>>>>>>>> >>>>>>>>>>>>> Did you use the 78 backport for this or just straight out J8? >>>>>>>>>>>>> >>>>>>>>>>>>> What are the steps to reproduce your working build? >>>>>>>>>>>>> >>>>>>>>>>>>> Very darn exciting! >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On 04/07/2013, at 2:50 AM, Danno Ferrin < >>> danno.ferrin at shemnon.com> >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> JavaFX 8? Does RoboVM support invokedynamic? That is a big >>> deal if >>>>>>>>>>>>> so. >>>>>>>>>> >>>>>>>>>>> On Wed, Jul 3, 2013 at 10:07 AM, Niklas Therning < >>>>>>>>>>>>> niklas at therning.org >>>>>>>>>> >>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Awesome! Can you please post the build instructions somewhere? >>> I'm >>>>>>>>>>>>>> not >>>>>>>>>> >>>>>>>>>>> getting a long with gradle at all. :-( >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Wed, Jul 3, 2013 at 6:03 PM, Tobi >>> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> It works! Latest JavaFX 8 (gradle based) with RoboVM on a real >>>>>>>>>>>>>>> iPhone >>>>>>>>>> >>>>>>>>>>> with >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> native text rendering and JFX CSS rendering! >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Tobi >>> >>> From herve.girod at gmail.com Fri Jul 5 05:46:27 2013 From: herve.girod at gmail.com (=?utf-8?Q?Herv=C3=A9_Girod?=) Date: Fri, 5 Jul 2013 14:46:27 +0200 Subject: JavaFX8 on iPhone! It works! In-Reply-To: <224E255E-2814-4A86-8DAA-4A6D39FCFC5D@ultramixer.com> References: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> <51D4B437.4060303@oracle.com> <26BFCCAA-2B2D-4711-A2B4-4312F00C09EB@ultramixer.com> <252710C7-403E-4752-9979-191924A04694@gmail.com> <933BA34B-865F-481E-BB49-1578A7D71A95@gmail.com> <224E255E-2814-4A86-8DAA-4A6D39FCFC5D@ultramixer.com> Message-ID: IMO there is nothing that would prevent RoboVM to use OpenJDK rather than the Android library. The code is translated in native code. This is what allows it to work on iOS too. Herv? Sent from my iPhone On 5 juil. 2013, at 14:37, Tobi wrote: > Mono is not Java and does not need the android java class library... > > Von meinem iPhone gesendet > > Am 05.07.2013 um 14:37 schrieb Herv? Girod : > >> I'm with Tobias. Android class library has really stalled a lot compared to Java, and it wont improve in the future, and sticking to an outdated class library is not very interesting IMO. >> >> Beside we don't specifically need Android class library to compile AOT. Mono work on Android, and it even does not use Android class library. >> >> Herv? >> >> Sent from my iPhone >> >> On 5 juil. 2013, at 13:57, Niklas Therning wrote: >> >>> Even the latest version of Android are missing these classes and Dalvik >>> (the VM in Android) doesn't support invokedynamic so a backport is >>> required, not just for RoboVM. I managed to get Ensemble working yesterday >>> on iOS with the jfx78 sources and RoboVM. But even this backport contains >>> code which won't work on Android nor on RoboVM. E.g. I had to patch >>> FontFileWriter to get Ensemble working (it uses java.nio.file.Files which >>> is a Java7+ class). IMO the backport needs to target Android/RoboVM >>> specifically and not Java7. A first step would be to make it compile with >>> Java6. >>> >>> >>> On Fri, Jul 5, 2013 at 1:21 PM, Tobias Bley wrote: >>> >>>> Maybe the missing classes in the android classes used by RoboVM are only >>>> missing in an old android class library and Oracles android port is based >>>> on a newer version? >>>> >>>> >>>> Am 05.07.2013 um 13:11 schrieb Daniel Zwolenski : >>>> >>>>> This is great Tobi, thanks! >>>>> >>>>> I'm a bit confused though - seems to be mixed messages on the need for >>>> the 78 backport? >>>>> >>>>> Danno, since Niklas is saying we need the backport, what steps do we >>>> need to take to get this working? >>>>> >>>>> I also don't understand Tobi's comments below about not using the >>>> android jdk. What is it that's not working, and isn't jfx suppose to run on >>>> android as well? >>>>> >>>>> >>>>> >>>>> On 04/07/2013, at 11:53 PM, Tobias Bley wrote: >>>>> >>>>>> I published by blog post about using JavaFX8 and RoboVM to build a iOS >>>> app: http://blog.software4java.com/?p=41 >>>>>> >>>>>> @Niklas: IMO it?s important that RoboVM support OpenJDK as alternative >>>> to the android class library because OpenJFX depends on OpenJDK not on >>>> Android class library (Apache Harmony). >>>>>> >>>>>> Best regards, >>>>>> Tobi >>>>>> >>>>>> Am 04.07.2013 um 14:49 schrieb Niklas Therning : >>>>>> >>>>>>> RoboVM doesn't do invokedynamic so I guess this only works if the app >>>>>>> doesn't depend on any of the code in JavaFX8 that compiles down to >>>>>>> invokedynamic calls. Also, there are quite a few API's available in >>>> Java8 >>>>>>> (and also Java7) that RoboVM doesn't have. We really need to get the >>>> jfx78 >>>>>>> backport to compile for iOS and generate the static libs properly. >>>>>>> >>>>>>> I've just got the font related code in the BrickBreaker sample working >>>>>>> using the jfx78 backport. There's still a bit of manual command line >>>> work >>>>>>> needed to merge the static libraries into universal libraries like the >>>> old >>>>>>> ant build system did automatically. But it isn't too hard. I'll try to >>>> put >>>>>>> up instructions on the robovm blog later today. I'll let you know. >>>>>>> >>>>>>> >>>>>>> On Thu, Jul 4, 2013 at 1:31 AM, wrote: >>>>>>> >>>>>>>> Yes. >>>>>>>> >>>>>>>> >>>>>>>> On 03/07/2013 7:17 PM, Daniel Zwolenski wrote: >>>>>>>> >>>>>>>>> Can I just use this: https://jdk8.java.net/**download.html< >>>> https://jdk8.java.net/download.html>? >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, Jul 4, 2013 at 9:15 AM, Daniel Zwolenski >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Thanks Richard, in the building for Mac section there is a link to >>>>>>>>>> "Install the latest JDK 8 build" that goes to a dead URL ( >>>>>>>>>> http://jdk8.dev.java.net/). Do you know the correct URL? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Thu, Jul 4, 2013 at 9:11 AM, Richard Bair < >>>> richard.bair at oracle.com>** >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> Extensive documentation that is mostly correct: >>>>>>>>>>> >>>>>>>>>>> https://wiki.openjdk.java.net/**display/OpenJFX/Building+**OpenJFX >>>> >>>> https://wiki.openjdk.java.net/**display/OpenJFX/Developing+**OpenJFX< >>>> https://wiki.openjdk.java.net/display/OpenJFX/Developing+OpenJFX> >>>>>>>>>>> >>>>>>>>>>> It is still a work in progress but most things you need to know to >>>> build >>>>>>>>>>> is found here. >>>>>>>>>>> >>>>>>>>>>> Richard >>>>>>>>>>> >>>>>>>>>>> On Jul 3, 2013, at 3:52 PM, Daniel Zwolenski >>>> wrote: >>>>>>>>>>> >>>>>>>>>>> Trying to catch up to Tobi on this one so I can have some fun with >>>> it >>>>>>>>>>> too. >>>>>>>>>>> >>>>>>>>>>>> I assume in order to compile the graphics repo of JFX8 I need an >>>> OpenJ8 >>>>>>>>>>> JDK >>>>>>>>>>> >>>>>>>>>>>> already installed? Are there pre-built bundles for this (for mac) >>>> or do >>>>>>>>>>> I >>>>>>>>>>> >>>>>>>>>>>> need to checkout and build myself? Does anyone know which repo, >>>> and >>>>>>>>>>>> what >>>>>>>>>>>> command line arg should I use to build J8 in this case? >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Thu, Jul 4, 2013 at 6:44 AM, Tobias Bley >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi Guys, >>>>>>>>>>>>> >>>>>>>>>>>>> I used RoboVM 0.0.2 and the current OpenJFX8 from mercurial >>>> graphics >>>>>>>>>>>>> branch.... So no 78 backport. I will write a blog post on >>>>>>>>>>>>> blog.software4java.com until tomorrow... >>>>>>>>>>>>> >>>>>>>>>>>>> Currently the performance is very limited - as Richard told too. >>>> I?m >>>>>>>>>>>>> testing now all the basic JFX controls (like button, RadioButton, >>>>>>>>>>>> CheckBox, >>>>>>>>>>> >>>>>>>>>>>> ListView, TableView, ...). >>>>>>>>>>>>> >>>>>>>>>>>>> Best regards, >>>>>>>>>>>>> Tobi >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Am 03.07.2013 um 21:47 schrieb Daniel Zwolenski < >>>> zonski at gmail.com>: >>>>>>>>>>>>> >>>>>>>>>>>>> Tobi, this is awesome! But you've left us hanging :) >>>>>>>>>>>>>> >>>>>>>>>>>>>> Did you use the 78 backport for this or just straight out J8? >>>>>>>>>>>>>> >>>>>>>>>>>>>> What are the steps to reproduce your working build? >>>>>>>>>>>>>> >>>>>>>>>>>>>> Very darn exciting! >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 04/07/2013, at 2:50 AM, Danno Ferrin < >>>> danno.ferrin at shemnon.com> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> JavaFX 8? Does RoboVM support invokedynamic? That is a big >>>> deal if >>>>>>>>>>>>>> so. >>>>>>>>>>> >>>>>>>>>>>> On Wed, Jul 3, 2013 at 10:07 AM, Niklas Therning < >>>>>>>>>>>>>> niklas at therning.org >>>>>>>>>>> >>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Awesome! Can you please post the build instructions somewhere? >>>> I'm >>>>>>>>>>>>>>> not >>>>>>>>>>> >>>>>>>>>>>> getting a long with gradle at all. :-( >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Wed, Jul 3, 2013 at 6:03 PM, Tobi >>>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> It works! Latest JavaFX 8 (gradle based) with RoboVM on a real >>>>>>>>>>>>>>>> iPhone >>>>>>>>>>> >>>>>>>>>>>> with >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> native text rendering and JFX CSS rendering! >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Tobi >>>> >>>> From zonski at gmail.com Fri Jul 5 05:43:14 2013 From: zonski at gmail.com (Daniel Zwolenski) Date: Fri, 5 Jul 2013 22:43:14 +1000 Subject: JavaFX8 on iPhone! It works! In-Reply-To: <224E255E-2814-4A86-8DAA-4A6D39FCFC5D@ultramixer.com> References: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> <51D4B437.4060303@oracle.com> <26BFCCAA-2B2D-4711-A2B4-4312F00C09EB@ultramixer.com> <252710C7-403E-4752-9979-191924A04694@gmail.com> <933BA34B-865F-481E-BB49-1578A7D71A95@gmail.com> <224E255E-2814-4A86-8DAA-4A6D39FCFC5D@ultramixer.com> Message-ID: <11228854-B9EE-40D6-8249-D537BC5D8397@gmail.com> So I take it you guys are talking about a port of jre8 to run directly on both android and iOS hardware/os. Great. But what are the options for this? We have been focusing on robovm because it was the one that was at a working stage, but robo is based around the android rt. What options/alternatives are you guys proposing for the j8 runtime? What's out there that's working? On 05/07/2013, at 10:37 PM, Tobi wrote: > Mono is not Java and does not need the android java class library... > > Von meinem iPhone gesendet > > Am 05.07.2013 um 14:37 schrieb Herv? Girod : > >> I'm with Tobias. Android class library has really stalled a lot compared to Java, and it wont improve in the future, and sticking to an outdated class library is not very interesting IMO. >> >> Beside we don't specifically need Android class library to compile AOT. Mono work on Android, and it even does not use Android class library. >> >> Herv? >> >> Sent from my iPhone >> >> On 5 juil. 2013, at 13:57, Niklas Therning wrote: >> >>> Even the latest version of Android are missing these classes and Dalvik >>> (the VM in Android) doesn't support invokedynamic so a backport is >>> required, not just for RoboVM. I managed to get Ensemble working yesterday >>> on iOS with the jfx78 sources and RoboVM. But even this backport contains >>> code which won't work on Android nor on RoboVM. E.g. I had to patch >>> FontFileWriter to get Ensemble working (it uses java.nio.file.Files which >>> is a Java7+ class). IMO the backport needs to target Android/RoboVM >>> specifically and not Java7. A first step would be to make it compile with >>> Java6. >>> >>> >>> On Fri, Jul 5, 2013 at 1:21 PM, Tobias Bley wrote: >>> >>>> Maybe the missing classes in the android classes used by RoboVM are only >>>> missing in an old android class library and Oracles android port is based >>>> on a newer version? >>>> >>>> >>>> Am 05.07.2013 um 13:11 schrieb Daniel Zwolenski : >>>> >>>>> This is great Tobi, thanks! >>>>> >>>>> I'm a bit confused though - seems to be mixed messages on the need for >>>> the 78 backport? >>>>> >>>>> Danno, since Niklas is saying we need the backport, what steps do we >>>> need to take to get this working? >>>>> >>>>> I also don't understand Tobi's comments below about not using the >>>> android jdk. What is it that's not working, and isn't jfx suppose to run on >>>> android as well? >>>>> >>>>> >>>>> >>>>> On 04/07/2013, at 11:53 PM, Tobias Bley wrote: >>>>> >>>>>> I published by blog post about using JavaFX8 and RoboVM to build a iOS >>>> app: http://blog.software4java.com/?p=41 >>>>>> >>>>>> @Niklas: IMO it?s important that RoboVM support OpenJDK as alternative >>>> to the android class library because OpenJFX depends on OpenJDK not on >>>> Android class library (Apache Harmony). >>>>>> >>>>>> Best regards, >>>>>> Tobi >>>>>> >>>>>> Am 04.07.2013 um 14:49 schrieb Niklas Therning : >>>>>> >>>>>>> RoboVM doesn't do invokedynamic so I guess this only works if the app >>>>>>> doesn't depend on any of the code in JavaFX8 that compiles down to >>>>>>> invokedynamic calls. Also, there are quite a few API's available in >>>> Java8 >>>>>>> (and also Java7) that RoboVM doesn't have. We really need to get the >>>> jfx78 >>>>>>> backport to compile for iOS and generate the static libs properly. >>>>>>> >>>>>>> I've just got the font related code in the BrickBreaker sample working >>>>>>> using the jfx78 backport. There's still a bit of manual command line >>>> work >>>>>>> needed to merge the static libraries into universal libraries like the >>>> old >>>>>>> ant build system did automatically. But it isn't too hard. I'll try to >>>> put >>>>>>> up instructions on the robovm blog later today. I'll let you know. >>>>>>> >>>>>>> >>>>>>> On Thu, Jul 4, 2013 at 1:31 AM, wrote: >>>>>>> >>>>>>>> Yes. >>>>>>>> >>>>>>>> >>>>>>>> On 03/07/2013 7:17 PM, Daniel Zwolenski wrote: >>>>>>>> >>>>>>>>> Can I just use this: https://jdk8.java.net/**download.html< >>>> https://jdk8.java.net/download.html>? >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, Jul 4, 2013 at 9:15 AM, Daniel Zwolenski >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Thanks Richard, in the building for Mac section there is a link to >>>>>>>>>> "Install the latest JDK 8 build" that goes to a dead URL ( >>>>>>>>>> http://jdk8.dev.java.net/). Do you know the correct URL? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Thu, Jul 4, 2013 at 9:11 AM, Richard Bair < >>>> richard.bair at oracle.com>** >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> Extensive documentation that is mostly correct: >>>>>>>>>>> >>>>>>>>>>> https://wiki.openjdk.java.net/**display/OpenJFX/Building+**OpenJFX >>>> >>>> https://wiki.openjdk.java.net/**display/OpenJFX/Developing+**OpenJFX< >>>> https://wiki.openjdk.java.net/display/OpenJFX/Developing+OpenJFX> >>>>>>>>>>> >>>>>>>>>>> It is still a work in progress but most things you need to know to >>>> build >>>>>>>>>>> is found here. >>>>>>>>>>> >>>>>>>>>>> Richard >>>>>>>>>>> >>>>>>>>>>> On Jul 3, 2013, at 3:52 PM, Daniel Zwolenski >>>> wrote: >>>>>>>>>>> >>>>>>>>>>> Trying to catch up to Tobi on this one so I can have some fun with >>>> it >>>>>>>>>>> too. >>>>>>>>>>> >>>>>>>>>>>> I assume in order to compile the graphics repo of JFX8 I need an >>>> OpenJ8 >>>>>>>>>>> JDK >>>>>>>>>>> >>>>>>>>>>>> already installed? Are there pre-built bundles for this (for mac) >>>> or do >>>>>>>>>>> I >>>>>>>>>>> >>>>>>>>>>>> need to checkout and build myself? Does anyone know which repo, >>>> and >>>>>>>>>>>> what >>>>>>>>>>>> command line arg should I use to build J8 in this case? >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Thu, Jul 4, 2013 at 6:44 AM, Tobias Bley >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi Guys, >>>>>>>>>>>>> >>>>>>>>>>>>> I used RoboVM 0.0.2 and the current OpenJFX8 from mercurial >>>> graphics >>>>>>>>>>>>> branch.... So no 78 backport. I will write a blog post on >>>>>>>>>>>>> blog.software4java.com until tomorrow... >>>>>>>>>>>>> >>>>>>>>>>>>> Currently the performance is very limited - as Richard told too. >>>> I?m >>>>>>>>>>>>> testing now all the basic JFX controls (like button, RadioButton, >>>>>>>>>>>> CheckBox, >>>>>>>>>>> >>>>>>>>>>>> ListView, TableView, ...). >>>>>>>>>>>>> >>>>>>>>>>>>> Best regards, >>>>>>>>>>>>> Tobi >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Am 03.07.2013 um 21:47 schrieb Daniel Zwolenski < >>>> zonski at gmail.com>: >>>>>>>>>>>>> >>>>>>>>>>>>> Tobi, this is awesome! But you've left us hanging :) >>>>>>>>>>>>>> >>>>>>>>>>>>>> Did you use the 78 backport for this or just straight out J8? >>>>>>>>>>>>>> >>>>>>>>>>>>>> What are the steps to reproduce your working build? >>>>>>>>>>>>>> >>>>>>>>>>>>>> Very darn exciting! >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 04/07/2013, at 2:50 AM, Danno Ferrin < >>>> danno.ferrin at shemnon.com> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> JavaFX 8? Does RoboVM support invokedynamic? That is a big >>>> deal if >>>>>>>>>>>>>> so. >>>>>>>>>>> >>>>>>>>>>>> On Wed, Jul 3, 2013 at 10:07 AM, Niklas Therning < >>>>>>>>>>>>>> niklas at therning.org >>>>>>>>>>> >>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Awesome! Can you please post the build instructions somewhere? >>>> I'm >>>>>>>>>>>>>>> not >>>>>>>>>>> >>>>>>>>>>>> getting a long with gradle at all. :-( >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Wed, Jul 3, 2013 at 6:03 PM, Tobi >>>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> It works! Latest JavaFX 8 (gradle based) with RoboVM on a real >>>>>>>>>>>>>>>> iPhone >>>>>>>>>>> >>>>>>>>>>>> with >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> native text rendering and JFX CSS rendering! >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Tobi >>>> >>>> From richard.bair at oracle.com Fri Jul 5 07:42:14 2013 From: richard.bair at oracle.com (Richard Bair) Date: Fri, 5 Jul 2013 07:42:14 -0700 Subject: JavaFX8 on iPhone! It works! In-Reply-To: <38AE7290-594A-40BA-B47F-E79BC7481BF0@gmail.com> References: <8D73BAE8-5FD4-4239-A270-EAB814AD5AB1@ultramixer.com> <51D4B437.4060303@oracle.com> <26BFCCAA-2B2D-4711-A2B4-4312F00C09EB@ultramixer.com> <252710C7-403E-4752-9979-191924A04694@gmail.com> <38AE7290-594A-40BA-B47F-E79BC7481BF0@gmail.com> Message-ID: <68A0DDE5-075B-4B14-9EE4-D5F2DA19B739@oracle.com> We have implementations for Android and iOS that are both functional on a Java 8 VM. It looks like, because the iOS one is so closely related to the Mac build, it was the easiest one to get a build for the open community. We're working on the Android build scripts. The situation on Android is exactly the same as iOS -- we're open sourcing the library code, but not a Java 8 VM. I would expect that if the iOS build on RoboVM works, that the Android build for RoboVM would also work, but I haven't tried it. Richard On Jul 5, 2013, at 5:07 AM, Daniel Zwolenski wrote: > Thanks Niklas - sounds like there's still a bit to do. > > I'm still a bit confused though, I thought the JFX team were/are giving us a version of jfx that is specifically designed to work on Android but it sounds like that's pretty far from the actuality? What will the gradle build for android actually give us? > > I'd be keen to hear from someone on the jfx side on all of this. Is this how you planned for your smart device releases to work or has something gone wrong in the journey here? > > > > On 05/07/2013, at 9:57 PM, Niklas Therning wrote: > >> From eric.le.ponner at oracle.com Fri Jul 5 08:17:03 2013 From: eric.le.ponner at oracle.com (Eric Le Ponner) Date: Fri, 5 Jul 2013 17:17:03 +0200 Subject: [API Review]: Add 'fxml.version' to System Properties (Was: FXML version number) Message-ID: Hi Milan, This looks good. Note that, since b28, Scene Builder 1.1 now generates FXML files which include: xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" Scene Builder Next will do the same but using values from 'fxml.version' and 'javafx.version'. It may also use those variables to improve error report or version management (to be defined). Cheers. Eric > From: Milan Kubec > Subject: [API Review]: Add 'fxml.version' to System Properties (Was: FXML version number) > Date: July 1, 2013 7:01:12 AM PDT > To: "openjfx-dev at openjdk.java.net" > Reply-To: milan.kubec at oracle.com > > Hello, > I propose to add 'fxml.version' property to JVM System Properties to > store version of FXML specific version that is supported by FXML Loader. > The property would be more specific equivalent of 'javafx.version' > because these two versions won't advance simultaneously. > > Details about versioning and proposed namespaces are described in issue: > https://javafx-jira.kenai.com/browse/RT-28599 > > Thanks for comments > > Milan > > > Dne 7.6.2013 10:49, Milan Kubec napsal(a): >> Hello, >> I have implemented simple versioning for FXML documents in FXMLLoader, but without support in tools it won't be very useful. I have agreed with NetBeans and Scene Builder folks that they will include support for versioning too. Support means that they will produce document with two XML namespaces - one defines version of fx: prefixed elements and attributes (xmlns:fx; it's already there, just the version is appended) and the other of actual JavaFX API used to produce document (xmlns; default, no prefix). The first will be checked, because wrong version can cause failure. The latter is only informational, no strict checking of version is possible, but tools can suggest to upgrade runtime, translate document etc. >> >> JavaFX API version is stored in System Properties as "javafx.version". The open question is still where and how to store fxml version in code. I think that we could have also property for this purpose, e.g. "fxml.version" in System Properties. So far it's part of FXMLLoader API, which is probably not very fortunate. What do you think? >> >> Issue details: https://javafx-jira.kenai.com/browse/RT-28599 >> >> Milan From danno.ferrin at shemnon.com Fri Jul 5 09:59:11 2013 From: danno.ferrin at shemnon.com (Danno Ferrin) Date: Fri, 5 Jul 2013 10:59:11 -0600 Subject: [API Review]: Add 'fxml.version' to System Properties (Was: FXML version number) In-Reply-To: References: Message-ID: I may be coming into this a little late, but I have concerns about using the default namespace for version identification. I feel a namespaced attribute in a namespace fixed across versions to identify the semantics would be a better choice, i.e.: