Re: Questions about Platform.runLater() and Application.start()
Hi there, If you en-queue a runnable in start() it will not run until start() completes unless you open a dialog in start() that waits for a result before proceeding. In that case, your runnable will run. You are correct about runnables and input events being part of the input queue for the application thread. Threads are not interrupted to run code. Steve On 2014-11-03, 8:49 AM, ngalarn...@abinitio.com wrote: Hello, Is there documentation that describes somewhere how Platform.runLater() Application.start() interact? My impression is that (roughly speaking): - there is an EventQueue (to use the Swing terminology). - the EventQueue holds both UI events (like mouse click) as well as the Runnables enqueued by runLater(). - the first (?) event put in the EventQueue is a Runnable representing Application.start(). My impression is, therefore, that any Runnables enqueued during Application.start() won't be run until after start() completes. This behavior is the same as one runLater() not interrupting another runLater(). Is this sort of stuff documented somewhere? Is this the right way to think about this part of the system? (even if the implementation is different) Are there other special things to be aware of about Application.start()? Thanks, Neil P.S. I am using javafx.concurrent.Service Task and am hitting some issues. NOTICE from Ab Initio: This email (including any attachments) may contain information that is subject to confidentiality obligations or is legally privileged, and sender does not waive confidentiality or privilege. If received in error, please notify the sender, delete this email, and make no further use, disclosure, or distribution.
Re: Initial positioning of Dialog
Hi Pete, If this is a bug in JFX dialogs that are part of 8u40, please enter a bug report with a small but complete code example and a set of steps. Thanks, Steve On 2014-11-01, 8:03 AM, Pete Moss wrote: Just getting started using the new openjfx-dialogs. One thing that annoys me is the default initial positioning of a popup dialog. The default seems to pop up in the center of the primary display screen. This is particularly annoying when the app is running in my secondary display. Where's the popup? Is there an option to have it centered on the stage, or a way to manually control the initial position? I tried to handle onShowing() but at this point X, Y, width and height are NaN. Thanks.
Re: Embedding Mac native widgets into a Scene
Hi Mike, Embedding native controls in FX runs afoul of the whole lightweight/heavyweight issue. I had a hack of this once using SWT native controls and I was able to have them appear on Windows because HWND clipping was honored but on Mac, FX drew on top of the native control. Mac was changed to use CALayers way back for JDK7 and this also made things more complicated. Having said all that (from memory), for iOS, there was some work that overlayed an iOS text control in order to use the native keyboard control. The control was created when editing started and then disposed when editing ended. This would obviously have the same lightweight/heavyweight issues while editing was happening and a host of other smaller problems (wrong font, jumping, scrolling etc). One possible way for this to really work would be to get the native control to render to a texture and get JavaFX to draw the texture. That is just the painting side of the equation. Events would need to be delivered to this non-painting control as well. There are operating system calls on Mac that you can use to paint a control to an image so it is in theory doable but a ton of work. Steve On 2014-10-31, 9:48 AM, Mike Hearn wrote: JavaFX provides a great set of widgets that are pretty complete, but a few lag behind behind their native counterparts on some platforms. This is especially noticeable with the Mac text field widget, which has things like integrated spelling/grammar checking, auto correct, services, speech recognition and so on. WebKit manages to expose all this functionality despite that HTML is not the native Mac UI framework. So I am wondering how hard it is for JFX to do the same. However, I know very little about how WebKit does this or how easy it'd be to replicate in the Java world. Are there any experts on the list who could comment?
Re: Software rendering in Prism in JavaFX 8?
The situation has not changed. We are not planning to support 3D in the software pipeline. Steve On 2014-10-24, 4:52 AM, Adam Granger wrote: Greetings, It's my understanding that JavaFX does not provide software rendering fallback for SCENE_3D functionality when the GPU isn't on the whitelist/blacklist. I asked this question in May 2012 and I wanted to check whether the situation had changed? Kevin's original response below. Regards, Adam. Shouldn't javaFX still do software rendering for 3D? Not currently (see the other response I just sent). We can consider providing some basic support for 3.0, but have not yet committed to do so. -- Kevin Adam Granger wrote: I just checked Platform.isSupported(ConditionalFeature.SCENE3D), it returns false. JavaFX + 3D won't work on my linux (ubuntu 12.04) netbook with an Intel 945GSE GPU chipset either. Shouldn't javaFX still do software rendering for 3D?.. in the same way that glxgears still works even if you've not got any drivers installed? Otherwise it will seriously limit the number of platforms it will work on... I'm not after high-end 3D effects, just some basic rotation... Your card is not supported by prism. You can check if a system supports 3d by using the isSupported method (can't remember where .. Maybe in application). I know ensemble does this and instantiates a parallel camera if 3d is not supported. As for why it isn't supported, there are a lot of reasons that lead to a card not being supported, usually it fails to meet one of our minimal requirements.
Re: Problem accessing jfx native libs under eclipse on windows
Hi Richard, Your previous email indicated that you could build, but that you can't see the shared libraries. Please try adding this the VM Arguments of your Eclipse launch configuration: -Djava.library.path=${workspace_loc:rt}/build/sdk/rt/bin -Djavafx.verbose=true Thanks, Steve On 2014-10-24, 1:31 PM, Richard Steiger wrote: To recap a message I sent to the list on 9/12, I'm a newbie to JavaFX, and hoping to be able to contribute, initially fixing bugs. Stephen, I'm attempting to follow the instructions at: https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE, and have found that the Visual Studio tools it calls out don't include the amd64 tools, have struggled to adapt win.gradle to VS 2011, and otherwise dulled my pick. Also, when comparing the above instructions to openjdk9's build setup, I'm also wondering whether someone's revised the openjfx win build to use gcc, MinGW, Code::Blocks, clang++, or any other toolset besides the MS crud. Rather than dragging y'all through the blow-by-blow challenges I've been getting hit with, what I'm hoping is that one of you who's actively developing on a 64-bit Windows 7+ environment is willing to lend a hand to get me set-up with a working rig. Please reply to just me if you're willing to help, I think I just need a few minutes here and there to pick the right tools, verify I'm working against the correct repo, etc. Thanks in advance, -rjs On 9/12/2014 2:40 PM, Stephen F Northover wrote: Hi Richard, Did you follow the instructions at this link: https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE ? You are picking up a set of shared libraries that do not match the java code you are running in the IDE. You need to set java.library.path. It's on the wiki and I meant to update it to be something sensible. My build puts the dll's in an artifacts directory: -Djava.library.path=${workspace_loc:rt}/../artifacts/sdk/rt/bin You will need to edit this expression to pick up the dll's from the standard build place (which I forget right now). Steve On 2014-09-12, 5:31 PM, Richard Steiger wrote: I'm a newbie to JavaFX, and hoping to be able to contribute down the road once I learn much more about it. To that end, I've been trying to get 8u-dev eclipse projects setup on a Win7 box so I can start stepping through the code. The current show-stopper is getting UnsatisfiedLinkErrors when the system is trying to access dlls, such as glass.dll. My rig: * jdk1.8.0_05 * eclipse-SDK-N20140722-2000-win32-x86_64 (Mars stable build, has fix for StackOverflow bug in eclipse j8 compiler) * hg clone of 8u-dev as of 8/26 Setup: * ran the gradle build (successfully) * imported the eclipse projects in the repo, all cleanly compile (but had to fix cross-project links and manually locate and attach 3p libs) * removed javafx.* and related JavaFX sources from JAVA_HOME/src * moved jfxrt.jar to a cache directory Failure situation: * attempting to launch jfx apps under eclipse debugger The following console output is typical of what I'm running into (with -verbose:jni on the command line): [Dynamic-linking native method java.lang.Object.registerNatives ... JNI] [Registering JNI native method java.lang.Object.hashCode] [Registering JNI native method java.lang.Object.wait] [Registering JNI native method java.lang.Object.notify] [Registering JNI native method java.lang.Object.notifyAll] [Registering JNI native method java.lang.Object.clone] [Dynamic-linking native method java.lang.System.registerNatives ... JNI] [Registering JNI native method java.lang.System.currentTimeMillis] [Registering JNI native method java.lang.System.nanoTime] [Registering JNI native method java.lang.System.arraycopy] [Dynamic-linking native method java.lang.Thread.registerNatives ... JNI] [Registering JNI native method java.lang.Thread.start0] [Registering JNI native method java.lang.Thread.stop0] [Registering JNI native method java.lang.Thread.isAlive] [Registering JNI native method java.lang.Thread.suspend0] [Registering JNI native method java.lang.Thread.resume0] [Registering JNI native method java.lang.Thread.setPriority0] [Registering JNI native method java.lang.Thread.yield] [Registering JNI native method java.lang.Thread.sleep] [Registering JNI native method java.lang.Thread.currentThread] [Registering JNI native method java.lang.Thread.countStackFrames] [Registering JNI native method java.lang.Thread.interrupt0] [Registering JNI native method java.lang.Thread.isInterrupted] [Registering JNI native method java.lang.Thread.holdsLock] [Registering JNI native method java.lang.Thread.getThreads] [Registering JNI native method java.lang.Thread.dumpThreads] [Registering JNI native method java.lang.Thread.setNativeName] [Dynamic-linking native method java.security.AccessController.getStackAccessControlContext ... JNI] [Dynamic-linking native method java.security.AccessController.getInheritedAccessControlContext ... JNI
Re: Problem accessing jfx native libs under eclipse on windows
On 2014-10-24, 2:05 PM, Richard Steiger wrote: Stephen, Sorry for the mis-communication: in my original message, I was able to do incremental java compilation, but hadn't tried to do the full build, since hadn't made changes to any of the native code. Your reply straighted me out, that I need to be doing full builds to pick-up changes in either the cpp or low-level java code. I haven't been able to get the native builds to work, without it failing in either the cpp compiler or linker. You'll need to follow the recipe here precisely: https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX Do try to substitute anything or you will fail. I still could use a hand to get working tooling. Also, care to comment whether there's any plan to jetisson the MS tools in the openjfx project, or at least align it with openjdk9's build system? We'll be running the same compilers that the JDK runs. There is some work afoot to upgrade but this might only be possible in 9, and not 8udev. https://javafx-jira.kenai.com/browse/RT-38475 Thanks, -rjs On 10/24/2014 10:43 AM, Stephen F Northover wrote: Hi Richard, Your previous email indicated that you could build, but that you can't see the shared libraries. Please try adding this the VM Arguments of your Eclipse launch configuration: -Djava.library.path=${workspace_loc:rt}/build/sdk/rt/bin -Djavafx.verbose=true Thanks, Steve On 2014-10-24, 1:31 PM, Richard Steiger wrote: To recap a message I sent to the list on 9/12, I'm a newbie to JavaFX, and hoping to be able to contribute, initially fixing bugs. Stephen, I'm attempting to follow the instructions at: https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE, and have found that the Visual Studio tools it calls out don't include the amd64 tools, have struggled to adapt win.gradle to VS 2011, and otherwise dulled my pick. Also, when comparing the above instructions to openjdk9's build setup, I'm also wondering whether someone's revised the openjfx win build to use gcc, MinGW, Code::Blocks, clang++, or any other toolset besides the MS crud. Rather than dragging y'all through the blow-by-blow challenges I've been getting hit with, what I'm hoping is that one of you who's actively developing on a 64-bit Windows 7+ environment is willing to lend a hand to get me set-up with a working rig. Please reply to just me if you're willing to help, I think I just need a few minutes here and there to pick the right tools, verify I'm working against the correct repo, etc. Thanks in advance, -rjs On 9/12/2014 2:40 PM, Stephen F Northover wrote: Hi Richard, Did you follow the instructions at this link: https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE ? You are picking up a set of shared libraries that do not match the java code you are running in the IDE. You need to set java.library.path. It's on the wiki and I meant to update it to be something sensible. My build puts the dll's in an artifacts directory: -Djava.library.path=${workspace_loc:rt}/../artifacts/sdk/rt/bin You will need to edit this expression to pick up the dll's from the standard build place (which I forget right now). Steve On 2014-09-12, 5:31 PM, Richard Steiger wrote: I'm a newbie to JavaFX, and hoping to be able to contribute down the road once I learn much more about it. To that end, I've been trying to get 8u-dev eclipse projects setup on a Win7 box so I can start stepping through the code. The current show-stopper is getting UnsatisfiedLinkErrors when the system is trying to access dlls, such as glass.dll. My rig: * jdk1.8.0_05 * eclipse-SDK-N20140722-2000-win32-x86_64 (Mars stable build, has fix for StackOverflow bug in eclipse j8 compiler) * hg clone of 8u-dev as of 8/26 Setup: * ran the gradle build (successfully) * imported the eclipse projects in the repo, all cleanly compile (but had to fix cross-project links and manually locate and attach 3p libs) * removed javafx.* and related JavaFX sources from JAVA_HOME/src * moved jfxrt.jar to a cache directory Failure situation: * attempting to launch jfx apps under eclipse debugger The following console output is typical of what I'm running into (with -verbose:jni on the command line): [Dynamic-linking native method java.lang.Object.registerNatives ... JNI] [Registering JNI native method java.lang.Object.hashCode] [Registering JNI native method java.lang.Object.wait] [Registering JNI native method java.lang.Object.notify] [Registering JNI native method java.lang.Object.notifyAll] [Registering JNI native method java.lang.Object.clone] [Dynamic-linking native method java.lang.System.registerNatives ... JNI] [Registering JNI native method java.lang.System.currentTimeMillis] [Registering JNI native method java.lang.System.nanoTime] [Registering JNI native method java.lang.System.arraycopy] [Dynamic-linking native method java.lang.Thread.registerNatives ... JNI] [Registering JNI native
Re: RFR: RT-35212: [Printing] HBox/VBox can't be printed correctly if it contains TextField/PasswordField.
We are almost finished with M3 and then people can start releasing code again. Welcome to the big 8u40 bug squash! Steve On 2014-10-17, 6:43 PM, Phil Race wrote: There was an NPE here. I expect this was causing problems for more than the narrow case cited here : https://javafx-jira.kenai.com/browse/RT-35212 has the patch in-line -phil.
The Great FX 8u40 Bug Squash
Welcome all, We are currently in lock down mode for M3 which officially ends Oct 20, 2014. The next milestone is M4 (ZBB): Dec 1, 2014. ZBB (Zero Bug Bounce) is essentially the end of development for FX 8u40. This development cycle has seen some significant feature work, including Accessibility and some New Controls. Normally we wouldn't do features in an 8u release, but it was important to close some long standing gaps in the toolkit as early as we possibly could. Now it's time to focus in the bug backlog. The 8u20 dashboard was called, The One True Dashboard. The 8u40 one is called The Dashboard of Doom. https://javafx-jira.kenai.com/secure/Dashboard.jspa?selectPageId=12304 I'm sorry that clicking on it was not more ominous. We are required to fix all P1, P2 and P3 bugs for ZBB. P4 and P5 bugs might be fixed, but they don't have priority. For all bugs, regressions generally get looked at first, but if the regression is very minor, work on another more important bug might take priority. So, as a team, we need to fix about 16 bugs a week to hit ZBB. Bugs that we can't or should not fix because the changes are too dangerous, we will need to defer to 9. Obviously, it doesn't work quite as simply as like this. Bugs are not fixed in constant time and there is an incoming bug rate that we try to take into account, but we can't know the future. So, come one come all to the Great FX 8u40 Bug Squash! Put on your DDT suits and get out your sprayers! Kill a bug today. Steve
Re: [8u] Review request: RT-37884: [WebView] Java Logger settings corrupt webview
Leonid, Please review the fix. Thanks, Steve On 2014-10-16, 7:18 AM, Anton Nashatyrev wrote: Hello, any volunteers ? (the fix is pretty simple) Thanks! Anton. On 26.08.2014 19:45, anton nashatyrev wrote: Hello, could you please review the fix: https://javafx-jira.kenai.com/browse/RT-37884 Thank you! Anton.
Re: British english on JavaFX controls
Thanks Phil. I have given up on Canadian spelling where computers concerned. Michael Fang is on the JIRA. Steve On 2014-10-16, 3:34 PM, Phil Race wrote: On 10/16/2014 7:38 AM, Stephen F Northover wrote: Please enter a JIRA for the missing translation. If AWT/Swing is missing a translation, is there a way to add it short of modifying the system? I don't think Swing (or any other part of the JDK classes for that matter) would reach out to an application classloaded resource. Also the translations are in resource classes buried in the implementation and you have to get the source of the class to even know what you were supposed to provide and translate. FWIW I do not believe there is any British English resource translation in the JDK classes either .. nor Canadian for that matter :-) I suspect there was so little different it was not worth it even though the bar to entry is pretty low here. You can ask the localization (or is that localisation ? :-) team what they have to say .. cc'd Michael Fang. -phil. Steve On 2014-10-16, 10:28 AM, Michael Berry wrote: Hi Tom, Sure, that makes sense, thanks for the info. Don't suppose there's a workaround you know of? This is for an application which has a bundled JRE, so I can potentially just add the language file in the proper location - it'd just be nice to have a fix that doesn't require modification if possible! Michael On 16 October 2014 15:20, Tom Schindl tom.schi...@bestsolution.at wrote: On 16.10.14 16:15, Tom Schindl wrote: Ok - it ResourceBundle.getBundle() uses the classloader of the caller which means the ExtensionClassloader so having the additional properties in your local dir does help. does NOT help! Tom
Re: In(Sanity) Testing Mondays
Hi all, Please note that the assignments have changed. Happy (in)Sanity! Steve On 2014-10-10, 7:38 AM, Vadim Pakhnushev wrote: Reminder, Monday is our weekly sanity testing. You can find your testing assignment at: https://wiki.openjdk.java.net/display/OpenJFX/Sanity+Testing Also please remember that the repo will be locked from 1am PDT until 1pm PDT. Happy testing! Thanks, Vadim
Re: review requested for Glass/GTK change
Hi David, Will look at the code. The standard process for a review request can be found here: https://wiki.openjdk.java.net/display/OpenJFX/Code+Reviews . You are missing the bug report in the email title and a link to the JIRA in the body. Having the bug report in the title and short description helps out big time when scanning through a billion emails. Thanks, Steve On 2014-10-01, 2:07 PM, David Hill wrote: Kevin, (and anyone else interested in Glass/GTK) webrev at http://cr.openjdk.java.net/~ddhill/RT-31306 http://cr.openjdk.java.net/%7Eddhill/RT-31306 The idea is to delay some resizing actions until we are mapped on the screen. Without this, a linux app run over ssh -X would show up with a minimum size as the intermediate size over road the requested size. Note: there is some extra resizing that is really visible still that I have not removed, but will need to be in a follow on Jira. Please follow up in the Jira.
Re: openJFX Using+an+IDE documentation
Hello, What you did was run against the jar that you built. The wiki describes how you would run using the code from the IDE. Here is some sample code that was hooked up to use the base, graphics and controls projects. I didn't describe the different mechanisms that the IDE's use to manage dependencies. In NetBeans, my sample project (Trix4) needed base, graphics and controls so I added the dependencies to it. I verified that I could set break points in NetBeans and they were hit when I ran. I didn't verify that this still works, but I'm betting it still does. Steve On 2014-10-02, 1:40 AM, Cirujano Cuesta, Diego wrote: Hi all! In the documentation of using an IDE to develop There is one part not clear for me. https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE I would like to explain what I did. The part not clear for me is: Using Netbeans-Run sample code. I didn't do it as the wiki said because I did not understand it so I made my own project( I don't know where is Trix4 :S). The project I made was by New Project - Java Application (NOT JavaFX - JavaFX Application, because the project I had to test was a JavaFX Application and as I removed jfxrt.jar there were dependency problems). After creating the project, I added to the project the compiled jfxrt.jar in the project properties-Libraries dependencies. At this moment I was able to compile the test project, run it and debug it. Cheers, Diego Cirujano
Re: Accelerators - odd behavior
I am only seeing the runnable fired once in FX 8u40. Steve Steps: 1) Run TestKeyCombination 2) Press Control+- Here is the test code: import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.input.KeyCharacterCombination; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyCodeCombination; import javafx.scene.input.KeyCombination; import javafx.stage.Stage; public class TestKeyCombination extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage stage) { stage.setTitle(Test KeyCombination); Scene scene = new Scene(new Group(), 600, 450); Button button1 = new Button(); button1.setText(Click Me); stage.setScene(scene); stage.show(); KeyCombination cmdMinus = new KeyCodeCombination(KeyCode.MINUS, KeyCombination.CONTROL_DOWN); KeyCombination cmdMinusFromCharacter = new KeyCharacterCombination(-, KeyCombination.CONTROL_DOWN); Runnable runnable = () - System.out.println(HI); scene.getAccelerators().put(cmdMinus, runnable); scene.getAccelerators().put(cmdMinusFromCharacter, runnable); } } On 2014-09-26, 1:01 PM, Scott Palmer wrote: KeyCombination cmdMinus = new Key*Code*Combination(KeyCode.MINUS, KeyCombination.CONTROL_DOWN); KeyCombination cmdMinusFromCharacter = new Key*Character*Combination(-, KeyCombination.CONTROL_DOWN); Using the above like this: scene.getAccelerators().put(cmdMinus, runnable); scene.getAccelerators().put(cmdMinusFromCharacter, runnable); Will result in the runnable being fired twice from the same keypress. I propose changing the accelerator processing logic so that only one runnable gets called as the intention appears to be that a KeyCombination can only have one runnable associated with it, but the logic in Map doesn't see the above two KeyCombinations as the same key in the Map. Note: With the second combination above I really wanted something that worked for both MINUS and SUBTRACT simultaneously - since they both type the same Character and only one accelerator can be set on a MenuItem. Scott
Re: Accelerators - odd behavior
This is on Mac. Will try Windows. Steve On 2014-09-26, 1:24 PM, Kevin Rushforth wrote: Is this on a Mac or on Windows? I just ran your test case and I get two runnables, which is what I would expect. -- Kevin Stephen F Northover wrote: I am only seeing the runnable fired once in FX 8u40. Steve Steps: 1) Run TestKeyCombination 2) Press Control+- Here is the test code: import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.input.KeyCharacterCombination; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyCodeCombination; import javafx.scene.input.KeyCombination; import javafx.stage.Stage; public class TestKeyCombination extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage stage) { stage.setTitle(Test KeyCombination); Scene scene = new Scene(new Group(), 600, 450); Button button1 = new Button(); button1.setText(Click Me); stage.setScene(scene); stage.show(); KeyCombination cmdMinus = new KeyCodeCombination(KeyCode.MINUS, KeyCombination.CONTROL_DOWN); KeyCombination cmdMinusFromCharacter = new KeyCharacterCombination(-, KeyCombination.CONTROL_DOWN); Runnable runnable = () - System.out.println(HI); scene.getAccelerators().put(cmdMinus, runnable); scene.getAccelerators().put(cmdMinusFromCharacter, runnable); } } On 2014-09-26, 1:01 PM, Scott Palmer wrote: KeyCombination cmdMinus = new Key*Code*Combination(KeyCode.MINUS, KeyCombination.CONTROL_DOWN); KeyCombination cmdMinusFromCharacter = new Key*Character*Combination(-, KeyCombination.CONTROL_DOWN); Using the above like this: scene.getAccelerators().put(cmdMinus, runnable); scene.getAccelerators().put(cmdMinusFromCharacter, runnable); Will result in the runnable being fired twice from the same keypress. I propose changing the accelerator processing logic so that only one runnable gets called as the intention appears to be that a KeyCombination can only have one runnable associated with it, but the logic in Map doesn't see the above two KeyCombinations as the same key in the Map. Note: With the second combination above I really wanted something that worked for both MINUS and SUBTRACT simultaneously - since they both type the same Character and only one accelerator can be set on a MenuItem. Scott
Re: Accelerators - odd behavior
Two on Windows, one on Mac. See https://javafx-jira.kenai.com/browse/RT-38830 Steve On 2014-09-26, 1:25 PM, Stephen F Northover wrote: This is on Mac. Will try Windows. Steve On 2014-09-26, 1:24 PM, Kevin Rushforth wrote: Is this on a Mac or on Windows? I just ran your test case and I get two runnables, which is what I would expect. -- Kevin Stephen F Northover wrote: I am only seeing the runnable fired once in FX 8u40. Steve Steps: 1) Run TestKeyCombination 2) Press Control+- Here is the test code: import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.input.KeyCharacterCombination; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyCodeCombination; import javafx.scene.input.KeyCombination; import javafx.stage.Stage; public class TestKeyCombination extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage stage) { stage.setTitle(Test KeyCombination); Scene scene = new Scene(new Group(), 600, 450); Button button1 = new Button(); button1.setText(Click Me); stage.setScene(scene); stage.show(); KeyCombination cmdMinus = new KeyCodeCombination(KeyCode.MINUS, KeyCombination.CONTROL_DOWN); KeyCombination cmdMinusFromCharacter = new KeyCharacterCombination(-, KeyCombination.CONTROL_DOWN); Runnable runnable = () - System.out.println(HI); scene.getAccelerators().put(cmdMinus, runnable); scene.getAccelerators().put(cmdMinusFromCharacter, runnable); } } On 2014-09-26, 1:01 PM, Scott Palmer wrote: KeyCombination cmdMinus = new Key*Code*Combination(KeyCode.MINUS, KeyCombination.CONTROL_DOWN); KeyCombination cmdMinusFromCharacter = new Key*Character*Combination(-, KeyCombination.CONTROL_DOWN); Using the above like this: scene.getAccelerators().put(cmdMinus, runnable); scene.getAccelerators().put(cmdMinusFromCharacter, runnable); Will result in the runnable being fired twice from the same keypress. I propose changing the accelerator processing logic so that only one runnable gets called as the intention appears to be that a KeyCombination can only have one runnable associated with it, but the logic in Map doesn't see the above two KeyCombinations as the same key in the Map. Note: With the second combination above I really wanted something that worked for both MINUS and SUBTRACT simultaneously - since they both type the same Character and only one accelerator can be set on a MenuItem. Scott
Re: Accelerators - odd behavior
Agree. Suggest that we move the discussion to the JIRA to capture the background information for whoever will address the bug. Steve On 2014-09-26, 1:41 PM, Kevin Rushforth wrote: It may or may not be a bug, but it will be good to investigate. -- Kevin Stephen F Northover wrote: Two on Windows, one on Mac. See https://javafx-jira.kenai.com/browse/RT-38830 Steve On 2014-09-26, 1:25 PM, Stephen F Northover wrote: This is on Mac. Will try Windows. Steve On 2014-09-26, 1:24 PM, Kevin Rushforth wrote: Is this on a Mac or on Windows? I just ran your test case and I get two runnables, which is what I would expect. -- Kevin Stephen F Northover wrote: I am only seeing the runnable fired once in FX 8u40. Steve Steps: 1) Run TestKeyCombination 2) Press Control+- Here is the test code: import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.input.KeyCharacterCombination; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyCodeCombination; import javafx.scene.input.KeyCombination; import javafx.stage.Stage; public class TestKeyCombination extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage stage) { stage.setTitle(Test KeyCombination); Scene scene = new Scene(new Group(), 600, 450); Button button1 = new Button(); button1.setText(Click Me); stage.setScene(scene); stage.show(); KeyCombination cmdMinus = new KeyCodeCombination(KeyCode.MINUS, KeyCombination.CONTROL_DOWN); KeyCombination cmdMinusFromCharacter = new KeyCharacterCombination(-, KeyCombination.CONTROL_DOWN); Runnable runnable = () - System.out.println(HI); scene.getAccelerators().put(cmdMinus, runnable); scene.getAccelerators().put(cmdMinusFromCharacter, runnable); } } On 2014-09-26, 1:01 PM, Scott Palmer wrote: KeyCombination cmdMinus = new Key*Code*Combination(KeyCode.MINUS, KeyCombination.CONTROL_DOWN); KeyCombination cmdMinusFromCharacter = new Key*Character*Combination(-, KeyCombination.CONTROL_DOWN); Using the above like this: scene.getAccelerators().put(cmdMinus, runnable); scene.getAccelerators().put(cmdMinusFromCharacter, runnable); Will result in the runnable being fired twice from the same keypress. I propose changing the accelerator processing logic so that only one runnable gets called as the intention appears to be that a KeyCombination can only have one runnable associated with it, but the logic in Map doesn't see the above two KeyCombinations as the same key in the Map. Note: With the second combination above I really wanted something that worked for both MINUS and SUBTRACT simultaneously - since they both type the same Character and only one accelerator can be set on a MenuItem. Scott
Re: Time spinner in 8u40
Hi Peter, There are no plans to make the time spinner public for 8u40 as we are past FF (Feature Freeze). Originally, the time spinner was intended to be part of the new spinner control but there were some issues with it involving tracking the caret. It's all discussed in: https://javafx-jira.kenai.com/browse/RT-37968 Steve On 2014-09-17, 6:22 AM, Peter Penzov wrote: Hi All, I successfully tested Spinner control in 8u40. final Spinner spinner = new Spinner(); spinner.setValueFactory(new SpinnerValueFactory.IntegerSpinnerValueFactory(0, 1)); spinner.setEditable(true); I noticed that there is a Java method for time spinner LocalDateSpinnerValueFactory in SpinnerValueFactory. But the Java Method is not public. Are there plans to release time spinner in 8u40? BR, Peter
Re: RichTextEditor in 8u40
Hi Peter, There was never an intent to have a RichTextEditor for 8u40. The wiki is tracking milestones for committed work and the possibility of starting work on a RichTextEditor prototype. At this point, given the bug backlog and other work that is targeted to 8u40, it's looking very unlikely that we will get to this. Steve On 2014-09-17, 8:11 AM, Peter Penzov wrote: Hi All, Looking at the 8u40 road map there are plans for RichTextEdito: https://wiki.openjdk.java.net/display/OpenJFX/8u40 Is there any code example that I can test? BR, Peter
Re: OpenJFX Wiki and the Platforms location.
On 2014-09-12, 10:54 AM, David Hill wrote: https://wiki.openjdk.java.net/display/OpenJFX/Platforms Just noticed that we have Main - Getting Started - Platform - bunch of neat stuff. Feels odd that Platform is under Getting Started, as it has evolved to be a bunch of platform specific, and JavaFX feature general notes/documentation. Does it make sense to move Platform to be under Main ? Makes sense to me. Platforms under Getting Started is likely there for historical reasons. Steve
Re: Lighthouse
Thanks for getting back to us Mike and letting us know about your successful use of JavaFX. The team does work hard and appreciates the kind words. Steve On 2014-09-12, 2:42 PM, Mike Hearn wrote: I've open sourced the JavaFX app I was working on for the past six months or so. Lighthouse is a Bitcoin crowdfunding application that uses some of the more novel features of the Bitcoin protocol to allow middleman free fund raising. There's a video of it in action here: http://blog.vinumeris.com/2014/09/12/lighthouse-alpha-now-open-source/ and some screenshots here: https://github.com/vinumeris/lighthouse Additionally I've open sourced UpdateFX, which is an auto update engine that provides some interesting features: https://github.com/vinumeris/updatefx It's kind of rough still but if anyone is looking for an alternative to the existing update engines out there, take a look. I just wanted to say thanks to the OpenJFX team for your help and support this summer. I've very much enjoyed working both with you all and the framework you've created. I believe JavaFX is a surprisingly good fit for the Bitcoin community, because we suffer quite badly from the limitations and problems of web apps. HTML5 + decentralisation don't mix very well. A plain old desktop app works better, and JavaFX is a good way to build such things. thanks, -mike
Re: Problem accessing jfx native libs under eclipse on windows
Hi Richard, Did you follow the instructions at this link: https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE ? You are picking up a set of shared libraries that do not match the java code you are running in the IDE. You need to set java.library.path. It's on the wiki and I meant to update it to be something sensible. My build puts the dll's in an artifacts directory: -Djava.library.path=${workspace_loc:rt}/../artifacts/sdk/rt/bin You will need to edit this expression to pick up the dll's from the standard build place (which I forget right now). Steve On 2014-09-12, 5:31 PM, Richard Steiger wrote: I'm a newbie to JavaFX, and hoping to be able to contribute down the road once I learn much more about it. To that end, I've been trying to get 8u-dev eclipse projects setup on a Win7 box so I can start stepping through the code. The current show-stopper is getting UnsatisfiedLinkErrors when the system is trying to access dlls, such as glass.dll. My rig: * jdk1.8.0_05 * eclipse-SDK-N20140722-2000-win32-x86_64 (Mars stable build, has fix for StackOverflow bug in eclipse j8 compiler) * hg clone of 8u-dev as of 8/26 Setup: * ran the gradle build (successfully) * imported the eclipse projects in the repo, all cleanly compile (but had to fix cross-project links and manually locate and attach 3p libs) * removed javafx.* and related JavaFX sources from JAVA_HOME/src * moved jfxrt.jar to a cache directory Failure situation: * attempting to launch jfx apps under eclipse debugger The following console output is typical of what I'm running into (with -verbose:jni on the command line): [Dynamic-linking native method java.lang.Object.registerNatives ... JNI] [Registering JNI native method java.lang.Object.hashCode] [Registering JNI native method java.lang.Object.wait] [Registering JNI native method java.lang.Object.notify] [Registering JNI native method java.lang.Object.notifyAll] [Registering JNI native method java.lang.Object.clone] [Dynamic-linking native method java.lang.System.registerNatives ... JNI] [Registering JNI native method java.lang.System.currentTimeMillis] [Registering JNI native method java.lang.System.nanoTime] [Registering JNI native method java.lang.System.arraycopy] [Dynamic-linking native method java.lang.Thread.registerNatives ... JNI] [Registering JNI native method java.lang.Thread.start0] [Registering JNI native method java.lang.Thread.stop0] [Registering JNI native method java.lang.Thread.isAlive] [Registering JNI native method java.lang.Thread.suspend0] [Registering JNI native method java.lang.Thread.resume0] [Registering JNI native method java.lang.Thread.setPriority0] [Registering JNI native method java.lang.Thread.yield] [Registering JNI native method java.lang.Thread.sleep] [Registering JNI native method java.lang.Thread.currentThread] [Registering JNI native method java.lang.Thread.countStackFrames] [Registering JNI native method java.lang.Thread.interrupt0] [Registering JNI native method java.lang.Thread.isInterrupted] [Registering JNI native method java.lang.Thread.holdsLock] [Registering JNI native method java.lang.Thread.getThreads] [Registering JNI native method java.lang.Thread.dumpThreads] [Registering JNI native method java.lang.Thread.setNativeName] [Dynamic-linking native method java.security.AccessController.getStackAccessControlContext ... JNI] [Dynamic-linking native method java.security.AccessController.getInheritedAccessControlContext ... JNI] [Dynamic-linking native method java.lang.Class.registerNatives ... JNI] [Registering JNI native method java.lang.Class.getName0] [Registering JNI native method java.lang.Class.getSuperclass] [Registering JNI native method java.lang.Class.getInterfaces0] [Registering JNI native method java.lang.Class.getClassLoader0] [Registering JNI native method java.lang.Class.isInterface] [Registering JNI native method java.lang.Class.getSigners] [Registering JNI native method java.lang.Class.setSigners] [Registering JNI native method java.lang.Class.isArray] [Registering JNI native method java.lang.Class.isPrimitive] [Registering JNI native method java.lang.Class.getComponentType] [Registering JNI native method java.lang.Class.getModifiers] [Registering JNI native method java.lang.Class.getDeclaredFields0] [Registering JNI native method java.lang.Class.getDeclaredMethods0] [Registering JNI native method java.lang.Class.getDeclaredConstructors0] [Registering JNI native method java.lang.Class.getProtectionDomain0] [Registering JNI native method java.lang.Class.getDeclaredClasses0] [Registering JNI native method java.lang.Class.getDeclaringClass0] [Registering JNI native method java.lang.Class.getGenericSignature0] [Registering JNI native method java.lang.Class.getRawAnnotations] [Registering JNI native method java.lang.Class.getConstantPool] [Registering JNI native method java.lang.Class.desiredAssertionStatus0] [Registering JNI native method java.lang.Class.getEnclosingMethod0] [Registering JNI
Re: [8u] Review request: RT-38290: [WebView] HTML canvas clip() functionality broken
Hi Anton T, The policy for OpenJFX is that code reviews happen in the associated JIRA: https://wiki.openjdk.java.net/display/OpenJFX/Code+Reviews Thanks for reviewing this code, Steve On 2014-08-26, 3:30 PM, Anton V. Tarasov wrote: Hi Anton, Does it make sense to add a boolean param to renderLayer() which would tell it if it should dispose the layer after rendering? In order to avoid the splitting. Also, could you please clarify the following. From your comments: 72 // WCBufferedContext might be referenced from a client JS code and thus 73 // couldn't be disposed right after rendering operations on it. However, when it is disposed (will it?) it looks like it will re-render all the layers (WCGraphicsPrismContext.dispose). Is it an expected behavior? Thanks, Anton. On 8/20/14 9:26 PM, anton nashatyrev wrote: Hello, could you please review the fix for https://javafx-jira.kenai.com/browse/RT-38290 ? Thank you! Anton.
Re: In(Sanity) Testing Mondays
Hi Lisa, https://wiki.openjdk.java.net/display/OpenJFX/Sanity+Testing I've updated the wiki to indicate the default action when a stopper is found as a result of (in)sanity. The bottom line is that we will work to resolve the bug by 10PST, potentially reverting the change if it looks like we are not converging. Steve On 2014-08-22, 8:25 PM, Lisa Selle wrote: Reminder, Monday is our weekly sanity testing. You can find your (newly updated) testing assignment at: https://wiki.openjdk.java.net/display/OpenJFX/Sanity+Testing Also please remember that the repo will be locked from 1am PDT until 1pm PDT. Happy testing! Lisa
Re: JavaFX 8 and TextFields
This seems to be the bug: https://javafx-jira.kenai.com/browse/RT-36987 It's quite a mystery. It's likely a shader problem but that's just a guess. Steve On 2014-08-18, 10:21 AM, Eric Le Ponner wrote: Dirk, Anothony, I’ve never observed this visual artifact on Mac OS 10.9 (.4) no matter it’s SB 2.0 (i.e. b20) or latest SB (with latest FX8dev code). Strange… Could it be related to the graphics pipeline ? What model of Mac are you using Dirk ? Eric Le 18 août 2014 à 15:34, Anthony Petrov anthony.pet...@oracle.com a écrit : Hi Dirk, This looks like a bug. Could you please verify if the latest 8u20 ea build works for you? You can download it at: http://jdk8.java.net/download.html If it still fails, please file a new bug at https://javafx-jira.kenai.com/secure/CreateIssue!default.jspa -- best regards, Anthony On 8/18/2014 5:28 PM, Dirk Dittert wrote: Hi, I'm wondering about the design of TextFields in JavaFX 8. Why are they having a horizontal line through the input area? I find that this looks rather peculiar... I posted some screenshots here: http://d.dittert.org/E4D7EB53-D198-47AC-9230-53E9A23F6767/ One is from SceneBuilder 2.0-b20 on OS X 10.9. The other one is from one of my applications (running on 1.8.0_11) on OS X. Thanks, Dirk
Re: [8u40] Review Request: (RT-37418) CustomColorDialog cannot be skinned by adding stylesheet to scene.
Might be better to get Jonathan to look at it as he is the owner of controls. Anyhow, off to the JIRA ... Steve On 2014-08-06, 12:49 PM, David Grieve wrote: Kevin, Steve, Please review https://javafx-jira.kenai.com/browse/RT-37418. The changes are small and can be found in JIRA.
Re: [API REVIEW REQUEST] RT-19659 - [TabPane] Support for draggable tabs
Thanks Tom, We'll take a look at the patch in the JIRA: https://javafx-jira.kenai.com/browse/RT-19659 Steve On 2014-07-30, 3:35 AM, Tom Schindl wrote: Hi, I'd like you to review the API proposed to make TabPane Tabs draggable. The proposed public API only allows to put the TabPane in DnD mode: public boolean isDndEnabled() public void setDndEnabled(boolean dndEnabled) public BooleanProperty dndEnabledProperty() Tom
Re: error while building JFX 8udev for iOS (2)
Belay that. This works for me in 8u-dev: gradle -PCOMPILE_TARGETS=ios -PUSE_LIPO=true -PIOS_VERSION=7.1 As far as I know, RoboVM does not support lambdas so the result will not run. Steve On 2014-07-29, 8:51 AM, Tobias Bley wrote: @Oracle, can you help me? Anfang der weitergeleiteten Nachricht: Von: Tobias Bley t...@ultramixer.com Betreff: error while building JFX 8udev for iOS Datum: 15. Juli 2014 13:52:11 MESZ An: openjfx-dev@openjdk.java.net Mailing openjfx-dev@openjdk.java.net Hi folks, when I try to build JFX for iOS using „gradle sdk…“ i’m getting the following errors - is it a known issue? Best regards, Tobi :graphics:ccIosPrismES2Arm /Applications/Developer/Java/open-jfx-graphics-8u-dev2/rt/modules/graphics/src/main/native-prism-es2/ios/IOSGLContext.c:67:34: warning: implicit declaration of function 'createContext' is invalid in C99 [-Wimplicit-function-declaration] context = (jlong) (intptr_t) createContext((void *) (intptr_t) nativeShareCtxHandle, ^ /Applications/Developer/Java/open-jfx-graphics-8u-dev2/rt/modules/graphics/src/main/native-prism-es2/ios/IOSGLContext.c:76:14: warning: implicit declaration of function 'makeCurrentContext' is invalid in C99 [-Wimplicit-function-declaration] result = makeCurrentContext((void *) (intptr_t) context); ^ /Applications/Developer/Java/open-jfx-graphics-8u-dev2/rt/modules/graphics/src/main/native-prism-es2/ios/IOSGLContext.c:78:9: warning: implicit declaration of function 'printAndReleaseResources' is invalid in C99 [-Wimplicit-function-declaration] printAndReleaseResources(0, context, ^ /Applications/Developer/Java/open-jfx-graphics-8u-dev2/rt/modules/graphics/src/main/native-prism-es2/ios/IOSGLContext.c:137:13: warning: implicit declaration of function 'getProcAddress' is invalid in C99 [-Wimplicit-function-declaration] getProcAddress(glActiveTexture); ^ /Applications/Developer/Java/open-jfx-graphics-8u-dev2/rt/modules/graphics/src/main/native-prism-es2/ios/IOSGLContext.c:239:5: warning: implicit declaration of function 'setSwapInterval' is invalid in C99 [-Wimplicit-function-declaration] setSwapInterval((void *) jlong_to_ptr(ctxInfo-context), 0); ^ /Applications/Developer/Java/open-jfx-graphics-8u-dev2/rt/modules/graphics/src/main/native-prism-es2/ios/IOSGLContext.c:59:22: warning:unused variable 'pfInfo' [-Wunused-variable] PixelFormatInfo* pfInfo = (PixelFormatInfo* )jlong_to_ptr(nativePFInfo); ^ 6 warnings generated. /Applications/Developer/Java/open-jfx-graphics-8u-dev2/rt/modules/graphics/src/main/native-prism-es2/ios/IOSGLDrawable.c:108:5: warning: implicit declaration of function 'flushBuffer' is invalid in C99 [-Wimplicit-function-declaration] flushBuffer((void *) (intptr_t) ctxInfo-context); ^ 1 warning generated. /Applications/Developer/Java/open-jfx-graphics-8u-dev2/rt/modules/graphics/src/main/native-prism-es2/ios/IOSWindowSystemInterface.m:42:13: warning: format specifies type 'unsigned int' but the argument has type 'void *' [-Wformat] shareContext, view, pixelFormat, viewNotReady); ^~~~ /Applications/Developer/Java/open-jfx-graphics-8u-dev2/rt/modules/graphics/src/main/native-prism-es2/ios/IOSWindowSystemInterface.m:42:27: warning: format specifies type 'unsigned int' but the argument has type 'void *' [-Wformat] shareContext, view, pixelFormat, viewNotReady); ^~~~ /Applications/Developer/Java/open-jfx-graphics-8u-dev2/rt/modules/graphics/src/main/native-prism-es2/ios/IOSWindowSystemInterface.m:41:70: warning: flag ' ' results in undefined behavior with 'n' conversion specifier [-Wformat] fprintf(stderr, IOSWindowSystemInterface : share %x view %x pf % notready %\n, ~^~ /Applications/Developer/Java/open-jfx-graphics-8u-dev2/rt/modules/graphics/src/main/native-prism-es2/ios/IOSWindowSystemInterface.m:42:33: warning: format specifies type 'int *' but the argument has type 'void *' [-Wformat] shareContext, view, pixelFormat, viewNotReady); ^~~ /Applications/Developer/Java/open-jfx-graphics-8u-dev2/rt/modules/graphics/src/main/native-prism-es2/ios/IOSWindowSystemInterface.m:41:81: warning:invalid conversion specifier ' ' [-Wformat-invalid-specifier] fprintf(stderr, IOSWindowSystemInterface : share %x view %x pf % notready %\n, ~^ /Applications/Developer/Java/open-jfx-graphics-8u-dev2/rt/modules/graphics/src/main/native-prism-es2/ios/IOSWindowSystemInterface.m:60:12: warning: incompatible integer to pointer conversion returning 'jlong' (aka 'long long') from a function with result type 'void *'
Re: 8u20 broken in OS X Yosemite?
Scott and everyone else, Please report Yosemite bugs as soon as you find them. Thanks, Steve On 2014-07-28, 12:01 PM, Kevin Rushforth wrote: Good to hear. We are doing some testing with Yosemite, but it is somewhat limited testing at this point. -- Kevin Scott Palmer wrote: Just to follow up.. things are not as dire as I initially thought. After a reboot my application is working much better. On Sun, Jul 27, 2014 at 12:59 PM, Scott Palmer swpal...@gmail.com wrote: Is anyone testing on Yosemite? I installed the Yosemite public beta and am running with 8u20 b23 (also tested with 8u11, same results) Without violating my Beta Agreement with Apple, lets just say that I strongly suggest that someone at Oracle try it out and perhaps focus on: -AudioClips -MediaPlayer -Animation performance Scott
Milestone moved: M1 is now Aug 11, 2014
Hi all, This week (July 28) is the week before M1 milestone (Aug 4) so we should be ramping down (ie. extra +1 restrictions for committing code, more/better testing, etc.). Since this is the first milestone for 8u40 and there important API deadlines, I spoke with Kevin and we agreed to move M1 back a week to Aug 11 to give us a bit more time before the ramp down. I have updated the wiki: https://wiki.openjdk.java.net/display/OpenJFX/8u40 Steve
Re: JavaFX tuning
Hi Peter, Right now it's not possible to turn off modules. Memory can be consumed in all sorts of different places (Java object memory, graphics card memory, operating system memory, virtual machine memory). Did you have a case where you were running out and hitting an issue? Steve On 2014-07-23, 10:26 AM, Peter Penzov wrote: Hi, What are the options for JavaFX tuning? For example is it possible to turn off some modules of the framework or some configuration for lowering the memory consumption? BR, Peter
Re: Only 1 GUI thread dialogs (was Re: 2 JavaFX applets in the same JVM)
What is the question? How are modal dialogs done in FX? A new event loop is stacked on top of the old, running in the same thread. Steve On 2014-07-08, 5:54 PM, Richard Bair wrote: Hmmm… FX Experience is running for me. Is anybody else having this problem? Richard On Jul 8, 2014, at 2:51 PM, ngalarn...@abinitio.com wrote: Hi Steve, My understanding of Swing was that when in a modal dialog, which blocked the EDT, a second EDT was fired up for the duration of the dialog to keep the events flowing. When you say, below, that only 1 GUI thread is supported (and that thread is the native GUI thread), how are (will?) modal dialogs handled? Thanks, Neil P.S. I've been trying to read Jonathan's article on dialogs on fxexperience.com, but haven't been able to because I get redirected to hosting.xmission.com From: Stephen F Northover steve.x.northo...@oracle.com To: Kevin Rushforth kevin.rushfo...@oracle.com, ngalarn...@abinitio.com, Cc: openjfx-dev@openjdk.java.net Date: 07/08/2014 03:41 PM Subject:Re: 2 JavaFX applets in the same JVM This would imply that there was more than on distinguished GUI thread per process. JavaFX runs in the native GUI thread by design and more than one GUI thread is not supported in JavaFX and on some platforms (ie. Mac). Steve On 2014-07-08, 3:31 PM, Kevin Rushforth wrote: Is running 2 JavaFX applets in the same JVM supported? No, this is not supported. RT-29969 (and the non-public RT-32321) is about running multiple applets from the same web page, each in their own JVM. By design, JavaFX runs each applet in its own VM. It is very unlikely that we would ever add the ability to run more than JavaFX applet in the same VM. -- Kevin ngalarn...@abinitio.com wrote: Hello, What is the status of running 2 JavaFX applets in the same JVM (separate_jvm = false)? When we try to load 2 applets into the same JVM we get a runtime error (I think it was class loader related). When I searched in jira I found RT-29969 (the 2 applet test it refers to may or may not be in the same JVM) which points to RT-32321 which seems to be private (it gives me an error when I try to access it). Is running 2 JavaFX applets in the same JVM supported? If not, is that a bug or a feature? Thanks, Neil NOTICE from Ab Initio: This email (including any attachments) may contain information that is subject to confidentiality obligations or is legally privileged, and sender does not waive confidentiality or privilege. If received in error, please notify the sender, delete this email, and make no further use, disclosure, or distribution. NOTICE from Ab Initio: This email (including any attachments) may contain information that is subject to confidentiality obligations or is legally privileged, and sender does not waive confidentiality or privilege. If received in error, please notify the sender, delete this email, and make no further use, disclosure, or distribution.
Re: ComboBox: TestEditor to ListView binding
Hi Kirill, I looked at this again quickly and while there might be a combination of events and listeners that can make a combo box behave this way, you are better to create your own search box and manage the popup list. The reason for this is that any code you are likely to write that manipulates the combo box will be sensitive to event ordering. There is an example of a search field as part of EnsembleApp. It is quite complicated and fancy and is mixed in with EnsembleApp code so you might have to work a bit to extract a simpler version of what you are looking for. Hopefully Jasper is reading this right now and can whip up a hundred lines of code or so that do what you want. Steve On 2014-07-04, 5:48 PM, Kirill Kirichenko wrote: I'm implementing a searchbox. In the textfield of the combobox I'm typing a search string. textProperty of the editor has an onChange listener which forms a list of strings that contain the text as a substring. Then I set this list of strings as a content of the drop down list of the combobox. The problem is when I start selecting items in the drop down list the editor field gets updated making new substring search and updating the list again. I want to break this dependency. I don't want to update the text property when I select an item in the drop down list OR I want to distinguish in the textProperty listener what caused that event - real editing the field or setting the field trough binding from the list view. I hope I could make myself clear. K On 05.07.2014 01:21, Stephen F Northover wrote: Hi Kirill, What exactly are you trying to do? The following (crap) listens for the value to change and then sets it back: ChangeListenerString l = new ChangeListenerString () { public void changed(ObservableValue observable, String oldValue, String newValue) { System.out.println(attempt to set new value: + newValue); Platform.runLater(() - { comboBox3.valueProperty().removeListener(this); System.out.println(restoring old value: + newValue); comboBox3.setValue(oldValue); comboBox3.valueProperty().addListener(this); }); }; }; comboBox3.valueProperty().addListener(l); This is not good code because it adds and removes a listener to avoid notification when the value is reset. It uses runLater() in order to stop the combo box from getting confused when the value is changed from within a changed listener. Steve On 2014-07-04, 3:09 PM, Kirill Kirichenko wrote: JavaFX ComboBox has binding between TextEdit field and the ListView selection such that edit field gets updated when we change the selected item in the drop down list. Is there a way to break this binding - when we select an item in the list the editor field remains untouched. Where should I look at ? Thanks. K
Re: REMINDER: no push Mondays are still in effect
The link that describes this process is here: https://wiki.openjdk.java.net/display/OpenJFX/Sanity+Testing Note that the link has moved. Steve On 2014-07-07, 11:04 AM, Kevin Rushforth wrote: Please note that we should still be observing the no push Monday rule, meaning that no changes should be pushed (other than to fix a build or test failure, or IDE changes, etc) after 1am Pacific on Mondays. Ordinarily it doesn't really matter, but today we had to restart the Hudson build due to a failure, which picked up changes pushed after 1am. There is no action needed for this week. We are early enough in the build cycle for both 8u40 (prior to the first promoted EA build) and 9 that we will just pick up the changes that were pushed after 1am. Please remember to observe the quiet period in the future though. Thank you. -- Kevin
Re: ComboBox: TestEditor to ListView binding
Hi Kirill, What exactly are you trying to do? The following (crap) listens for the value to change and then sets it back: ChangeListenerString l = new ChangeListenerString () { public void changed(ObservableValue observable, String oldValue, String newValue) { System.out.println(attempt to set new value: + newValue); Platform.runLater(() - { comboBox3.valueProperty().removeListener(this); System.out.println(restoring old value: + newValue); comboBox3.setValue(oldValue); comboBox3.valueProperty().addListener(this); }); }; }; comboBox3.valueProperty().addListener(l); This is not good code because it adds and removes a listener to avoid notification when the value is reset. It uses runLater() in order to stop the combo box from getting confused when the value is changed from within a changed listener. Steve On 2014-07-04, 3:09 PM, Kirill Kirichenko wrote: JavaFX ComboBox has binding between TextEdit field and the ListView selection such that edit field gets updated when we change the selected item in the drop down list. Is there a way to break this binding - when we select an item in the list the editor field remains untouched. Where should I look at ? Thanks. K
OpenJFX: API Review Process
Hi all, We've been working hard to document OpenJFX development over the past few months and strangely, the API Review Process was not described anywhere. To fix this, I have updated the wiki: https://wiki.openjdk.java.net/display/OpenJFX/API+Review API is forever so it is very important that we are careful and consistent in our approach to updating the toolkit. Steve
Re: Review Request: RT-37788
I'm glad your not an objective C. I suggest getting Felipe to look at this code too should we decide to go ahead with it. Steve On 2014-07-02, 5:15 PM, Danno Ferrin wrote: Chris, Kevin, Steve, Please review this fix for RT-37788. Since I am not an objective C any comments are welcome. Also, please consider if this is too much for an 8u20 fix (the diff is against the current 8u40 codebase). Webrev: http://cr.openjdk.java.net/~shemnon/RT-37788/webrev.00/ JIRA: https://javafx-jira.kenai.com/browse/RT-37788 —Danno
Re: Review Request: RT-37788
Personally, I wouldn't change any native code at this point unless it was fixing a crash. The review is for 8u40, correct? Steve On 2014-07-02, 5:38 PM, Chris Bensen wrote: I’m not sure about for 8u20. Seems fairly straight forward, and your Obj-C seems as good as any Obj-C. My only complaint at the moment is the following: 358 if ([pathParts count] 2) { 359 // for 3 or more steps, the domain is first.second.third and the keys are /first/second/third/, fourth/, fifth/... etc 360 persistentDomain = [NSString stringWithFormat: @%@.%@.%@, [pathParts objectAtIndex: 0], 361 [pathParts objectAtIndex: 1], [pathParts objectAtIndex: 2]]; 362 363 [dictPath replaceObjectAtIndex: 0 withObject: [NSString stringWithFormat:@/%@/%@/%@, [pathParts objectAtIndex: 0], 364[pathParts objectAtIndex: 1], [pathParts objectAtIndex: 2]]]; 365 [dictPath removeObjectAtIndex: 2]; 366 [dictPath removeObjectAtIndex: 1]; 367 } else { 368 // for 1 or two steps, the domain is first.second.third and the keys are /, first/, second/ 369 persistentDomain = @DEFAULT_JAVA_PREFS_DOMAIN; 370 [dictPath insertObject: @ atIndex:0]; 371 } what if [pathParts count] is 0? I’d probably do a switch: switch ([pathParts count]) { case 0: //error return/break; case 1: case 2: 368 // for 1 or two steps, the domain is first.second.third and the keys are /, first/, second/ 369 persistentDomain = @DEFAULT_JAVA_PREFS_DOMAIN; 370 [dictPath insertObject: @ atIndex:0]; default: 359 // for 3 or more steps, the domain is first.second.third and the keys are /first/second/third/, fourth/, fifth/... etc 360 persistentDomain = [NSString stringWithFormat: @%@.%@.%@, [pathParts objectAtIndex: 0], 361 [pathParts objectAtIndex: 1], [pathParts objectAtIndex: 2]]; 362 363 [dictPath replaceObjectAtIndex: 0 withObject: [NSString stringWithFormat:@/%@/%@/%@, [pathParts objectAtIndex: 0], 364[pathParts objectAtIndex: 1], [pathParts objectAtIndex: 2]]]; 365 [dictPath removeObjectAtIndex: 2]; 366 [dictPath removeObjectAtIndex: 1]; } Make sense? Clear as mud? Chris On Jul 2, 2014, at 2:15 PM, Danno Ferrin danno.fer...@oracle.com mailto:danno.fer...@oracle.com wrote: Chris, Kevin, Steve, Please review this fix for RT-37788. Since I am not an objective C any comments are welcome. Also, please consider if this is too much for an 8u20 fix (the diff is against the current 8u40 codebase). Webrev: http://cr.openjdk.java.net/~shemnon/RT-37788/webrev.00/ http://cr.openjdk.java.net/%7Eshemnon/RT-37788/webrev.00/ JIRA: https://javafx-jira.kenai.com/browse/RT-37788 —Danno
Re: hg: openjfx/8u-dev/rt: Take public off StyleablePropertyFactory pending further review of RT-36501: Reduce CssMetaData boilerplate code
Hi Tom, The code got away too soon. Please add your comment to the JIRA so that we can take it into account. Thanks, Steve On 2014-06-27, 6:06 AM, Tom Schindl wrote: The class is showing com.sun.istack.internal.NotNull in it's API! Is this really a good idea? Tom On 26.06.14 21:48, david.gri...@oracle.com wrote: Changeset: 8d41ccb6bcdb Author:David Grievedavid.gri...@oracle.com Date: 2014-06-26 15:47 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/8d41ccb6bcdb Take public off StyleablePropertyFactory pending further review of RT-36501: Reduce CssMetaData boilerplate code ! modules/graphics/src/main/java/javafx/css/StyleablePropertyFactory.java
Re: hg: openjfx/8u-dev/rt: Take public off StyleablePropertyFactory pending further review of RT-36501: Reduce CssMetaData boilerplate code
It was a typo. I added your comment. Steve On 2014-06-27, 9:43 AM, Tom Schindl wrote: What is the correct JIRA? RT-36501 is a completely different entry. Tom On 27.06.14 15:39, Stephen F Northover wrote: Hi Tom, The code got away too soon. Please add your comment to the JIRA so that we can take it into account. Thanks, Steve On 2014-06-27, 6:06 AM, Tom Schindl wrote: The class is showing com.sun.istack.internal.NotNull in it's API! Is this really a good idea? Tom On 26.06.14 21:48, david.gri...@oracle.com wrote: Changeset: 8d41ccb6bcdb Author:David Grievedavid.gri...@oracle.com Date: 2014-06-26 15:47 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/8d41ccb6bcdb Take public off StyleablePropertyFactory pending further review of RT-36501: Reduce CssMetaData boilerplate code ! modules/graphics/src/main/java/javafx/css/StyleablePropertyFactory.java
Re: hg: openjfx/8u-dev/rt: Take public off StyleablePropertyFactory pending further review of RT-36501: Reduce CssMetaData boilerplate code
https://javafx-jira.kenai.com/browse/RT-36510 On 2014-06-27, 9:43 AM, Tom Schindl wrote: What is the correct JIRA? RT-36501 is a completely different entry. Tom On 27.06.14 15:39, Stephen F Northover wrote: Hi Tom, The code got away too soon. Please add your comment to the JIRA so that we can take it into account. Thanks, Steve On 2014-06-27, 6:06 AM, Tom Schindl wrote: The class is showing com.sun.istack.internal.NotNull in it's API! Is this really a good idea? Tom On 26.06.14 21:48, david.gri...@oracle.com wrote: Changeset: 8d41ccb6bcdb Author:David Grievedavid.gri...@oracle.com Date: 2014-06-26 15:47 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/8d41ccb6bcdb Take public off StyleablePropertyFactory pending further review of RT-36501: Reduce CssMetaData boilerplate code ! modules/graphics/src/main/java/javafx/css/StyleablePropertyFactory.java
Re: Testing accessibility / sample apps
Studio 10.0/VC/BIN/amd64/cl.exe (in directory D:\jann\sandbox\java\openjfx\modules\fxpackager): CreateProcess error=2, Das System kann die angegebene Datei nicht finden ... Caused by: java.io.IOException: CreateProcess error=2, Das System kann die angegebene Datei nicht finden (file not found) Actually cl.exe is located at: C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin - but it looks for ...bin/amd64/cl.exe I've also tried to run the build from the cygwin terminal and as well from the visual studio command prompt where i could call cl.exe directly .. Always the same result. Is there a parameter to specify where theVS compiler and stuff is located? btw. i checked that the %VS100COMNTools% variable is set properly. What else could i check? Thanks in advance :) Jann 2014-06-20 23:30 GMT+02:00, Kevin Rushforth kevin.rushfo...@oracle.com: * What went wrong: Execution failed for task ':fxpackager:buildJavaPackager'. Could not call NativeCompileTask.compile() on task ':fxpackager:buildJavaPackager' When I've seen this in the past it's been related to the compiler install. Do you have VS 2010 SP1 or something else? -- Kevin Jann Schneider wrote: Hi, Well on windows it's always a bit more difficult i guess :-) After setting up my build environment as described on the wiki i first tried $ gradle tasks This works as expected! When running $ gradle sdk or just gradle without any target i get the following error: FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':fxpackager:buildJavaPackager'. Could not call NativeCompileTask.compile() on task ':fxpackager:buildJavaPackager' Is this a known issue and do you know what's going wrong here? Should i post more info or debug output, too? Thanks Jann 2014-06-20 21:58 GMT+02:00, Stephen F Northover steve.x.northo...@oracle.com: Being non-Unix, Windows is always a pain. Steve On 2014-06-20, 3:42 PM, Kevin Rushforth wrote: I hope you have similar success with the Windows build. -- Kevin Jann Schneider wrote: Hi all, The build instructions for linux where very good! I was able to build the project without any problems. Regards Jann 2014-06-20 19:27 GMT+02:00, Kevin Rushforth kevin.rushfo...@oracle.com: To be clear, you will still use the 8u-dev repo at the existing URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt It's just that after Monday the repo will become the place where 8u40 work is done. Regarding the build, it is a bit painful to set up for Windows, but not too bad as long as you don't need to build WebKit. We would be interested in hearing whether the instructions on the Wiki are sufficient for you to get the build working. -- Kevin Stephen F Northover wrote: Ok, let us know how you get on with building FX. NOTE: The accessibility code is not there in 8u20 so you will just be ensuring that you can build on Windows (there is nothing there to test). The accessibility code will be going back into 8u40 on Monday or Tuesday so you'll need to get that release at that time and build it instead when it becomes available. It's good to debug the build process though because it can be painful building from source. Steve On 2014-06-20, 12:43 PM, Jann Schneider wrote: Hi all, @Steven: thx for the links. I'll try to build the openjfx project on the windows 7 notebook and test the sample apps with NVDA then. Today i tried the latest ea of jdk1.8.0_20 and sample apps with nvda 14.2. Unfortunately i was not able to read anything except the window title. I've just installed the jdk, changed my JAVA_HOME and tried to run e.g. the ensemble.jar $ java -jar ensemble.jar -Djavafx.accessible.force=true Well i'll try it again by means of building javafx from source and post my results back to the list. Regards Jann! 2014-06-20 14:46 GMT+02:00, Stephen F Northover steve.x.northo...@oracle.com: Hello Jann! As soon as the 8u40 repos open, the Accessibility code will be put back along with the recent fixes for JAWS. Since OpenJFX (and the JDK) does not have nightly builds, unless you want to wait for an EA build of 8u40 or 9, you will need to get OpenJFX and build it. This is really the best way to work with the team anyway because you can get fixes as they are made. EA builds take a while to come out and there is no substitute for running on the latest code base. Unfortunately due to Microsoft, building OpenJFX is a bit harder on Windows. However, it is doable and the build instructions should be complete. If they are not (and if you hit any problems), please post back to this list. Here are the build instructions: https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX Many committers use an IDE (you don't have to) and OpenJFX is supports the three major IDE vendors: https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE Looking forward to working with you, Steve On 2014-06-19, 7:10 PM, Felipe Heidrich wrote: Hi Jann
Re: New alias for hg commit notifications?
I don't see a down side to this other than people will have to subscribe to the new list get the notifications that they were seeing before (or could / should / can we see the new list?) Steve On 2014-06-24, 9:34 AM, Kevin Rushforth wrote: It has been suggested that we create a new alias for Mercurial (hg) commit notifications -- perhaps openjfx-chan...@openjdk.java.net -- rather than sending all of them to the discussion alias. This will facilitate e-mail filtering as well as allow people to opt in or out of getting these notifications separately from being on the discussion alias. What do others think? -- Kevin
Re: Exposing native surface or opengl handle
I'm sorry this thread scrolled away into the bitbucket in the sky. Last JavaOne, we wrote a prototype that showed native integration on OS X. We parented a native sheet dialog in an FX stage and providing an OpenGL node. The code was a prototype that worked only on OS X. The Open GL node allowed drawing JOGL and LWJGL to draw on a texture that was created by FX. This mean that the OpenGL node could take part in FX animations and effects. I will attach the prototype code to https://javafx-jira.kenai.com/browse/RT-36215. I need to find it and make sure that it still compiles and works. This week is M5 RDP2 and today is likely to be a write off for a number of reasons. https://wiki.openjdk.java.net/display/OpenJFX/8u20 Please ping me in the JIRA if the code doesn't show up sometime this week. The prototype is the basis of one possible implementation and needs some work. There are other possible implementations and this is not the final word on the issue. Steve On 2014-06-23, 10:03 AM, Robert Krüger wrote: Sorry, my last reply did not go to the list. That was unintended. Oracle-Team, please someone comment on this, at least on what should be done regarding a Jira Issue (or several ones?) to track any progress on this and collect ideas requirements. Best regards, Robert On Fri, Jun 13, 2014 at 10:41 PM, Robert Krüger krue...@lesspain.de wrote: Thanks for the hint. I think this is similar to what a colleague of mine did a while ago as a proof of concept using other com.sun.api that then went away. As long as we're bundling the JRE with our product and we're desperate enough to get it working, we might do something like this but it's of course just a last resort. Lets hope someone from Oracle says something. On Fri, Jun 13, 2014 at 8:05 PM, Scott Palmer swpal...@gmail.com wrote: That’s basically it. It isn’t perfect, but its so simple I don’t see why it can’t be done quickly. We are already talking about using native code to render. That said, com.sun.glass.ui.Window contains the field we want: // Native object handle (HWND, or NSWindow*, etc.) long ptr; You could be evil and hack it now with reflection, but it relies on internal implementation details. In my application I already create a native window for video preview… though not as a child of the FX window. The problem is that there isn’t a straight-forward, reliable, supported way to get the window handle to use for the parent (JavaFX) window. There are ways to hack it, but they aren’t pretty. Scott On Jun 13, 2014, at 7:55 AM, Robert Krüger krue...@lesspain.de wrote: Just for my understanding: Your approach would be to get the native window handle for the hosting JFX stage, then leave an open space in the layout for e.g. the player canvas that will be implemented natively and then create a native child window that just reacts to move and resize events of its native parent? On Fri, Jun 13, 2014 at 1:48 PM, Scott Palmer swpal...@gmail.com wrote: This is critical, but I don't think we need to focus on a specific technology like Direct3D or OpenGL. As a first step all we need is a mechanism to get a native reference to the Window. Just like we can with JAWT. I'm guessing that JavaFX doesn't use heavyweight child windows so we could add a new child window that we manage with our own code and it would appear on top of the JavaFX content. Scott On Jun 13, 2014, at 3:08 AM, Felix Bembrick felix.bembr...@gmail.com wrote: I absolutely agree that such a feature is critical for the success and longevity of JavaFX. I am *really* hoping for some heavily beefed-up 3D support in a JFX 8.* release or JFX 9. I need my graphics toolkit (currently JavaFX) to be able to handle everything from simple UIs with basic controls to complex 3D visualisations, just like the underlying graphics API is capable of (i.e. OpenGL or Direct3D). I strongly suspect though that focusing on OpenGL exclusively is the only viable way to go from a cost perspective which would mean JavaFX supporting OpenGL on Windows. On 13 June 2014 16:57, Robert Krüger krue...@lesspain.de wrote: Hi, it has been discussed a number of time in the passed but let me quickly summarize: A number of people have requested a feature that provides the ability to have native code draw into a surface provided by a JavaFX application as fast as technically possible, i.e. with no indirection or copying because use cases for this were mostly cases where performance was critical, e.g. HD/UHD video players, real-time visualization etc. where losing even e few percent would make a software written in JavaFX unable to compete with native products (e.g. in the video area nobody will use a video player that is not able to play the content smoothly that VLC player or Quicktime can on the same machine). Some people already have libraries of native code that they have built over the years and would like to reuse. I would even go so far to say that
Re: Testing accessibility / sample apps
Hello Jann! As soon as the 8u40 repos open, the Accessibility code will be put back along with the recent fixes for JAWS. Since OpenJFX (and the JDK) does not have nightly builds, unless you want to wait for an EA build of 8u40 or 9, you will need to get OpenJFX and build it. This is really the best way to work with the team anyway because you can get fixes as they are made. EA builds take a while to come out and there is no substitute for running on the latest code base. Unfortunately due to Microsoft, building OpenJFX is a bit harder on Windows. However, it is doable and the build instructions should be complete. If they are not (and if you hit any problems), please post back to this list. Here are the build instructions: https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX Many committers use an IDE (you don't have to) and OpenJFX is supports the three major IDE vendors: https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE Looking forward to working with you, Steve On 2014-06-19, 7:10 PM, Felipe Heidrich wrote: Hi Jann, Unfortunately Linux support is not in the plan for 8u40. Windows 7 is supported and we have recently fixed JAWS support (see https://javafx-jira.kenai.com/browse/RT-37530 and https://javafx-jira.kenai.com/browse/RT-37609). Unfortunately due to the 8u20 to 8u40 transition the code has not being released yet, but soon. The majority of our testing was done using Narrator. That said, I also tested NVDA lastest version on Windows 8 and I didn’t see any major problems. On the Mac we tested with VoiceOver. Regards, Felipe On Jun 19, 2014, at 2:24 PM, Jann Schneider jann.schnei...@googlemail.com wrote: Hello all, As a blind java developer i'm interessted in testing the accessibility of JavaFX and maybe help to find some issues. I've just set up my build environment on my ubuntu 14.04 laptop and checked out the project files as described in the wiki. I could also set it up on a windows 7 with Jaws 15 and NVDa (don't know what the current version is) for comparison.. No i am wondering if there are some examples i could try? Regards Jann
Re: Dialogs in JavaFX
This essentially matches my current thinking, however, I would have DialogBox as an abstract superclass of Alert. Further, I would not have many different types of show() methods. Want to take the discussion further in the JIRA? That way, is will track everyone's thinking on the various issues. The downside is that JIRA does not provide threaded conversations and it can be hard to follow. Steve On 2014-06-20, 9:41 AM, Jeff Martin wrote: That is a great post. I think the big problem with dialogs in Swing was the permutations problem. There were four basic types of dialogs (Message, Confirm, Option, Input) with six different parameters (Title, Message, Icon, Content, MessageType, Options) - so JOptionPane ended up with a sea of static methods that were confusing to navigate. I don't think you could go wrong with a simple DialogBox class like this (I love simple): // Constructor public DialogBox(String aTitle); // Options public String getTitle(); public void setTitle(String aTitle); public String getMessage(); public void setMessage(String aMessage); public MessageType getMessageType(); public void setMessageType(MessageType aMessageType); public Node getContent(); public void setContent(Node aNode); public Node getGraphic(); public void setGraphic(Node aNode); public String[] getOptions(); public void setOptions(String ... theOptions); // Convenience methods to set Message + MessageType public void setErrorMessage(String aMessage); public void setWarningMessage(String aMessage); public void setQuestionMessage(String aMessage); // Show methods public void showMessageDialog(T aComp); public boolean showConfirmDialog(T aComp); public int showOptionDialog(T aComp, String aDefault); public String showInputDialog(T aComp, String aDefault); // Programatic dismissal public void confirm(); public void cancel(); Then most common invocations would look something like this: // Get user confirmation DialogBox dbox = new DialogBox(Sanity Check); dbox.setWarningMessage(Are you sure you want to do this? It could kill you.); if(!dbox.showConfirmationDialog(focusedNode)) return; Using instance methods instead of static methods gives opportunity to subclass and override various methods. And notice the Content attribute - for the standard case when no Content is provided, it is built programmatically based on the parameters (essentially just the message and either an Option combo, an input textfield or nothing). I've been using this in my JavaFX app for a while and it is working great and makes porting from Swing easy. I even built it on a convenient FormBuilder class that makes building a simple stack of form controls easy, and can also be used for advanced DialogBoxes. Jeff Martin 214.513.1636 On Jun 20, 2014, at 7:05 AM, Stephen F Northover steve.x.northo...@oracle.com wrote: Great post Jonathan. The summary is that whatever direction we take, we'll have a plan for the future. So if we run out of time and provide only a very scaled back API, we'll have prototyped how it can evolve to handle more complex cases. Steve On 2014-06-20, 12:37 AM, Jonathan Giles wrote: Hi all, Dialogs are something everyone wants, and also something most people seem to have an opinion on! JavaFX 8u40 will have dialogs, but what form they take (API-wise) is not yet defined. I've posted a relatively long discussion on this over at FX Experience [1] and your feedback is highly welcome. As I note in the blog post, the Jira issue for this feature is RT-12643. If you have any thoughts, please do post them there (rather than spam the many good people subscribed to openjfx-dev). [1] http://fxexperience.com/2014/06/bringing-dialogs-to-javafx/ Thanks!
Re: Testing accessibility / sample apps
Ok, let us know how you get on with building FX. NOTE: The accessibility code is not there in 8u20 so you will just be ensuring that you can build on Windows (there is nothing there to test). The accessibility code will be going back into 8u40 on Monday or Tuesday so you'll need to get that release at that time and build it instead when it becomes available. It's good to debug the build process though because it can be painful building from source. Steve On 2014-06-20, 12:43 PM, Jann Schneider wrote: Hi all, @Steven: thx for the links. I'll try to build the openjfx project on the windows 7 notebook and test the sample apps with NVDA then. Today i tried the latest ea of jdk1.8.0_20 and sample apps with nvda 14.2. Unfortunately i was not able to read anything except the window title. I've just installed the jdk, changed my JAVA_HOME and tried to run e.g. the ensemble.jar $ java -jar ensemble.jar -Djavafx.accessible.force=true Well i'll try it again by means of building javafx from source and post my results back to the list. Regards Jann! 2014-06-20 14:46 GMT+02:00, Stephen F Northover steve.x.northo...@oracle.com: Hello Jann! As soon as the 8u40 repos open, the Accessibility code will be put back along with the recent fixes for JAWS. Since OpenJFX (and the JDK) does not have nightly builds, unless you want to wait for an EA build of 8u40 or 9, you will need to get OpenJFX and build it. This is really the best way to work with the team anyway because you can get fixes as they are made. EA builds take a while to come out and there is no substitute for running on the latest code base. Unfortunately due to Microsoft, building OpenJFX is a bit harder on Windows. However, it is doable and the build instructions should be complete. If they are not (and if you hit any problems), please post back to this list. Here are the build instructions: https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX Many committers use an IDE (you don't have to) and OpenJFX is supports the three major IDE vendors: https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE Looking forward to working with you, Steve On 2014-06-19, 7:10 PM, Felipe Heidrich wrote: Hi Jann, Unfortunately Linux support is not in the plan for 8u40. Windows 7 is supported and we have recently fixed JAWS support (see https://javafx-jira.kenai.com/browse/RT-37530 and https://javafx-jira.kenai.com/browse/RT-37609). Unfortunately due to the 8u20 to 8u40 transition the code has not being released yet, but soon. The majority of our testing was done using Narrator. That said, I also tested NVDA lastest version on Windows 8 and I didn’t see any major problems. On the Mac we tested with VoiceOver. Regards, Felipe On Jun 19, 2014, at 2:24 PM, Jann Schneider jann.schnei...@googlemail.com wrote: Hello all, As a blind java developer i'm interessted in testing the accessibility of JavaFX and maybe help to find some issues. I've just set up my build environment on my ubuntu 14.04 laptop and checked out the project files as described in the wiki. I could also set it up on a windows 7 with Jaws 15 and NVDa (don't know what the current version is) for comparison.. No i am wondering if there are some examples i could try? Regards Jann
Re: Testing accessibility / sample apps
Being non-Unix, Windows is always a pain. Steve On 2014-06-20, 3:42 PM, Kevin Rushforth wrote: I hope you have similar success with the Windows build. -- Kevin Jann Schneider wrote: Hi all, The build instructions for linux where very good! I was able to build the project without any problems. Regards Jann 2014-06-20 19:27 GMT+02:00, Kevin Rushforth kevin.rushfo...@oracle.com: To be clear, you will still use the 8u-dev repo at the existing URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt It's just that after Monday the repo will become the place where 8u40 work is done. Regarding the build, it is a bit painful to set up for Windows, but not too bad as long as you don't need to build WebKit. We would be interested in hearing whether the instructions on the Wiki are sufficient for you to get the build working. -- Kevin Stephen F Northover wrote: Ok, let us know how you get on with building FX. NOTE: The accessibility code is not there in 8u20 so you will just be ensuring that you can build on Windows (there is nothing there to test). The accessibility code will be going back into 8u40 on Monday or Tuesday so you'll need to get that release at that time and build it instead when it becomes available. It's good to debug the build process though because it can be painful building from source. Steve On 2014-06-20, 12:43 PM, Jann Schneider wrote: Hi all, @Steven: thx for the links. I'll try to build the openjfx project on the windows 7 notebook and test the sample apps with NVDA then. Today i tried the latest ea of jdk1.8.0_20 and sample apps with nvda 14.2. Unfortunately i was not able to read anything except the window title. I've just installed the jdk, changed my JAVA_HOME and tried to run e.g. the ensemble.jar $ java -jar ensemble.jar -Djavafx.accessible.force=true Well i'll try it again by means of building javafx from source and post my results back to the list. Regards Jann! 2014-06-20 14:46 GMT+02:00, Stephen F Northover steve.x.northo...@oracle.com: Hello Jann! As soon as the 8u40 repos open, the Accessibility code will be put back along with the recent fixes for JAWS. Since OpenJFX (and the JDK) does not have nightly builds, unless you want to wait for an EA build of 8u40 or 9, you will need to get OpenJFX and build it. This is really the best way to work with the team anyway because you can get fixes as they are made. EA builds take a while to come out and there is no substitute for running on the latest code base. Unfortunately due to Microsoft, building OpenJFX is a bit harder on Windows. However, it is doable and the build instructions should be complete. If they are not (and if you hit any problems), please post back to this list. Here are the build instructions: https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX Many committers use an IDE (you don't have to) and OpenJFX is supports the three major IDE vendors: https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE Looking forward to working with you, Steve On 2014-06-19, 7:10 PM, Felipe Heidrich wrote: Hi Jann, Unfortunately Linux support is not in the plan for 8u40. Windows 7 is supported and we have recently fixed JAWS support (see https://javafx-jira.kenai.com/browse/RT-37530 and https://javafx-jira.kenai.com/browse/RT-37609). Unfortunately due to the 8u20 to 8u40 transition the code has not being released yet, but soon. The majority of our testing was done using Narrator. That said, I also tested NVDA lastest version on Windows 8 and I didn’t see any major problems. On the Mac we tested with VoiceOver. Regards, Felipe On Jun 19, 2014, at 2:24 PM, Jann Schneider jann.schnei...@googlemail.com wrote: Hello all, As a blind java developer i'm interessted in testing the accessibility of JavaFX and maybe help to find some issues. I've just set up my build environment on my ubuntu 14.04 laptop and checked out the project files as described in the wiki. I could also set it up on a windows 7 with Jaws 15 and NVDa (don't know what the current version is) for comparison.. No i am wondering if there are some examples i could try? Regards Jann
Re: Testing accessibility / sample apps
You'll need to run under a Cygwin shell or paths will be wrong. Fingers crossed ... Steve On 2014-06-20, 5:12 PM, Jann Schneider wrote: Hi, Well on windows it's always a bit more difficult i guess :-) After setting up my build environment as described on the wiki i first tried $ gradle tasks This works as expected! When running $ gradle sdk or just gradle without any target i get the following error: FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':fxpackager:buildJavaPackager'. Could not call NativeCompileTask.compile() on task ':fxpackager:buildJavaPackager' Is this a known issue and do you know what's going wrong here? Should i post more info or debug output, too? Thanks Jann 2014-06-20 21:58 GMT+02:00, Stephen F Northover steve.x.northo...@oracle.com: Being non-Unix, Windows is always a pain. Steve On 2014-06-20, 3:42 PM, Kevin Rushforth wrote: I hope you have similar success with the Windows build. -- Kevin Jann Schneider wrote: Hi all, The build instructions for linux where very good! I was able to build the project without any problems. Regards Jann 2014-06-20 19:27 GMT+02:00, Kevin Rushforth kevin.rushfo...@oracle.com: To be clear, you will still use the 8u-dev repo at the existing URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt It's just that after Monday the repo will become the place where 8u40 work is done. Regarding the build, it is a bit painful to set up for Windows, but not too bad as long as you don't need to build WebKit. We would be interested in hearing whether the instructions on the Wiki are sufficient for you to get the build working. -- Kevin Stephen F Northover wrote: Ok, let us know how you get on with building FX. NOTE: The accessibility code is not there in 8u20 so you will just be ensuring that you can build on Windows (there is nothing there to test). The accessibility code will be going back into 8u40 on Monday or Tuesday so you'll need to get that release at that time and build it instead when it becomes available. It's good to debug the build process though because it can be painful building from source. Steve On 2014-06-20, 12:43 PM, Jann Schneider wrote: Hi all, @Steven: thx for the links. I'll try to build the openjfx project on the windows 7 notebook and test the sample apps with NVDA then. Today i tried the latest ea of jdk1.8.0_20 and sample apps with nvda 14.2. Unfortunately i was not able to read anything except the window title. I've just installed the jdk, changed my JAVA_HOME and tried to run e.g. the ensemble.jar $ java -jar ensemble.jar -Djavafx.accessible.force=true Well i'll try it again by means of building javafx from source and post my results back to the list. Regards Jann! 2014-06-20 14:46 GMT+02:00, Stephen F Northover steve.x.northo...@oracle.com: Hello Jann! As soon as the 8u40 repos open, the Accessibility code will be put back along with the recent fixes for JAWS. Since OpenJFX (and the JDK) does not have nightly builds, unless you want to wait for an EA build of 8u40 or 9, you will need to get OpenJFX and build it. This is really the best way to work with the team anyway because you can get fixes as they are made. EA builds take a while to come out and there is no substitute for running on the latest code base. Unfortunately due to Microsoft, building OpenJFX is a bit harder on Windows. However, it is doable and the build instructions should be complete. If they are not (and if you hit any problems), please post back to this list. Here are the build instructions: https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX Many committers use an IDE (you don't have to) and OpenJFX is supports the three major IDE vendors: https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE Looking forward to working with you, Steve On 2014-06-19, 7:10 PM, Felipe Heidrich wrote: Hi Jann, Unfortunately Linux support is not in the plan for 8u40. Windows 7 is supported and we have recently fixed JAWS support (see https://javafx-jira.kenai.com/browse/RT-37530 and https://javafx-jira.kenai.com/browse/RT-37609). Unfortunately due to the 8u20 to 8u40 transition the code has not being released yet, but soon. The majority of our testing was done using Narrator. That said, I also tested NVDA lastest version on Windows 8 and I didn’t see any major problems. On the Mac we tested with VoiceOver. Regards, Felipe On Jun 19, 2014, at 2:24 PM, Jann Schneider jann.schnei...@googlemail.com wrote: Hello all, As a blind java developer i'm interessted in testing the accessibility of JavaFX and maybe help to find some issues. I've just set up my build environment on my ubuntu 14.04 laptop and checked out the project files as described in the wiki. I could also set it up on a windows 7 with Jaws 15 and NVDa (don't know what the current version is) for comparison.. No i am wondering if there are some examples i could try? Regards Jann
Re: Is JavaFX keyboard event handling too rigid?
You should be able to use event filtering to get in the way of any event before it is delivered to the control. If you provide some sample code for what you are trying to do, we can take a look at it and suggest a possible solution. Steve On 2014-06-13, 10:39 AM, Tomas Mikula wrote: Hi Randahl, I think the general advice is to avoid subclassing controls if possible. You can create your custom control that embeds a text field and filter events on your custom control so they never reach the embedded text field. Tomas On Fri, Jun 13, 2014 at 10:11 AM, Randahl Fink Isaksen rand...@rockit.dk wrote: I have noticed that quite many developers are having trouble avoiding triggering of focus navigation occurring when a user presses the UP and DOWN arrow keys. From a number of different forum posts I have seen how people are jumping through hoops to avoid this. I myself have the challenge, that I need to use the UP and DOWN keys for changing the selected autocompletion in a text field, and it seems that no matter how greedily I try to consume or filter out these KeyEvents, JavaFX still insists on moving the focus from one field to the next. This got me thinking: Why is JavaFX keyboard event handling so rigid? If you implement a control which listens for keyboard events on itself and does some cool stuff, that is fine. But once you implement a subclass that wishes to replace some of that behaviour you are in trouble, because once the EventHandlers are registered, there is no public API to replace them. Is this a conscious design decision? Is it something that I should file a feature request on, or have I overlooked a part of the API which could be used here? Randahl
Re: VisibleBounds
This seems like a good enhancement request. Please enter a JIRA for it. Steve On 2014-06-11, 10:17 AM, Jeff Martin wrote: Below is my poor man's getVisibleBounds. I'm using this so that my custom text pane only needs to add child nodes for lines of text that are visible - similar to how ListView and friends only add cell nodes for visible items. I hope I'm on the right track - I was surprised that my web search for getVisibleBounds() came up so empty. If nobody points out my idiocy, I'm going to put this in a blog. jeff /** * Returns the visible bounds for a node based on ancestor clips (or null if no clipping found). */ public static Bounds getVisibleBounds(Node aNode) { // Get parent visible bounds (if set, convert to local) Bounds bounds = aNode.getParent()!=null? getVisibleBounds(aNode.getParent()) : null; if(bounds!=null) { if(!bounds.isEmpty()) bounds = aNode.parentToLocal(bounds); else return bounds; } // If node has clip, get clip local bounds (intersected with parent visible bounds if present) if(aNode.getClip()!=null) { Node clip = aNode.getClip(); Bounds cb = clip.getBoundsInLocal(); bounds = bounds!=null? getIntersectingBounds(cb, bounds) : cb; } // Return node visible bounds return bounds; } /** * Returns the intersection bounds of two bounds. */ public static Bounds getIntersectingBounds(Bounds b1, Bounds b2) { if(!b1.intersects(b2)) return new BoundingBox(0,0,-1,-1); double minx = Math.max(b1.getMinX(), b2.getMinX()); double miny = Math.max(b1.getMinY(), b2.getMinY()); double maxx = Math.min(b1.getMaxX(), b2.getMaxX()); double maxy = Math.min(b1.getMaxY(), b2.getMaxY()); return new BoundingBox(minx, miny, maxx-minx, maxy-miny); } On Jun 10, 2014, at 6:59 PM, Jeff Martin j...@reportmill.com wrote: What is the JFX equivalent of JComponent.getVisibleRect() - and is there a way to get a notification when it changes? jeff
[8u20] Review request: [FXCanvas, JFXPanel] NPE in Browser while pressing back/forward buttons from mouse
Hi Antony, Felipe, Please review: https://javafx-jira.kenai.com/browse/RT-37436 Steve
Re: FXMLLoader ?import? checking code conventions too much?
Seems like we can't/shouldn't fix this. We can at least make sure it is documented. Steve On 2014-06-05, 4:19 PM, Martin Sladecek wrote: Currently, we use case to distinguish between newly created objects (upper-case class name) and properties (lower-case). Otherwise, it would not be clear when there's e.g. a text property and text class if we should set a property called text or create new text object and try to assign it to the default property. The same problem with static setters. Is hello.text.text a fully qualified name of text class in or text static setter of a hello.text class? I guess we could define some order in which we would try out this options in the current context, but SB will have a problem since they use static mode which can be used without having the classes on the cp. -Martin On 5.6.2014 20:57, Stephen F Northover wrote: I see no reason why we should enforce this. Martin, any idea? Steve On 2014-06-05, 12:05 PM, Guillaume Anctil wrote: Hi, on a project I work on, the code convention does not follow the Java standard and class names start with a lower case 'c': cSomeClass.java In the ?import ? parsing of the FXMLLoader, the loadType function looks like this: int i = name.indexOf('.'); int n = name.length(); while (i != -1 i n Character.isLowerCase(name.charAt(i + 1))) { i = name.indexOf('.', i + 1); } if (i == -1 || i == n) { throw new ClassNotFoundException(); } String packageName = name.substring(0, i); String className = name.substring(i + 1); This causes a ClassNotFoundException on our custom controls because of the lowercase check. I was wondering if a simple: int i = name.lastIndexOf('.'); Instead of the lowercase check could be viable. The ClassNotFoundException would still be thrown later on, when trying to actually load the class. Is there a reason that I don't see why the convention _must_ be upheld in this case? Thanks.
Re: FXMLLoader ?import? checking code conventions too much?
Guillaume, if you feel strongly about this, please file a JIRA. Thanks! Steve On 2014-06-05, 4:29 PM, Martin Sladecek wrote: Maybe some special tags can solve the problem, like fx:property name=TEXTabc/fx:property fx:new class=hello.text text=abc/ fx:static class=text property=TEXTabc/fx:static They could be used in cases where the class name violates the restrictions we have for property/object tags. FXML version and SB will have to be update though, which means such fxml will not be compatible with older versions. This is definitely something we should do only on major release (9). -Martin On 5.6.2014 22:21, Stephen F Northover wrote: Seems like we can't/shouldn't fix this. We can at least make sure it is documented. Steve On 2014-06-05, 4:19 PM, Martin Sladecek wrote: Currently, we use case to distinguish between newly created objects (upper-case class name) and properties (lower-case). Otherwise, it would not be clear when there's e.g. a text property and text class if we should set a property called text or create new text object and try to assign it to the default property. The same problem with static setters. Is hello.text.text a fully qualified name of text class in or text static setter of a hello.text class? I guess we could define some order in which we would try out this options in the current context, but SB will have a problem since they use static mode which can be used without having the classes on the cp. -Martin On 5.6.2014 20:57, Stephen F Northover wrote: I see no reason why we should enforce this. Martin, any idea? Steve On 2014-06-05, 12:05 PM, Guillaume Anctil wrote: Hi, on a project I work on, the code convention does not follow the Java standard and class names start with a lower case 'c': cSomeClass.java In the ?import ? parsing of the FXMLLoader, the loadType function looks like this: int i = name.indexOf('.'); int n = name.length(); while (i != -1 i n Character.isLowerCase(name.charAt(i + 1))) { i = name.indexOf('.', i + 1); } if (i == -1 || i == n) { throw new ClassNotFoundException(); } String packageName = name.substring(0, i); String className = name.substring(i + 1); This causes a ClassNotFoundException on our custom controls because of the lowercase check. I was wondering if a simple: int i = name.lastIndexOf('.'); Instead of the lowercase check could be viable. The ClassNotFoundException would still be thrown later on, when trying to actually load the class. Is there a reason that I don't see why the convention _must_ be upheld in this case? Thanks.
Re: [API REVIEW REQUEST] RT-5747: Spinner control
Thanks Jonathan! Although the JIRA is long winded, at least it captures all the thinking in one place. Steve On 2014-06-03, 6:07 PM, Jonathan Giles wrote: Hi all, A Spinner control is in the planning stages for JavaFX 8u40, and so when my 8u20 backlog has got down (or near to) zero recently, I've been prototyping one possible implementation of the Spinner. I'm now at the stage where I would appreciate more eyes on the API, so I have published the JavaDoc as a zip file attachment to the jira issue [1] - see spinner-javadoc.zip. Additionally, a relatively recent implementation is also available - download spinner.zip - but note that the visuals, whilst passable, are not in their final form in any way! I'm aware that RT-5747 has become relatively long winded, but I would like to draw attention to my most recent comment [2], where I'm specifically pointing out areas that need more discussion. As always I have an opinion on these issues, but I'm keen to hear yours. Also, for those of you that look at the API, you may be interested to note the stepping away from using a List for the backing model. I have some more early discussion on this decision at [3], but you probably want to read through the rest of the comments to fully understand! Suffice to say, nothing is set in stone - this is still in the prototype stage (although rather far along). If people could post their thoughts to the Jira issue, rather than as a response to this email, that would be appreciated. [1] https://javafx-jira.kenai.com/browse/RT-5747 [2] https://javafx-jira.kenai.com/browse/RT-5747?focusedCommentId=411207#comment-411207 [3] https://javafx-jira.kenai.com/browse/RT-5747?focusedCommentId=409920#comment-409920 Thanks, -- Jonathan
Re: Resizing stage creates delays in platform.runLater pool?
I suggest you add yourself to the bug. At this time, we are not sure what is causing it. It could be graphics or event queue related as there is evidence that changing either solves the problem. Steve On 2014-06-02, 10:51 AM, Guillaume Anctil wrote: Yes. -Dprism.order=sw does fix the issue. Looking at that bug's sample code and how to reproduce, it looks very similar. Thank you. I'll run it in software mode for now and see how bad it affects performance. I can always apply a hacky workaround of stopping animations when I detect a resize and restarting them once the resize is done. So I guess this is on your radar, and it is being looked into? On Mon, Jun 2, 2014 at 10:43 AM, Anthony Petrov anthony.pet...@oracle.com wrote: You may be hitting this bug: https://javafx-jira.kenai.com/browse/RT-36796 Please try running with -Dprism.order=sw and see if this changes anything. -- best regards, Anthony On 6/2/2014 6:20 PM, Guillaume Anctil wrote: Hi, I have encountered severe lag in my application when resizing the stage while an animation is running. I've made this very simple example code to reproduce the issue: https://github.com/Drakkoon/LWJGL-FX/blob/master/src/ JavaFXResizeTest.java This is only a tread that acquires a semaphore, prints the System.nanotime() delta and releases the semaphore. There's a button on the stage that can clicked on to start a fade animation and stop it. Resizing the stage while it is animating will create huge deltas in the thread. Stopping the animation brings everything back to normal. Restarting the animation once resized and stopped does not create the huge deltas until you resize again. Does anyone know what is at play here, what underlying system creates the lag and how to avoid this? Thanks.
Re: Resizing stage creates delays in platform.runLater pool?
Does running with the software pipeline fix the problem as suggested in https://javafx-jira.kenai.com/browse/RT-36796 ? Steve On 2014-06-02, 11:10 AM, Werner Lehmann wrote: We also experienced laggy animation with a stage slide out/down animation. The animation would change stage size and it appeared to have only 2 or 3 frames. Workaround was to use a different animation style: keep stage size but move it 20 px down while changing opacity from low to full, both animated. Maybe this is an option for you, too. Werner On 02.06.2014 16:20, Guillaume Anctil wrote: Does anyone know what is at play here, what underlying system creates the lag and how to avoid this?
Re: Gradle Scripts
BUILD_NATIVES was never implemented so I deleted mention of it from the wiki. I have also updated the Mac section to include MACOSX_MIN_VERSION. I could have swore this information was there but apparently not. Steve On 2014-05-27, 12:22 PM, Scott Palmer wrote: My build woes continued a bit... I tweaked build.gradle such that the buildnum.min was 5. Then the build failed trying to build :fxpackager:compileLauncher Coud not call NativeCompileTask.compile() on task ':fxpackager:compileLauncher' I belive this is native code? The wiki says that native code doesnt' normally build unless you use -PBUILD_NATIVES=true I imagine this is true for the FX runtime DLLs and was just overlooked for the launcher. The root cause seems to be that I am missing the OS X 10.7 SDK: clang: warning: no such sysroot directory: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk' But I do have later versions for 10.8 and 10.9. Tweaking buildSrc/mac.gradle so MACOSX_MIN_VERSION is 10.8 allowed me to finally complete a successful build! - I think I haven't tested anything yet.. but at least gradle stopped complaining. Cheers, Scott On Tue, May 27, 2014 at 11:56 AM, Scott Palmer swpal...@gmail.com wrote: I know the wiki says only Gradle 1.8 is guaranteed to work so I have to ask: Why not use the Gradle Wrapper to force use of 1.8? http://www.gradle.org/docs/current/userguide/gradle_wrapper.html Well, I tried tweaking the build scripts to use it myself, running on OS X and found that the scripts appear to be badly broken anyway and they can't even be parsed with later Gradle versions so you can't even run the wrapper task: The error is: Could not find method 'defineProperty() for arguments [MACOSX_MIN_VERSION, 10.7] on root project . Sure enough the defineProperty method is being called from a different .gradle file than the one in which it is defined, so it is out of scope. I corrected this locally by changing it to a closure and assigning it to project.ext.defineProperty. Then I added: task wrapper(type: Wrapper) { gradleVersion = 1.8' } and was able to get the gradlew script created by running: gradle wrapper So then I tried to build with Gradle 1.8 by running: ./gradlew Then I hit :verifyJava complaining that the build number (13) was too low ( 115)... but I'm building the 8u5 code with the 8u5 release... that seems like a combination that should work. I think everyone (myself included) would be more inclined to help with patches if it wasn't such a pain to build. I appreciate that prior to the use of Gradle this was likely much worse. Gradle is a great build system and should be able to make this an even simpler process. On Windows for what I assume are historical reasons, Cygwin is expected. I'm only trying to build the Java side of things.. not the native DLLs and I don't see Cygwin doing anything of value in the build scripts for that case. It's mangling paths that don't need to be mangle for example. I think the build scripts could be cleaned up to provide a much smoother build experience for those outside of Oracle. No doubt you guys simply don't have the cycles to burn on fixing build scripts that are currently working for you.. but I suspect it will pay off in the long run. The current version of Gradle, 1.12, is the last 1.x Gradle release before the 2.x versions appear. It may make sense to achieve compatibility with it. Gradle 2.x is expected to break things, but once things are working with 1.12, then you can work on getting rid of the warnings and you will be in a much better position. Cheers, Scott
Planning for M5: June 23, 2014 [RDP2]
Hi all, The next milestone M5, June 23, 2014 [RDP2], is an important one. Essentially, we are shipping FX for 8u20 after this. There is a week before the final FX ZBB date which is July 1, 2014, but we should not be touching any code during this week. After July 1 ZBB, we are stopping all development on FX 8u20 and starting on 8u40. Here is the plan for M5: May 26-30: Fix P123, fix or move P45 to 8u40 June 2-5: Fix P123, zero P45 targeted to 8u20 June 9-13: Fix P123, defer bugs that won't make it June 16-20: Code freeze, ramp down rules, fix doc bugs During the week June 16-20, the usual milestone rules will be in effect and we are likely to be quite ruthless about any code changes. We will likely only accept fixes for P12 critical bugs / regressions. Thanks to everyone for their hard work, Steve and Kevin
Re: Layout regression
Application code only runs on the app thread. Setting the uncaught exception handler should work for you. Steve On 2014-05-23 8:33 AM, ngalarn...@abinitio.com wrote: How can we be notified of exceptions like these programmatically? When my code is on the call stack, I can catch the exception programmatically. In this stack trace, only JavaFX code is there, but I still want to know that something bad happened. For the case of the JavaFX Application Thread, I guess I could do a Platform.runLater in that code call Thread.currentThread().setUncaughtExceptionHandler(myHandler) // ugh! Do I need to save away the previous one chain to it? Is that the best way for this thread? What about JavaFX's other threads? Does application code ever run on those threads? How can I know that something went wrong on those threads? Even if my code never runs there, I still want an automated way to know if something went wrong. Thanks, Neil From: Scott Palmer swpal...@gmail.com To: openjfx-dev@openjdk.java.net openjfx-dev@openjdk.java.net, Date: 05/22/2014 03:56 PM Subject:Re: Layout regression Sent by:openjfx-dev openjfx-dev-boun...@openjdk.java.net This appears to be a bug introduced in JavaFX 8 I have filed https://javafx-jira.kenai.com/browse/RT-37252 and will work on a test case. Scott On Thu, May 22, 2014 at 3:45 PM, Scott Palmer swpal...@gmail.com wrote: I'm investigating an issue with my application where things are working fine running with JavaFX 2.2 on 7u55, but I have a particular case where 8u5 is throwing the following exception during layout: Exception in thread JavaFX Application Thread java.lang.NullPointerException at javafx.scene.layout.GridPane.computeMinHeights(GridPane.java:1450) at javafx.scene.layout.GridPane.computeMinHeight(GridPane.java:1224) at javafx.scene.Parent.minHeight(Parent.java:946) at javafx.scene.layout.Region.minHeight(Region.java:1404) at javafx.scene.layout.Region.computeChildMinAreaHeight(Region.java:1700) at javafx.scene.layout.Region.getMaxAreaHeight(Region.java:1981) at javafx.scene.layout.Region.computeMaxMinAreaHeight(Region.java:1854) at javafx.scene.layout.StackPane.computeMinHeight(StackPane.java:293) at javafx.scene.Parent.minHeight(Parent.java:946) at javafx.scene.layout.Region.minHeight(Region.java:1404) at javafx.scene.layout.Region.computeChildPrefAreaHeight(Region.java:1765) at javafx.scene.layout.Region.getMaxAreaHeight(Region.java:1982) at javafx.scene.layout.Region.computeMaxPrefAreaHeight(Region.java:1884) at javafx.scene.layout.StackPane.computePrefHeight(StackPane.java:310) at javafx.scene.Parent.prefHeight(Parent.java:918) at javafx.scene.layout.Region.prefHeight(Region.java:1438) at com.sun.javafx.scene.control.skin.TitledPaneSkin.computePrefHeight(TitledPaneSkin.java:249) at javafx.scene.control.Control.computePrefHeight(Control.java:543) at javafx.scene.Parent.prefHeight(Parent.java:918) at javafx.scene.layout.Region.prefHeight(Region.java:1438) at javafx.scene.layout.Region.computeChildPrefAreaHeight(Region.java:1765) at javafx.scene.layout.GridPane.computePrefHeights(GridPane.java:1407) at javafx.scene.layout.GridPane.computePrefHeight(GridPane.java:1242) at javafx.scene.Parent.prefHeight(Parent.java:918) at javafx.scene.layout.Region.prefHeight(Region.java:1438) at com.sun.javafx.scene.control.skin.ScrollPaneSkin.computeScrollNodeSize(ScrollPaneSkin.java:916) at com.sun.javafx.scene.control.skin.ScrollPaneSkin.layoutChildren(ScrollPaneSkin.java:791) at javafx.scene.control.Control.layoutChildren(Control.java:574) at javafx.scene.Parent.layout(Parent.java:1076) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Scene.doLayoutPass(Scene.java:576) at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2386) at com.sun.javafx.tk.Toolkit$3.run(Toolkit.java:321) at com.sun.javafx.tk.Toolkit$3.run(Toolkit.java:319) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:319) at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:348) at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:479) at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:460) at com.sun.javafx.tk.quantum.QuantumToolkit$13.run(QuantumToolkit.java:327) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at
Re: [8u] Review request: (RT-37168) Mention if a property is configurable via CSS in the javadocs.
Hi David, I didn't see a problem with this. Is there a downside to adding arbitrary tags to JavaDoc? Steve On 2014-05-22 3:23 PM, David Grieve wrote: Steve, Kevin, I'm looking for your ok on a change to rt/build.gradle that will allow me to add @css tags in javadoc. The diff is in the bug. This isn't the fix for the bug, but if you don't want to allow the tag option, then I need to approach this bug in a different way. https://javafx-jira.kenai.com/browse/RT-37168
Re: Layout regression
Thanks Scott. It maybe that if you can't isolate a case, you can build FX from source (easy on Mac or Linux) and add some prints and debugging code. See you in the JIRA! Steve On 2014-05-22 3:55 PM, Scott Palmer wrote: This appears to be a bug introduced in JavaFX 8 I have filed https://javafx-jira.kenai.com/browse/RT-37252 and will work on a test case. Scott On Thu, May 22, 2014 at 3:45 PM, Scott Palmer swpal...@gmail.com wrote: I'm investigating an issue with my application where things are working fine running with JavaFX 2.2 on 7u55, but I have a particular case where 8u5 is throwing the following exception during layout: Exception in thread JavaFX Application Thread java.lang.NullPointerException at javafx.scene.layout.GridPane.computeMinHeights(GridPane.java:1450) at javafx.scene.layout.GridPane.computeMinHeight(GridPane.java:1224) at javafx.scene.Parent.minHeight(Parent.java:946) at javafx.scene.layout.Region.minHeight(Region.java:1404) at javafx.scene.layout.Region.computeChildMinAreaHeight(Region.java:1700) at javafx.scene.layout.Region.getMaxAreaHeight(Region.java:1981) at javafx.scene.layout.Region.computeMaxMinAreaHeight(Region.java:1854) at javafx.scene.layout.StackPane.computeMinHeight(StackPane.java:293) at javafx.scene.Parent.minHeight(Parent.java:946) at javafx.scene.layout.Region.minHeight(Region.java:1404) at javafx.scene.layout.Region.computeChildPrefAreaHeight(Region.java:1765) at javafx.scene.layout.Region.getMaxAreaHeight(Region.java:1982) at javafx.scene.layout.Region.computeMaxPrefAreaHeight(Region.java:1884) at javafx.scene.layout.StackPane.computePrefHeight(StackPane.java:310) at javafx.scene.Parent.prefHeight(Parent.java:918) at javafx.scene.layout.Region.prefHeight(Region.java:1438) at com.sun.javafx.scene.control.skin.TitledPaneSkin.computePrefHeight(TitledPaneSkin.java:249) at javafx.scene.control.Control.computePrefHeight(Control.java:543) at javafx.scene.Parent.prefHeight(Parent.java:918) at javafx.scene.layout.Region.prefHeight(Region.java:1438) at javafx.scene.layout.Region.computeChildPrefAreaHeight(Region.java:1765) at javafx.scene.layout.GridPane.computePrefHeights(GridPane.java:1407) at javafx.scene.layout.GridPane.computePrefHeight(GridPane.java:1242) at javafx.scene.Parent.prefHeight(Parent.java:918) at javafx.scene.layout.Region.prefHeight(Region.java:1438) at com.sun.javafx.scene.control.skin.ScrollPaneSkin.computeScrollNodeSize(ScrollPaneSkin.java:916) at com.sun.javafx.scene.control.skin.ScrollPaneSkin.layoutChildren(ScrollPaneSkin.java:791) at javafx.scene.control.Control.layoutChildren(Control.java:574) at javafx.scene.Parent.layout(Parent.java:1076) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Scene.doLayoutPass(Scene.java:576) at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2386) at com.sun.javafx.tk.Toolkit$3.run(Toolkit.java:321) at com.sun.javafx.tk.Toolkit$3.run(Toolkit.java:319) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:319) at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:348) at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:479) at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:460) at com.sun.javafx.tk.quantum.QuantumToolkit$13.run(QuantumToolkit.java:327) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39) at com.sun.glass.ui.win.WinApplication$4$1.run(WinApplication.java:112) at java.lang.Thread.run(Thread.java:745) As you can see, it's all JavaFX code on the stack, so this is a little tricky to debug. As such I'm not sure yet if this is a JavaFX bug introduced with 8.0 or an application bug that was masked in JavaFX 2.2 and is now showing up in JavaFX 8. This happens when the managed/visible state of children changes.. but I think it only for the case when all the children become unmanaged. Once it happens JavaFX is crippled and pretty much all layout is broken. Popups (menus) still work and I can exit the application, but all layout in the main window seems to not happen anymore. Manual positioning of nodes still works though. I'll try to isolate a reproducible test case and file a bug report of course. Scott
Re: Should TreeItem have a Text property?
This sounds reasonable to me. Please enter a JIRA for it. Steve On 2014-05-21 2:52 PM, Jeff Martin wrote: I'm working with TreeView today and it seems like it would be convenient if TreeItem had a Text property in addition to it's Graphic property. This would seem to solve the most common need for a custom TreeCell factory. Since most trees basically show a tree of labels, it would seem to make as much sense as the Graphic property. It might have been sufficient if the default rendering used TreeItem.toString() instead of TreeItem.getValue().toString(), although this would miss the free updating you could get by resetting a TreeItem.Text property dynamically. jeff
Re: Embedding JavaFX in SWT on Linux (Gtk3)
Hi Tom, https://javafx-jira.kenai.com/browse/RT-35264 There is no plan to move to gtk3 at this point. If we move to gtk3, FX will no longer be compatible with AWT/Swing which uses GTK2. The monocle port uses only X11 and this could be investigated, however, things like Drag and Drop are unlikely to work. I'll add all this information including Webkit use of GTK to RT-35264. Steve On 2014-05-14 8:54 AM, Tom Schindl wrote: Hi, Starting with Eclipse Luna (released in end of June) the default mode of SWT on Linux is to make use of Gtk3. As far as I understand the situation Glass on Linux is linked against Gtk2 so JavaFX components that need glass (=fairly everything beside javafx-properties) will fail to load - in fact i got reports that the JVM crashes. IIRC i read that monocole has a port that directly uses X11 would it be a work-around to run with this port when running in swt-embedding? Am I right that the webkit binaries are also linked against gtk2 or do I remember this wrong? Tom
CFV: New OpenJFX Committer: Eric Le Ponner
I hereby nominate Eric Le Ponner to be an OpenJFX Committer. Eric Le Ponner is a significant contributor of the JavaFX Scene Builder 2.0 product, and is the architect of the SB Kit API as well as the designated owner of the Content Panel. Eric has been working on SB for more than 3 years, and during last year has been responsible for approximately 1620 commits to the internal SB 2.0 repository that we are converting to Open Source. Eric is part of the team that has collectively done the Scene Builder 2.0 product, which is a complete re-implementation of the code base, over a period of roughly 12 months. The new code base is more than 70,000 lines of code, spread over approximately 4000 commits. Scene Builder 2.0 is in the process of being converted to the OpenJFX repository, and will be maintained out of that repository after the conversion. Votes are due by May 29, 2014. Only current OpenJFX Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. For Lazy Consensus voting instructions, see [2]. Nomination to a project Committer is described in [3]. [1] http://openjdk.java.net/census#openjfx [2] http://openjdk.java.net/bylaws#lazy-consensus [3] http://openjdk.java.net/projects#project-committer
CFV: New OpenJFX Committer: Jerome Cambon
I hereby nominate Jerome Cambon to be an OpenJFX Committer. Jerome Cambon is a significant contributor of the JavaFX Scene Builder 2.0 product, and is the designated owner of the Inspector Panel as well as the CSS Panel. Jerome has been working on SB for more than 3 years, and during last year has been responsible for approximately 500 commits to the SB 2.0 repository that we are converting to Open Source. Jerome is part of the team that has collectively done the Scene Builder 2.0 product, which is a complete re-implementation of the code base, over a period of roughly 12 months. The new code base is more than 70,000 lines of code, spread over approximately 4000 commits. Scene Builder 2.0 is in the process of being converted to the OpenJFX repository, and will be maintained out of that repository after the conversion. Votes are due by May 29, 2014. Only current OpenJFX Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. For Lazy Consensus voting instructions, see [2]. Nomination to a project Committer is described in [3]. [1] http://openjdk.java.net/census#openjfx [2] http://openjdk.java.net/bylaws#lazy-consensus [3] http://openjdk.java.net/projects#project-committer
CFV: New OpenJFX Committer: Mo Chicharro
I hereby nominate Mo Chicharro to be an OpenJFX Committer. Mo Chicharro is a significant contributor of the JavaFX Scene Builder 2.0 product, and, as the visual and interaction designer, he is the designated owner of all FXML and CSS content. Mo has been working on SB since its inception 4 years ago, and during last year has been responsible for approximately 160 commits to the SB 2.0 repository that we are converting to Open Source. Mo is part of the team that has collectively done the Scene Builder 2.0 product, which is a complete re-implementation of the code base, over a period of roughly 12 months. The new code base is more than 70,000 lines of code, spread over approximately 4000 commits. Scene Builder 2.0 is in the process of being converted to the OpenJFX repository, and will be maintained out of that repository after the conversion. Votes are due by May 29, 2014. Only current OpenJFX Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. For Lazy Consensus voting instructions, see [2]. Nomination to a project Committer is described in [3]. [1] http://openjdk.java.net/census#openjfx [2] http://openjdk.java.net/bylaws#lazy-consensus [3] http://openjdk.java.net/projects#project-committer
CFV: New OpenJFX Committer: Sandra Lions-Piron
I hereby nominate Sandra Lions-Piron to be an OpenJFX Committer. Sandra Lions-Piron is a significant contributor of the JavaFX Scene Builder 2.0 product, and is the designated owner of the Hierarchy Panel as well as all menu commands. Sandra has been working on SB since its inception 4 years ago, and during last year has been responsible for approximately 750 commits to the SB 2.0 repository that we are converting to Open Source. Sandra is part of the team that has collectively done the Scene Builder 2.0 product, which is a complete re-implementation of the code base, over a period of roughly 12 months. The new code base is more than 70,000 lines of code, spread over approximately 4000 commits. Scene Builder 2.0 is in the process of being converted to the OpenJFX repository, and will be maintained out of that repository after the conversion. Votes are due by May 29, 2014. Only current OpenJFX Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. For Lazy Consensus voting instructions, see [2]. Nomination to a project Committer is described in [3]. [1] http://openjdk.java.net/census#openjfx [2] http://openjdk.java.net/bylaws#lazy-consensus [3] http://openjdk.java.net/projects#project-committer
CFV: New OpenJFX Committer: Yves Joan
I hereby nominate Yves Joan to be an OpenJFX Committer. Yves Joan is a significant contributor of the JavaFX Scene Builder 2.0 product, and is the designated owner of the Library Panel, Document Panel and product packaging. Yves has been working on SB since its inception 4 years ago, and during last year has been responsible for approximately 960 commits to the SB 2.0 repository that we are converting to Open Source. Yves is part of the team that has collectively done the Scene Builder 2.0 product, which is a complete re-implementation of the code base, over a period of roughly 12 months. The new code base is more than 70,000 lines of code, spread over approximately 4000 commits. Scene Builder 2.0 is in the process of being converted to the OpenJFX repository, and will be maintained out of that repository after the conversion. Votes are due by May 29, 2014. Only current OpenJFX Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. For Lazy Consensus voting instructions, see [2]. Nomination to a project Committer is described in [3]. [1] http://openjdk.java.net/census#openjfx [2] http://openjdk.java.net/bylaws#lazy-consensus [3] http://openjdk.java.net/projects#project-committer
Re: gradle
This is great news. I would go with what you have (the unjaring) for now of course. Are there any changes you are waiting on in OpenJFX? Steve On 2014-05-08 12:31 PM, Johan Vos wrote: Hi, We're getting closer to building the JavaFX Android runtime in OpenJFX. I'm trying to automate all steps in the gradle build files, but my knowledge is still very limited. My current bottleneck: I would like to apply retrolambda to all class files once they are compiled (per module). In my JavaFX Android application, this is easily done by following the instructions for the retrolambda-gradle plugin at https://github.com/evant/gradle-retrolambda. I just add apply plugin: 'retrolambda' and automatically all my class files are converted from Java 8 to Java 7, with lambda's being replaced. For some reason, this doesn't work out of the box on the OpenJFX build -- maybe because it's a multiproject, or maybe because the jfxrt.jar is not created with the jar command? I currently do the following: unjar the jfxrt.jar after everything is built, apply retrolambda on the class files, and repackage everything. Clearly, this is a much dirtier than applying the retrolambda step after compilation of the class files in each module. Is there someone with sufficient gradle knowledge who can help here? I've watched a number of gradle tutorials, and while I'm more pleased with gradle than with maven, the only thing that disturbs me is that gradle-professionals claim that gradle is extremely easy. Build tools are NEVER easy for developers :) Some are just a bit easier than others. Thanks, - Johan
Re: (In)Sanity testing
Please request in the JIRA or ping on Skype. Steve On 2014-05-06 9:46 AM, Kevin Rushforth wrote: Unit test changes do not need an extra +1. From the Wiki: Changes that do not affect the bits that we ship do not require approval. ... -- Kevin David Grieve wrote: Unit test only changes, too? On 5/5/14, 11:07 AM, Stephen F Northover wrote: Hi all, Note also that this is M4 Milestone week which means no post-commit reviews and extra +1 controls required to release code. The main point is that one of Kevin, Daniel, Jasper, Lisa or David H must be aware what code is going in and why. Steve On 2014-05-02 8:45 PM, Lisa Selle wrote: Reminder to check out the matrix at https://wiki.openjdk.java.net/display/OpenJFX/8u20 for your insanity testing assignment for this week (assignments have changed for this week). Testing should take 1 hour or less. If your assignment takes longer, stop after an hour and continue where you left off the following week. Also, please review the weekly code freeze and push rules Happy testing! Lisa
Re: (In)Sanity testing
Hi all, Note also that this is M4 Milestone week which means no post-commit reviews and extra +1 controls required to release code. The main point is that one of Kevin, Daniel, Jasper, Lisa or David H must be aware what code is going in and why. Steve On 2014-05-02 8:45 PM, Lisa Selle wrote: Reminder to check out the matrix at https://wiki.openjdk.java.net/display/OpenJFX/8u20 for your insanity testing assignment for this week (assignments have changed for this week). Testing should take 1 hour or less. If your assignment takes longer, stop after an hour and continue where you left off the following week. Also, please review the weekly code freeze and push rules Happy testing! Lisa
Testing, Testing, 123 - Accessibility for JavaFX
Hi all, We have made good progress recently on Accessibility for JavaFX and have working implementation for Windows 8 (UIA) and OS X 10.9. All of the built-in controls have been enabled. You can find information about the work and how to enable the support here: https://wiki.openjdk.java.net/display/OpenJFX/Accessibility+Exploration (this link is background information on the work) https://wiki.openjdk.java.net/display/OpenJFX/Getting+Started+A11y (this link is for developers but describes some flags) We have tested informally under VoiceOver and Narrator but nothing else (ie. for example, we have no run proprietary AT's such as JAWS). We're looking for folks to help test the code and enter bug reports. The work is not targeted for 8u20 and will be removed before we ship because it is not ready for that release. However, it is ready to be tested right now and will be spending the next couple of weeks seeing where we are. https://wiki.openjdk.java.net/display/OpenJFX/Submitting+a+Bug+Report Remember to set -Djavafx.accessible=true when testing. Currently only Windows 8 and Mac OSX 10.9 are allowed to enable accessibility. We hope to support Windows 7 and Mac OSX 10.8 as well, however these are disabled. Using -Djavafx.accessible.force=true will force accessibility on these systems. You can help! Especially valuable is input from folks who use screen readers as part of their normal day. Try one of the standard examples such as Modena or Ensemble and see how far you get. There are problems for sure, but many things work. Thanks, Steve
Re: Setup IDE for development instructions
On 2014-04-24 4:29 PM, Tom Schindl wrote: Hi, I try to follow the guide at https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE to setup my Eclipse workspace but the description how to preconfigure the JDK is a ambiguous. The ambiguous information is the cd PATH TO JFX which could me (I take my OS-X install as the reference) This is the path where you checked out OpenJFX. It is important that you get jfxrt.jar out of the ext directory. I believe it is no longer necessary to move it to a standard place. This is a hold over from when parts of JFX were not open source and you could not build everything. In that case, you needed a binary stub. Of course, it doesn't hurt for everyone to move jfxrt.jar to a well known standard place in case you need it again. * cd /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk_nofx/Contents/Home/jre/lib/ext * cd /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk_nofx/Contents/Home/ BTW for Eclipse there's no an easier way to get Java8 support you can grab a prebuilt distro from http://www.eclipse.org/downloads/index-java8.php Fixed. Tom
Re: Setup IDE for development instructions
Did you build once outside the IDE? Type gradle in the rt directory. Steve On 2014-04-24 5:28 PM, Tom Schindl wrote: More stuff that does not work. If you import the projects you have build-path errors because source folders are missing in: * base: - src/main/resources - src/test/resources * builders - src/main/resources - src/test/resources * designTime - src/main/resources * fxml - src/main/resources * media - src/test/java - src/test/resources * swing - src/main/resources - src/test/java - src/test/resources * swt - src/main/resources - src/test/java - src/test/resources * web - src/main/native/WebKitBuild/Release/WebCore/generated/java Libraries are not found in buildSrc: It looks like you are using relative-paths but at least my eclipse does not like that but e.g. wants to detect them as rt/build/libs/ant-1.8.2.jar and not ../build/libs/ant-1.8.2.jar * graphics to compile without errors needs swt-debug.jar in the library path. * swt to compile without errors needs swt-debug.jar in the library path * scenebuilder needs to reference all projects but not rt-project Tom On 24.04.14 22:29, Tom Schindl wrote: Hi, I try to follow the guide at https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE to setup my Eclipse workspace but the description how to preconfigure the JDK is a ambiguous. The ambiguous information is the cd PATH TO JFX which could me (I take my OS-X install as the reference) * cd /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk_nofx/Contents/Home/jre/lib/ext * cd /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk_nofx/Contents/Home/ BTW for Eclipse there's no an easier way to get Java8 support you can grab a prebuilt distro from http://www.eclipse.org/downloads/index-java8.php Tom
Re: Setup IDE for development instructions
H . I can't look at this now but will look at it tomorrow. I am running: Eclipse SDK Version: 4.3.2 Build id: M20140221-1700 I will get the latest and greatest from the Eclipse download page and follow the steps. Eclipse has this funky optional classpath syntax. Is this burning us? classpathentry kind=src exported=true path=src/test/java attributes attribute name=optional value=true/ /attributes /classpathentry Anyhow, tomorrow! Steve On 2014-04-24 5:51 PM, Kevin Rushforth wrote: The default task in build.gradle is sdk so gradle and gradle sdk are equivalent. -- Kevin Tom Schindl wrote: Hi, I once built with gradle sdk maybe that was wrong? Tom On 24.04.14 23:37, Stephen F Northover wrote: Did you build once outside the IDE? Type gradle in the rt directory. Steve On 2014-04-24 5:28 PM, Tom Schindl wrote: More stuff that does not work. If you import the projects you have build-path errors because source folders are missing in: * base: - src/main/resources - src/test/resources * builders - src/main/resources - src/test/resources * designTime - src/main/resources * fxml - src/main/resources * media - src/test/java - src/test/resources * swing - src/main/resources - src/test/java - src/test/resources * swt - src/main/resources - src/test/java - src/test/resources * web - src/main/native/WebKitBuild/Release/WebCore/generated/java Libraries are not found in buildSrc: It looks like you are using relative-paths but at least my eclipse does not like that but e.g. wants to detect them as rt/build/libs/ant-1.8.2.jar and not ../build/libs/ant-1.8.2.jar * graphics to compile without errors needs swt-debug.jar in the library path. * swt to compile without errors needs swt-debug.jar in the library path * scenebuilder needs to reference all projects but not rt-project Tom On 24.04.14 22:29, Tom Schindl wrote: Hi, I try to follow the guide at https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE to setup my Eclipse workspace but the description how to preconfigure the JDK is a ambiguous. The ambiguous information is the cd PATH TO JFX which could me (I take my OS-X install as the reference) * cd /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk_nofx/Contents/Home/jre/lib/ext * cd /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk_nofx/Contents/Home/ BTW for Eclipse there's no an easier way to get Java8 support you can grab a prebuilt distro from http://www.eclipse.org/downloads/index-java8.php Tom
Re: Should Canvas have been Image subclass instead of Node?
I think a graphics context on a writable image would make more sense. In any case, Canvas is a Node and will remain one forever. Steve On 2014-04-22 6:15 PM, Jeff Martin wrote: I have a case where I need to draw to a canvas and reuse it in multiple nodes. My non-optimal work-around is to take a snapshot and use that, but it makes me wonder if Canvas should have been an Image subclass or if WritableImage should get it's own getGraphicsContext() method. jeff
[8u20] Review request: RT-35197: Use Lambda in FX runtime and samples
Hi Jim, Please review the lambdification of the buildSrc component (JSL portion). Strangely, there is only one file that is affected. Jira: https://javafx-jira.kenai.com/browse/RT-35197 Webrev: See patch in the JIRA Steve
[8u20] [SWT, Mac, Retina] FXCanvas draws badly when Scene is changed
Hi Anton, Please review the fix for FXCanvas drawing badly (shrinking) when a new scene is set on retina. Jira: https://javafx-jira.kenai.com/browse/RT-35250 Webrev: See patch in the JIRA Steve
Re: [RT-33954] static block...causes IllegalStateException - re-open?
The two ways of launching are equivalent however, at one point, we did not run main() even when main() was available and this caused problems on the desktop. Lots of code was written that expected main() to run and this code was broken. We will be supporting both ways of launching an FX application for the foreseeable future, however, the IDE's still need to understand that FX applications that only contain start() are launchable. Steve On 2014-04-08 8:34 AM, ngalarn...@abinitio.com wrote: Hi Richard, You raised this IntelliJ issue here: http://youtrack.jetbrains.com/issue/IDEA-101939 It is marked as a feature request. Are you guys saying that the 2 ways of launching are not equivalent? What is the difference? Maybe that issue should be upgraded to a BUG if the old launching method is now wrong, not merely old fashioned. Neil From: Richard Bair richard.b...@oracle.com To: Kevin Rushforth kevin.rushfo...@oracle.com Cc: openjfx-dev@openjdk.java.net, Sandipan Razzaque m...@sandipan.net Date: 04/07/2014 09:43 PM Subject:Re: [RT-33954] static block...causes IllegalStateException - re-open? Sent by:openjfx-dev openjfx-dev-boun...@openjdk.java.net Yes, this is one of the few things that I just hate about IDEA. On Apr 7, 2014, at 6:00 PM, Kevin Rushforth kevin.rushfo...@oracle.com wrote: I can't speak to other IntelliJ issues, but the root cause of this particular one is the same thing that Debbie ran into last week -- IntelliJ doesn't launch programs using the standard Java launcher. For whatever reason, it uses its own launcher. This might be worth raising with JetBrains. -- Kevin Jonathan Giles wrote: Kevin, Yes, that is the program I used, and yes, I get the 'Toolkit not initialized' exception. I am running IntelliJ, so that is the reason. I switched over to Eclipse and the code run as expected. I am slightly bothered by the occasional failures that seem to be IntelliJ-specific. I have a gut feeling that it doesn't always run all tests (or that it runs them slightly differently to get different results than when run on the command line). Does anyone know why this is? I'm actually most at home in Eclipse, so perhaps I should switch to that as my primary IDE for OpenJFX development. -- Jonathan On 8/04/2014 11:29 a.m., Kevin Rushforth wrote: Just to make sure we are running the same program, the one I ran to verify that RT-33954 is fixed was the simple test program in the comments of that bug. Here it is (with the imports omitted for brevity). public class Example extends Application { public static void main(String[] args) { //this is called from a static block in javafx.scene.control.Control PlatformImpl.setDefaultPlatformUserAgentStylesheet(); Application.launch(args); } @Override public void start(final Stage primaryStage) throws Exception { } } The above program runs fine for me with no exception. Jonathan: are you seeing something different? Or perhaps running a different example? NOTE: if you run this from IntelliJ it will not work. I verified that with Debbie last week (on a different issue), which may be why you are seeing a problem. Running it from command line, from NB, or from Eclipse works. -- Kevin Jonathan Giles wrote: Firstly, I agree - this does seem to still be reproducible despite Kevin's comment that it should have been resolved in JavaFX 8.0 due to RT-28754 https://javafx-jira.kenai.com/browse/RT-28754, so that is troubling. I'll leave Kevin to comment on that. Secondly, RT-33954 was closed as a duplicate of RT-28754 https://javafx-jira.kenai.com/browse/RT-28754, so it would be better to leave RT-33954 closed and move discussion (including what you recently posted) into RT-28754 https://javafx-jira.kenai.com/browse/RT-28754. The discussion can start in there and most probably a new bug will need to be opened (as RT-28754 https://javafx-jira.kenai.com/browse/RT-28754 did result in a code change that at one point appears to have fixed the problem, so we're possibly dealing with a regression). Thirdly, whether this is a suitable bug for someone learning the ropes is debatable. I'll leave Kevin to offer his thoughts, but perhaps you can propose a patch that resolves this issue for you in your test scenarios. Also, a good starting point is to develop a simple test application that helps to demonstrate this issue (preferably the test case is a single class with no dependencies), and which you can then share in the jira issue via copy/paste into a comment. Fourthly, to be a contributor in the OpenJDK requires you to follow a process to get the paperwork in order. It is wise to get that started as soon as possible, as it can sometimes take a while. Here's a link to the process: http://openjdk.java.net/contribute/ The main thing is the OCA. Finally, welcome! :-) -- Jonathan On 6/04/2014 1:06 p.m., Sandipan Razzaque wrote: Hi JavaFX devs! I was wondering how people
Re: JavaFX 2 + with LWJGL ( OpenGL )
This solution is cool, but it draws to an image, sucks out the bits and then converts that to an FX image. This is a good approach because it uses API and does not rely on any internals of FX. Hopefully it is fast enough for you. Steve On 2014-04-06 12:41 PM, Exo Verse wrote: Yea the OpenGL comes with your graphics drivers for your video card. So your correct that it doesn't ship with JavaFX. What I have been going on about is trying to find a way to use JavaFX with LWJGL. In case you are unaware, LWJGL just means Light Weight Java OpenGL and its a wrapper for the OpenGL API. It's an alternative to JOGL. On another note, as I did a search, Thanks to Tom showing me that link I examined that code and I found something of interest in the JOGL code interface.. well it lead me to a google search, and viola.. LWJGL with JavaFX. :) LINK : https://github.com/Spasi/LWJGL-FX So just wanted to post the link here and say thanks for all of your help. :) Cheers, Torak On Sun, Apr 6, 2014 at 12:35 PM, Tom Schindl tom.schi...@bestsolution.atwrote: JavaFX does not ship OpenGL binaries on windows you have to build it your own. Please note: a) if there are people who manage to write a prism pipeline on jogl why should you not be able to do the same with lwjgl? b) the talk i mentionned from felipe and steve show how to get access to the native OpenGL context and there from you can use any API you like can't remember which one they used Tom Von meinem iPhone gesendet Am 06.04.2014 um 18:18 schrieb Exo Verse tora...@gmail.com: Thanks, but as I mentioned in my original post, I don't like JOGL. It doesn't work with my setup. I use LWJGL because its only about the OpenGL and not other libraries, and its an easy API wrapper to use. There are many many reason I hate JOGL.. but this thread is not about hating on JOGL, its about finding a way to use LWJGL with JavaFX2+. Also, Win32 API calls can use both DirectX and OpenGL APIs. And it doesn't matter what Windows OS you're using. I have tested this out from Windows XP all the way to Windows 7 - 32/64 Bit with no problem. Cheers Torak On Sun, Apr 6, 2014 at 11:52 AM, Tom Schindl tom.schi...@bestsolution.atwrote: There is a talk from Felipe and Steve at J1 last year how to embed OpenGL into FX using *internal* API! Search for it on parleys - this does not help you on Win32 which uses directx instead of javafx. BTW there are people doing a JOGL pipeline https://bitbucket.org/dejayberlin/joglfxpipeline/src! Tom Von meinem iPhone gesendet Am 06.04.2014 um 17:25 schrieb Exo Verse tora...@gmail.com: Yea its a shame that using JavaFX as an option along with OpenGL wasn't even thought of to begin with. I don't understand why they limit you like they do. Them trying to recreate the wheel and make their own version of a 3D interface is just plain stupid if it can't run low level. I can see 2D games and applications with a LOT of usage for JavaFX and its 2D graphics API. But True 3D needs low level other wise its a waste of time. Well, thanks for the replies. Guess I'll have to stick with using other sources for my GUI. It's just that I like JavaFX version of its GUI because it is so simple to use. But not worth it if you can't use it for the reason that we the people need it for. Like in my case, game dev. Cheers. Torak On Sun, Apr 6, 2014 at 10:48 AM, Philipp Dörfler phdoerf...@gmail.com wrote: It is not possible to combine JavaFX and OpenGL as it is right now. This was discussed on this mailing list some time before as a _possible_ future addition, but I'd be very surprised if Oracle actually chose to implement this. Starting with JavaFX 8 there is indeed some kind of 3D support but the 3D API allows only for the most basic operations. It is still completely scene graph based and you have to live with all restrictions that JavaFX imposes on you. Not wanting to say that the 3D API is completely useless, but I'm afraid that even WPF is more flexible when it comes to 3D than JavaFX is. For example: As far as I know you can not even change the shading model from GL_SMOOTH to GL_FLAT. You could work around that by setting the normals yourself though (Same for WPF). Also render quality is bad when you render an instance of Text in 3D and scale it down for example. At least it was when I tried that last time (few months ago). Again, not to say that one can't work with JavaFX's 3D API, but it's not raw OpenGL either. As far as I know the JavaFX team wants to be able to let the user use his own OpenGL context and let JavaFX render on top of that or add the possibility to ask JavaFX for the underlying context and mess with that but this is not even officially planned or included on any roadmap (AFAIK) so we can only keep our fingers crossed for that to happen. Like you I would absolutely LOVE to use JavaFX as a GUI on top of my OpenGL games. Cheers Philipp Dörfler Am 06.04.2014 um 16:31 schrieb Exo Verse
Re: JavaFX 2 + with LWJGL ( OpenGL )
The lwjglfx solution. Steve On 2014-04-07 12:45 PM, Exo Verse wrote: @ Steve Which approach are you referring too ? The lwjglfx solution or this transparency background solution ? The lwjglfx I am assuming here since its drawing out to an image and back in again. But if your speaking about my transparency issue I solved, I didn't realize it was sending out to an image and back again. Could you please elaborate as to which solution your speaking about ? Torak On Mon, Apr 7, 2014 at 12:33 PM, Stephen F Northover steve.x.northo...@oracle.com wrote: This solution is cool, but it draws to an image, sucks out the bits and then converts that to an FX image. This is a good approach because it uses API and does not rely on any internals of FX. Hopefully it is fast enough for you. Steve On 2014-04-06 12:41 PM, Exo Verse wrote: Yea the OpenGL comes with your graphics drivers for your video card. So your correct that it doesn't ship with JavaFX. What I have been going on about is trying to find a way to use JavaFX with LWJGL. In case you are unaware, LWJGL just means Light Weight Java OpenGL and its a wrapper for the OpenGL API. It's an alternative to JOGL. On another note, as I did a search, Thanks to Tom showing me that link I examined that code and I found something of interest in the JOGL code interface.. well it lead me to a google search, and viola.. LWJGL with JavaFX. :) LINK : https://github.com/Spasi/LWJGL-FX So just wanted to post the link here and say thanks for all of your help. :) Cheers, Torak On Sun, Apr 6, 2014 at 12:35 PM, Tom Schindl tom.schi...@bestsolution.at wrote: JavaFX does not ship OpenGL binaries on windows you have to build it your own. Please note: a) if there are people who manage to write a prism pipeline on jogl why should you not be able to do the same with lwjgl? b) the talk i mentionned from felipe and steve show how to get access to the native OpenGL context and there from you can use any API you like can't remember which one they used Tom Von meinem iPhone gesendet Am 06.04.2014 um 18:18 schrieb Exo Verse tora...@gmail.com: Thanks, but as I mentioned in my original post, I don't like JOGL. It doesn't work with my setup. I use LWJGL because its only about the OpenGL and not other libraries, and its an easy API wrapper to use. There are many many reason I hate JOGL.. but this thread is not about hating on JOGL, its about finding a way to use LWJGL with JavaFX2+. Also, Win32 API calls can use both DirectX and OpenGL APIs. And it doesn't matter what Windows OS you're using. I have tested this out from Windows XP all the way to Windows 7 - 32/64 Bit with no problem. Cheers Torak On Sun, Apr 6, 2014 at 11:52 AM, Tom Schindl tom.schi...@bestsolution.atwrote: There is a talk from Felipe and Steve at J1 last year how to embed OpenGL into FX using *internal* API! Search for it on parleys - this does not help you on Win32 which uses directx instead of javafx. BTW there are people doing a JOGL pipeline https://bitbucket.org/dejayberlin/joglfxpipeline/src! Tom Von meinem iPhone gesendet Am 06.04.2014 um 17:25 schrieb Exo Verse tora...@gmail.com: Yea its a shame that using JavaFX as an option along with OpenGL wasn't even thought of to begin with. I don't understand why they limit you like they do. Them trying to recreate the wheel and make their own version of a 3D interface is just plain stupid if it can't run low level. I can see 2D games and applications with a LOT of usage for JavaFX and its 2D graphics API. But True 3D needs low level other wise its a waste of time. Well, thanks for the replies. Guess I'll have to stick with using other sources for my GUI. It's just that I like JavaFX version of its GUI because it is so simple to use. But not worth it if you can't use it for the reason that we the people need it for. Like in my case, game dev. Cheers. Torak On Sun, Apr 6, 2014 at 10:48 AM, Philipp Dörfler phdoerf...@gmail.com wrote: It is not possible to combine JavaFX and OpenGL as it is right now. This was discussed on this mailing list some time before as a _possible_ future addition, but I'd be very surprised if Oracle actually chose to implement this. Starting with JavaFX 8 there is indeed some kind of 3D support but the 3D API allows only for the most basic operations. It is still completely scene graph based and you have to live with all restrictions that JavaFX imposes on you. Not wanting to say that the 3D API is completely useless, but I'm afraid that even WPF is more flexible when it comes to 3D than JavaFX is. For example: As far as I know you can not even change the shading model from GL_SMOOTH to GL_FLAT. You could work around that by setting the normals yourself though (Same for WPF). Also render quality is bad when you render an instance of Text in 3D and scale it down for example. At least it was when I tried that last time (few months ago). Again, not to say
[8u20] Review request: RT-35197: Use Lambda in FX runtime and samples
Hi Kevin, Please review the lambdification of the graphics component. You are welcome to apply the patch, but there are numerous changes and they are all automatic. If you or any of the team have outstanding changes, please coordinate with me in the JIRA and I will re-lambdify after you have released your changes. Jira: https://javafx-jira.kenai.com/browse/RT-35197 Webrev: See patch is in the JIRA Steve
Re: Expected frame rates for a full-screen blur
Hi Mike, I'm sorry that I've been unable to get to this until now. I can recreate the problem you are seeing on my Mac by running ColorfulCirclesApp. Please enter a JIRA for the problem. Thanks. Also try this: Try this: PerformanceTracker tracker = PerformanceTracker.getSceneTracker(scene); Timeline timeline = new Timeline( new KeyFrame(Duration.seconds(1), t - { System.out.println(::FPS = + tracker.getAverageFPS()); })); timeline.setCycleCount(Timeline.INDEFINITE); timeline.play(); Steve On 2014-04-04 4:33 PM, Mike Hearn wrote: OK, now I'm really puzzled - I watched the JavaFX performance talk from 2011 and learned about PeformanceTracker. It's too bad that's not public API, but it works. I used it like so: PerformanceTracker tracker = PerformanceTracker.getSceneTracker(scene); tracker.setOnRenderedFrameTask(new Runnable() { long lastTimestamp = System.currentTimeMillis(); @Override public void run() { final long now = System.currentTimeMillis(); long delta = now - lastTimestamp; if (delta 1000) System.out.println(Frame took + delta + msec); lastTimestamp = now; } }); The 1000 thing is just to avoid printing a nonsense timestamp when the UI hasn't been touched for a while. The deltas I see are consistently between 10-20msec which would be between 50 and 60fps, i.e. the vsync of the screen. But the wacky thing is, this doesn't change when I increase the size of the window, even though the animation is noticeably more choppy. It still says there's a 10-20msec gap between frames even though my eyes tell me otherwise. Even when I shrink the window size right down and get super smooth animation, the above code prints the same kind of deltas. This makes me think that whatever is going on, the regular JavaFX drawing thread isn't the issue. It seems to be churning through the scene at the same totally acceptable rate no matter what. So I'm thinking the issue must be something to do with how fast the GPU drains the command queue or something. BTW I tried doing -Dprism.order=j2d to see what would happen, and the GUI hangs before rendering anything. I'll file a bug on that later. On Thu, Apr 3, 2014 at 11:54 AM, Mike Hearn m...@plan99.net wrote: How does the OS tank? All the OS animations hit the same frame rate as the app itself does. For instance, opening Mission Control is normally smooth, but when a maximized JFX app is animating, it's not. It feels like the GPU is being overworked but as I'm not a GPU expert at all, I'm not sure where to begin - I am not even sure how to find out the frame rate so I know when tweaks are improving things! Is there a way to get this data from the system?
Re: Building OpenJFX on Mac OS X 10.9.2 / XCode 5.1 / XCode 4.3.3
Put this in your gradle.properties file: MACOSX_SDK_PATH = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk We need to document this on the wiki. Will do that Monday. Gotta go now. Steve On 2014-04-04 5:31 PM, Philipp Dörfler wrote: Hi, just out of curiousity I wanted to build OpenJFX, but although I followed the instructions at https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX I can’t get it to work. gradle 1.8 fails when building :fxpackage:compileLauncher as follows: :fxpackager:compileLauncher clang: warning: no such sysroot directory: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk' /Users/phi/Documents/workspace/OpenJFX8-rt/modules/fxpackager/src/main/native/launcher/mac/main.m:26:9: fatal error: 'Cocoa/Cocoa.h' file not found #import Cocoa/Cocoa.h ^ 1 error generated. :fxpackager:compileLauncher FAILED I do not have a 10.7 SDK on my 10.9 Mac, but I do have a 10.8 and 10.9: $ ls /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ MacOSX10.8.sdk MacOSX10.9.sdk According to „the internet™“ I would have to find an old version of Xcode (apparently 4.3.3) because that’s the only way to find an old SDK. As I’m sure that you guys have valid reasons to stick to 10.7 I think it would not hurt to mention this on the wiki page mentioned above stating that one needs XCode not newer than 4.3.3 and that old XCode versions can be downloaded on the Apple Developer website. I would add it myself but as I’m not a contributor I don’t have the required permissions, so all I can do is to ask here for inclusion of that. Thanks! May that be the only obstacle in building JFX8.
Re: Why is com.sun.glass.ui.swt part of graphics-module
Hi Tom, This is an experimental SWT implementation of Glass that is used for debugging, benchmarking etc. purposes. It's unlikely that we will ever ship it as part of FX. You are right that it can't be part of jfxrt.jar and should it ever become more than that, it would need to be in a separate jar, perhaps part of swtfx.jar. Steve On 2014-04-02 3:43 AM, Tom Schindl wrote: Hi Steve others, Why is com.sun.glass.ui.swt part of the graphics module? Should it go into the swt one? I think it should be shipped with swtfx.jar not else we get back to classloader hell because the extension classloader tries to load classes from swt which it naturally can not find. Tom
Re: macosx fullscreen and window manager
It doesn't hurt to enter a JIRA for this. Even if we don't get to it ourselves, any sort of solution that you might come up with (even Mac only) can be tracked there. Steve On 2014-03-31 11:03 AM, Jasper Potts wrote: Hot corners and screen saver could just be turned off in system preferences. Then the cursor set to empty. If you need dynamic then you might be able to use something like JNA or JNIWrapper to make native call need to disable those things. Jasper On Mar 29, 2014, at 2:08 AM, Erik Colson e...@ecocode.net wrote: Hi, Is it possible to use JavaFX for developping a fullscreen macosx application that skips the window manager ? I have currently an app that does fullscreen but : - the 'hot corners' still work, letting the user switch to another app - the screensaver is still working - the mouse pointer is still shown The app is ment to become something like a Slideshow. Therefor those 3 points need to be solved. This is what I have for now: Screen screen = Screen.getPrimary(); primaryStage.initStyle(StageStyle.UNDECORATED); primaryStage.setResizable(false); primaryStage.setIconified(false); primaryStage.setFullScreenExitHint(); primaryStage.setFullScreen(true); primaryStage.setScene(scene); primaryStage.toFront(); // not really needed I think primaryStage.centerOnScreen(); primaryStage.show(); thanks ! -- erik colson
Re: Adding GStreamer plugins
https://javafx-jira.kenai.com/browse/RT-18009 This JIRA is covering adding support for more media formats. Since we are just talking about MKV, please open a separate JIRA to cover this work and attach the patch there. We can link to the new JIRA from RT-18009. Steve On 2014-03-25 7:47 PM, Jonathan Giles wrote: Typically in this case you would email the patch to the assigned developer, but it appears RT-18009 is unassigned at present. I think that is the first hurdle that needs to be resolved, but if you email me your patch I will attach it to the jira issue so that it is at least available for others. Thanks! -- Jonathan On 26/03/2014 12:39 p.m., Michael Berry wrote: Hi all, Turns out it was a stupid mistake on my part causing the last few linking errors, I hadn't added one of the C files I needed to the makefile (well I had, but I'd then reverted it again without realising!) Thanks to all for the prods and advice. Once I'd done that, the build went through without a hitch - and then it was just a case of making the relevant additions to the native code to register the MKV type and create a pipeline from it using the plugin. This wasn't hard to work out at all; I've since tried several test files in MKV format (with AAC audio) all of which play in MediaPlayer without a hitch! I mainly wanted to do this as a personal exercise, though I'd imagine this is a useful piece of functionality for many others also - so should I submit a patch of the changes, or is this unlikely to be accepted? (Again, sorry for the perhaps obvious question, I'm rather new to this.) I've had a look at the code review process and it seems to suggest adding a patch to the relevant JIRA issue for those who don't have commit access (in this case 18009), but I don't seem to have permission to do that either? Thanks, Michael On 25 March 2014 17:01, Stephen F Northover steve.x.northo...@oracle.comwrote: On 2014-03-25 7:00 AM, Kirill Kirichenko wrote: Hi Michael. See my comments inline. On 24.03.2014 04:31, Michael Berry wrote: I'm now a bit further along with this, though struggling to get the matroska plugin to compile (getting a bunch of unresolved external symbol errors for functions it uses in glib - not entirely sure why at the moment, as I said C is not my strong point.) I've also noticed the plugins currently bundled have quite a few changes to the gstreamer version, and I can't quite work out the logic behind why things have been changed the way they have - so even after the compilation issue is resolved I'm now less confident that it will just drop in and work! Again, if someone knowledgeable in this area that's lurking in the shadows could shed any light on any of this, it would be hugely appreciated. We did some changes in existing GStreamer code because it had errors and because we needed to expand some functionality. The changes are not very extensive. However, putting the current problems aside for a bit, the snags I hit up until this point could I think be relatively easily addressed in the documentation. With that in mind could I suggest a few additional points for the wiki? These may be obvious to the majority reading here, but as someone completely new to building JFX they had me stumped for a while! I can give you some directions. There is no wiki. I'd appreciate if you created one. - It turns out that the Gstreamer stuff doesn't compile at all by default, which is why I wasn't seeing any changes on the native level. To ensure GStreamer is actually compiled, you need to copy the gradle.properties.template file to gradle.properties, and uncomment the #COMPILE_MEDIA = true line. (A similar scenario would appear to exist for any webkit alterations as per the line above.) You don't need to comment/uncomment anything. Just add -PCOMPILE_MEDIA=true to the gradle command line. You can however change the properties file too. - As well as the requirements listed, I needed the Windows SDK ( http://www.microsoft.com/en-gb/download/details.aspx?id=8279) installed for GStreamer to compile successfully under Windows (7) - without it cygpath just threw a rather confusing error. You need windows 7.1a SDK and speaking precisely you need only samples from it because samples have BaseClasses at Samples/multimedia/directshow/baseclasses. BaseClasses are used for Oracle direchshowwrapper plugin. - The developer workflow page ( https://wiki.openjdk.java.net/display/OpenJFX/Developer+Work+Flow) refers to -Djavafx.ext.dirs - I think this should be -Djava.ext.dirs instead? What are you gonna use it for ? I updated the page and got rid of the BINARY_STUB reference that is no longer needed. I'm happy to make the above changes myself but unsure of if / where you can sign up for an account, so I'm just throwing them here for now - if anyone could point me to the right place then that'd be great! Steve. Can you give an advice
Re: Glass Robot and getSCreenCapture
Hi David, Sorry to be getting to this so late. An uninitialized pixel is normally considered to be black. If you throw an exception, clients will need to either catch the exception or perform the same test that you are performing before they call the API. Since this is not pubic API, no client will be affected so even if we make the change to throw the exception and then decide not to do this later, we can change it. What is happening now? Who is being affected by this bug? Is it easy to change the implementations to return black? This seems better to me than throwing the exception. As I say, if we throw the exception, then we will only break ourselves, not clients of FX API. Have we ensured that the exception will not break SQE tests. Again, sorry to be getting to this so late and apologies if all of this has been discussed in another thread that I missed, Steve On 2014-03-25 2:46 PM, David Hill wrote: On 3/21/14, Mar 21, 12:53 PM, David Hill wrote: Having heard a little feedback, here is my proposal in the form of a review request :-) My recommendation would be modify the JavaDoc contract to specify that the x,y and x+width, y+height must be within the screen bounds, with an IllegalArgumentException if out of bounds. This would be checked in Robot, prior to calling the native impls. This code is internal API, so I expect the real impact would be on SQE. I really like the idea of adding a bounds restriction - so that the requested bounds must be within the Screen. It seems the simplest solution to my issue of handling the odd edge case of out of bound pixels, with the least likely impact. This means that existing code in the implementations are not affected. I suspect that there will we little if any impact on SQE tests, given that most of us would avoid asking for a screen capture with undefined pixels. I do expect that we will encounter a few exceptions to this when tests are run on smaller displays (like embedded). I also added bounds checking to Robot.getPixelColor() for consistency, and because Embedded passes this call through to common code for screen capture. I did a grep through the JavaFX code base, and don't see any JavaFX use cases. I expect any golden image test code could be affected. I separated out this internal API changes from my embedded changes so we have a clear and easy thing to review. Jira: https://javafx-jira.kenai.com/browse/RT-36382 Patch: is inline in the Jira, but also here: diff -r bb72bd2fa889 modules/graphics/src/main/java/com/sun/glass/ui/Robot.java --- a/modules/graphics/src/main/java/com/sun/glass/ui/Robot.java Tue Mar 25 14:21:26 2014 -0400 +++ b/modules/graphics/src/main/java/com/sun/glass/ui/Robot.java Tue Mar 25 14:41:37 2014 -0400 @@ -144,9 +144,20 @@ protected abstract int _getPixelColor(int x, int y); /** * Returns pixel color at specified screen coordinates in IntARGB format. + * + * If the requested pixel is not contained by the actual Screen + * bounds an IllegalArgumentException will be thrown. + * + * @param x The screen X of the requested capture (must be =0) + * @param y The screen Y of the requested capture (must be =0) */ public int getPixelColor(int x, int y) { Application.checkEventThread(); +Screen s = Screen.getMainScreen(); +if (x 0 || y 0 || +x = s.getWidth() || y s.getHeight()) { + throw new IllegalArgumentException(Capture out of bounds); +} return _getPixelColor(x, y); } @@ -162,13 +173,27 @@ * will result in a Pixels object with dimensions (20x20). Calling code * should use the returned objects's getWidth() and getHeight() methods * to determine the image size. - * + * * If (@code isHiDPI) is {@code false}, the returned Pixels object is of * the requested size. Note that in this case the image may be scaled in * order to fit to the requested dimensions if running on a HiDPI display. + * + * If the requested capture bounds is not contained by the actual Screen + * bounds an IllegalArgumentException will be thrown. + * + * @param x The screen X of the requested capture (must be =0) + * @param y The screen Y of the requested capture (must be =0) + * @param width The of width the requested capture (must be =1 and fit on the screen) + * @param height The of width the requested capture (must be =1 and fit on the screen) + * @param isHiDPI return HiDPI if available */ public Pixels getScreenCapture(int x, int y, int width, int height, boolean isHiDPI) { Application.checkEventThread(); +Screen s = Screen.getMainScreen(); +if (x 0 || y 0 || +x + width s.getWidth() || y + height s.getHeight()) { + throw new IllegalArgumentException(Capture out of bounds); +} return _getScreenCapture(x, y, width,
Re: Adding GStreamer plugins
On 2014-03-25 7:00 AM, Kirill Kirichenko wrote: Hi Michael. See my comments inline. On 24.03.2014 04:31, Michael Berry wrote: I'm now a bit further along with this, though struggling to get the matroska plugin to compile (getting a bunch of unresolved external symbol errors for functions it uses in glib - not entirely sure why at the moment, as I said C is not my strong point.) I've also noticed the plugins currently bundled have quite a few changes to the gstreamer version, and I can't quite work out the logic behind why things have been changed the way they have - so even after the compilation issue is resolved I'm now less confident that it will just drop in and work! Again, if someone knowledgeable in this area that's lurking in the shadows could shed any light on any of this, it would be hugely appreciated. We did some changes in existing GStreamer code because it had errors and because we needed to expand some functionality. The changes are not very extensive. However, putting the current problems aside for a bit, the snags I hit up until this point could I think be relatively easily addressed in the documentation. With that in mind could I suggest a few additional points for the wiki? These may be obvious to the majority reading here, but as someone completely new to building JFX they had me stumped for a while! I can give you some directions. There is no wiki. I'd appreciate if you created one. - It turns out that the Gstreamer stuff doesn't compile at all by default, which is why I wasn't seeing any changes on the native level. To ensure GStreamer is actually compiled, you need to copy the gradle.properties.template file to gradle.properties, and uncomment the #COMPILE_MEDIA = true line. (A similar scenario would appear to exist for any webkit alterations as per the line above.) You don't need to comment/uncomment anything. Just add -PCOMPILE_MEDIA=true to the gradle command line. You can however change the properties file too. - As well as the requirements listed, I needed the Windows SDK ( http://www.microsoft.com/en-gb/download/details.aspx?id=8279) installed for GStreamer to compile successfully under Windows (7) - without it cygpath just threw a rather confusing error. You need windows 7.1a SDK and speaking precisely you need only samples from it because samples have BaseClasses at Samples/multimedia/directshow/baseclasses. BaseClasses are used for Oracle direchshowwrapper plugin. - The developer workflow page ( https://wiki.openjdk.java.net/display/OpenJFX/Developer+Work+Flow) refers to -Djavafx.ext.dirs - I think this should be -Djava.ext.dirs instead? What are you gonna use it for ? I updated the page and got rid of the BINARY_STUB reference that is no longer needed. I'm happy to make the above changes myself but unsure of if / where you can sign up for an account, so I'm just throwing them here for now - if anyone could point me to the right place then that'd be great! Steve. Can you give an advice ? If you are looking to contribute (when you get to a good place), the process is well known and is followed by the everyone. https://wiki.openjdk.java.net/display/OpenJFX/Code+Reviews If I do ever manage to get this working (ha-ha) I'd also like to throw up a wiki page just detailing how to grab a gstreamer plugin and make the necessary changes to it to compile it into openjfx as a stop gap to then perhaps working on one or both of the above JIRA issues and seeing where I get - does this sound reasonable? Only committers can edit the wiki right now. It is possible to become an Author and write to the wiki, but I would be happy to publish your recipe when you are happy with it. It does. On Mar 22, 2014, at 9:26 PM, Michael Berry berry...@gmail.com wrote: However, I'm not sure if I'm going about including the matroska plugin in the right way - I've currently done the following: - Downloaded the latest version of the plugins from here ( http://gstreamer.freedesktop.org/src/gst-plugins-good/), then added the matroska one to the modules/media/src/main/native/gstreamer/plugins/ folder, as well as the modules/media/src/main/native/gstreamer/gstreamer-lite/gst-plugins-good/gst/ folder (I'm unsure of this - should I add it to both these folders?). Well you see. If you download the latest matroska plugin it potentially can have dependencies on the latest GStreamer platform. We don't have/use the latest gstreamer. The version we use is 0.10.35. And the latest available is 1.x. They are incompatible in some methods. - Added all the C files from the first folder mentioned above to the plugins.vcxproj file - Added the relevant files and directory to Makefile.gstplugins - Called the additional relevant plugin_init() function in gstplugins-lite.c There is one more thing you need to do here for Windows only apart from running gradle with -PCOMPILE_MEDIA=true. Windows build system has files that export symbols 1)
Re: Is Quicktime API calls inside JavaFX?
Apple has a long history of burning developers like this. It's the price of running on their platform. Steve On 2014-03-25 3:30 PM, Phil Race wrote: I see .. so AVFoundation was already there since 10.7, its AVKit that's new in 10.9 but AV Foundation is what FX would use. It looks like Apple starting encouraging migration to AV Foundation about 18 months ago based on the date of this document :- https://developer.apple.com/library/mac/technotes/tn2300/_index.html I suppose we need to learn read the apple seeds and interpret that as a big, urgent, hint. -phil. On 3/25/2014 12:09 PM, David DeHaven wrote: Therein lies The Problem, and why we had to go with QTKit when we supported 10.6... Every two releases they seem to deprecate half-baked APIs in favor of some new half-baked API. At least as of 10.8 that seems to have stabilized somewhat, as we transition more and more to an iOS clone. We had issues with AVFoundation not working the way we needed and it wasn't available on 10.6. It's supposed to work correctly (never had time to confirm) on 10.8 but that still leaves 10.7 out in the cold. So we'll likely have to stick with QTKit for older releases and move to AVFoundation in 10.8 and later. Ideally, the QTKit component would be separate so it could be removed allowing MAS apps to still support A/V playback. I think the QTKit component can be dropped completely in FX 9 but it needs to be there in FX 8. AVKit is a high level component that sits on top of AVFoundation, it doesn't look useful for our purposes at first glance. -DrD- I presume that Apple now want you to use AVKit which is new in 10.9. However I don't understand how you can develop an app that targets 10.8 if its unable to use QTKit since that's all there is on 10.8 or earlier. Does the AppStore really disallow targeting something like half the installed base ?? -phil. On 3/25/2014 9:19 AM, Stephen F Northover wrote: Here is the JIRA that is tracking this: https://javafx-jira.kenai.com/browse/RT-34893 Steve On 2014-03-25 11:46 AM, Tony Anecito wrote: Thanks for the verification. No matter what state Quicktime is in it is no longer accepted by the Apple Store. I am guessing these new rules will soon apply to everything but I could be wrong. Regards, -Tony On Tuesday, March 25, 2014 9:27 AM, David DeHaven david.deha...@oracle.com wrote: Hi All, Apparently the JavaFX includes some libraries that use the obsolete Quicktime. When some submits to the Apple Store a JavaFX app it gets rejected based on JavaFX having the obsolete API. I found out how to fix it from someone else running into the same issue. http://stackoverflow.com/questions/21008617/java-error-when-submitting-app-to-mac-store-deprecated-api-usage It uses the now deprecated QTKit to play media. -DrD-
Re: Is Quicktime API calls inside JavaFX?
As I said, Apple does this. It took cocoa (a nice API) years until it had the functionality of carbon (an awful API). Believe me, I have experienced the trail of dead API and the pointless developer rewrites. Steve On 2014-03-25 4:02 PM, David DeHaven wrote: Yes, this is true, but QuickTime (despite it's horrible component architecture) was stable and actually useful for a very long time, then they dropped it and replaced it with what amounts to absolutely nothing useful. Only in 10.8 did they start putting useful bits back in, it's still a long ways to go to catch up to the utility of QuickTime. -DrD- Apple has a long history of burning developers like this. It's the price of running on their platform. Steve On 2014-03-25 3:30 PM, Phil Race wrote: I see .. so AVFoundation was already there since 10.7, its AVKit that's new in 10.9 but AV Foundation is what FX would use. It looks like Apple starting encouraging migration to AV Foundation about 18 months ago based on the date of this document :- https://developer.apple.com/library/mac/technotes/tn2300/_index.html I suppose we need to learn read the apple seeds and interpret that as a big, urgent, hint. -phil. On 3/25/2014 12:09 PM, David DeHaven wrote: Therein lies The Problem, and why we had to go with QTKit when we supported 10.6... Every two releases they seem to deprecate half-baked APIs in favor of some new half-baked API. At least as of 10.8 that seems to have stabilized somewhat, as we transition more and more to an iOS clone. We had issues with AVFoundation not working the way we needed and it wasn't available on 10.6. It's supposed to work correctly (never had time to confirm) on 10.8 but that still leaves 10.7 out in the cold. So we'll likely have to stick with QTKit for older releases and move to AVFoundation in 10.8 and later. Ideally, the QTKit component would be separate so it could be removed allowing MAS apps to still support A/V playback. I think the QTKit component can be dropped completely in FX 9 but it needs to be there in FX 8. AVKit is a high level component that sits on top of AVFoundation, it doesn't look useful for our purposes at first glance. -DrD- I presume that Apple now want you to use AVKit which is new in 10.9. However I don't understand how you can develop an app that targets 10.8 if its unable to use QTKit since that's all there is on 10.8 or earlier. Does the AppStore really disallow targeting something like half the installed base ?? -phil. On 3/25/2014 9:19 AM, Stephen F Northover wrote: Here is the JIRA that is tracking this: https://javafx-jira.kenai.com/browse/RT-34893 Steve On 2014-03-25 11:46 AM, Tony Anecito wrote: Thanks for the verification. No matter what state Quicktime is in it is no longer accepted by the Apple Store. I am guessing these new rules will soon apply to everything but I could be wrong. Regards, -Tony On Tuesday, March 25, 2014 9:27 AM, David DeHaven david.deha...@oracle.com wrote: Hi All, Apparently the JavaFX includes some libraries that use the obsolete Quicktime. When some submits to the Apple Store a JavaFX app it gets rejected based on JavaFX having the obsolete API. I found out how to fix it from someone else running into the same issue. http://stackoverflow.com/questions/21008617/java-error-when-submitting-app-to-mac-store-deprecated-api-usage It uses the now deprecated QTKit to play media. -DrD-
Re: Ability to decorate ChangeListener
I'm pretty sure this discussion has solidified around not flipping the equals() but this is a good example of something that we wouldn't change. If you write code that relies on this, it will break in the future when new code is added in FX that does not follow the pattern. Steve On 2014-03-22 10:47 AM, Mario Ivankovits wrote: The only thing which I ask for is to flip this „if in the *ExpressionHelper classes: So, JavaFX does not break anything and it is up to the app developer to take the risk or not. if (listener.equals(changeListeners[index])) { If we flip this to if (changeListeners[index].equals(listener)) Am 22.03.2014 um 15:42 schrieb Kevin Rushforth kevin.rushfo...@oracle.commailto:kevin.rushfo...@oracle.com: If you are talking about a change to the JavaFX API, we are not likely to accept such a change if it breaks the contract of equals() or hashcode(). In your own app it may not matter, but it is dangerous to assume it won't matter to anyone. Martin owns the core libraries and can comment further. -- Kevin Mario Ivankovits wrote: Hi Thomas! Thanks for your input. Because I want to decorated listeners added by JavaFX core I can not use the sub/unsub pattern. Your second proposal is almost what I do right now. In removeListener I consult a map where the decorated listeners and their undecorated one lives. Regarding the symmetric doubts. Such listeners will always be removed by passing in the undecorated object to removeListener. They should act like a transparent proxy. Even if this breaks the equals paradigm, in this special case I can perfectly live with an equals/hashCode implementation like this below. It won’t break your app; as long as both objects do not live in the same HashSet/Map …. for sure - but why should they? @Override public boolean equals(Object obj) { return obj == delegate; // this == obj } @Override public int hashCode() { return delegate.hashCode(); } Regards, Mario Am 22.03.2014 um 14:22 schrieb Tomas Mikula tomas.mik...@gmail.commailto:tomas.mik...@gmail.com: A simpler and more universal solution is to also override removeListener: public void removeListener(ChangeListener? super T listener) { super.removeListener(decorated(listener)); } And the equals() method on decorated listeners only compares the delegates (thus is symmetric). Regards, Tomas On Sat, Mar 22, 2014 at 2:07 PM, Tomas Mikula tomas.mik...@gmail.commailto:tomas.mik...@gmail.com wrote: The suspicious thing about your solution is that your smart implementation of equals() is not symmetric. In case the observable value is visible only within your project, you could do this: interface Subscription { void unsubscribe(); } class MyObservableValueT implements ObservableValueT { public Subscription subscribe(ChangeListener? extends T listener) { ChangeListenerT decorated = decorate(listener); addListener(decorated); return () - removeListener(decorated); } } and use subscribe()/unsubscribe() instead of addListener()/removeListener(): Subscription sub = observableValue.subscribe(listener); // ... sub.unsubscribe(); Of course this is not possible if you need to pass the observable value to the outside world as ObservableValue. Regards, Tomas On Sat, Mar 22, 2014 at 6:57 AM, Mario Ivankovits ma...@datenwort.atmailto:ma...@datenwort.at wrote: Hi! In one of my ObservableValue implementations I do have the need to decorate ChangeListener added to it. Today this is somewhat complicated to implement, as I have to keep a map of the original listener to the decorated one to being able to handle the removal process of a listener. Because the outside World did not know that I decorated the listener and the instance passed in to removeListener ist the undecorated one. We can make things easier with a small change in ExpressionHelper.removeListener. When iterating through the listener list, the listener passed in as argument to removeListener is asked if it is equal to the one stored if (listener.equals(changeListeners[index])) { If we flip this to if (changeListeners[index].equals(listener)) { a listener decoration can be smart enough to not only check against itself, but also against its delegate. What do you think? I could prepare a patch for the *ExpressionHelper classes. Best regards, Mario
Re: Using JavaFX deploy and having signing issues...
Yes and we'll put them on the OpenJFX wiki. Steve On 2014-03-24 6:39 PM, Mark Fortner wrote: Tony and/or Danno, Would you mind documenting the steps that you had to go through to make a Mac application that was submittable to the Apple Store? I'm sure everyone who's struggling to create applications would appreciate the information. Cheers, Mark On Mon, Mar 24, 2014 at 3:30 PM, Tony Anecito adanec...@yahoo.com wrote: Ok I was able to codesign and submit. The JavaFX deploy task is not creating a info.plist when the jdk is added to the bundle for the jdk. After submission there were some issues related to signing and it now requires a entitlements file for some things in the jre. Regards, -Tony On Monday, March 24, 2014 12:01 PM, Tony Anecito adanec...@yahoo.com wrote: So you have tried codesign with Mavericks OS X? I am getting invalid bundle when the jdk is bundled as required by the Apple Store. You have to codesign the jdk plugin seprately. Yes you can create a pkg or dmg image but I am looking for the correct way get the jdk codesigned else the app codesign fails also. Do you have a working example of codesign the jdk in the bundle? Thanks, -Tony On Monday, March 24, 2014 11:48 AM, Danno Ferrin danno.fer...@oracle.com wrote: You can still deploy apps to the app store using JavaFX. You just cannot use the media library at the moment. You can do it also via non app store distribution and sign it via gatekeeper as well and keep the media libraries in. And it shouldn't matter what version of Mac OSX you use to build it. Tony Anecito adanec...@yahoo.com wrote: Thanks Richard, I know some more now. It seems with Mavericks 10.9 codesign and the bundle format that JavaFX deploy creates is no longer valid. There are starting to appear to be more references to this issue on the internet. So JavaFX apps can no longer be created and work on the Mac at least as far as the Apple Store is concerned. I may have to downgrade my Mac OS X to 10.8 to create Apple Store distributable JavaFX apps for the Mac. -Tony On Monday, March 24, 2014 10:57 AM, Richard Bair richard.b...@oracle.com wrote: One last hurdle, you need to remove the media library for JavaFX (lib/libjfxmedia.dylib) from your bundled JDK. It uses QuickTime and that is being disowned by apple. This may be fixed in a later 8u update, but not in 8.0.0_b132. Oh good grief, Apple! So what should we be using instead? This means I cannot make use of fx media in any app submitted to the app store? Richard
Re: TaskExecutionException: Execution failed for task ':web:compileGeneratedWin'
Was this gradle 1.8 or a problem with an EA version of JDK8? In any case, update both. If you can't, doing a clean every time should work but that's not the long term answer. Steve On 2014-03-21 5:49 AM, Kevin Rushforth wrote: Are you using gradle 1.8? This looks like a bug we used to have with prior versions of gradle. -- Kevin Leonid Popov wrote: Hi, I updated my workspace recently, tried to build it and have got the following exception. Any suggestions? FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':web:compileGeneratedWin'. java.lang.ClassFormatError: Invalid Constant Pool entry Type 18 * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':web:compileGeneratedWin'.
Re: TaskExecutionException: Execution failed for task ':web:compileGeneratedWin'
We fail on gradle 1.11. I have filed this bug: https://javafx-jira.kenai.com/browse/RT-36330 I suggest that if we can't fix the bug quickly, we print out a message that we require gradle 1.8 and exit. We should let people override this choice in the properties file. Steve On 2014-03-21 7:47 AM, Kevin Rushforth wrote: This was a gradle 1.4 bug that is fixed in 1.8: http://issues.gradle.org/browse/GRADLE-2831 Leonid just happened to be running an older gradle. -- Kevin Stephen F Northover wrote: Was this gradle 1.8 or a problem with an EA version of JDK8? In any case, update both. If you can't, doing a clean every time should work but that's not the long term answer. Steve On 2014-03-21 5:49 AM, Kevin Rushforth wrote: Are you using gradle 1.8? This looks like a bug we used to have with prior versions of gradle. -- Kevin Leonid Popov wrote: Hi, I updated my workspace recently, tried to build it and have got the following exception. Any suggestions? FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':web:compileGeneratedWin'. java.lang.ClassFormatError: Invalid Constant Pool entry Type 18 * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':web:compileGeneratedWin'.
Re: *PropertyBase vs Simple*Property
This looks good. I wonder if we should make this (massive) change before we lambda graphics and controls? Probably doesn't matter. We'll need a JIRA and someone assigned to it in order to track the work. Steve On 2014-03-21 12:53 PM, Tom Schindl wrote: Hi Richard, Coming back to this old thread and now that we are using lamdas all over I guess we could take one more look into that. I've prototyped an initial version by introducing a new internal type named InvalidatedSimpleObjectProperty (not the best name ever!) - see code pasted below. And now one can write code like this: public final ObjectPropertyRectangle2D viewportProperty() { if (viewport == null) { viewport = new InvalidatedSimpleObjectProperty(this, viewport, (o) - { invalidateWidthHeight(); impl_markDirty(DirtyBits.NODE_VIEWPORT); impl_geomChanged(); } ); } return viewport; } instead of public final ObjectPropertyRectangle2D viewportProperty() { if (viewport == null) { viewport = new ObjectPropertyBaseRectangle2D() { @Override protected void invalidated() { invalidateWidthHeight(); impl_markDirty(DirtyBits.NODE_VIEWPORT); impl_geomChanged(); } @Override public Object getBean() { return ImageView.this; } @Override public String getName() { return viewport; } }; } return viewport; } Which allows us to get rid of most of the ObjectPropertyBase sublcasses. Tom package com.sun.javafx.property; import java.util.function.Consumer; import javafx.beans.property.SimpleObjectProperty; public final class InvalidatedSimpleObjectPropertyT extends SimpleObjectPropertyT { private final ConsumerInvalidatedSimpleObjectPropertyT invalidationConsumer; /** * The constructor of {@code ObjectProperty} * * @param initialValue *the initial value of the wrapped value * @param invalidationConsumer * the consumer to be called when the bean is invalidated */ public InvalidatedSimpleObjectProperty(T initialValue, final ConsumerInvalidatedSimpleObjectPropertyT invalidationConsumer) { super(initialValue); if( invalidationConsumer == null ) { throw new IllegalArgumentException(Consumer can not be null); } this.invalidationConsumer = invalidationConsumer; } /** * The constructor of {@code ObjectProperty} * * @param bean *the bean of this {@code ObjectProperty} * @param name *the name of this {@code ObjectProperty} * @param invalidationConsumer * the consumer to be called when the bean is invalidated */ public InvalidatedSimpleObjectProperty(Object bean, String name, final ConsumerInvalidatedSimpleObjectPropertyT invalidationConsumer) { super(bean, name); if( invalidationConsumer == null ) { throw new IllegalArgumentException(Consumer can not be null); } this.invalidationConsumer = invalidationConsumer; } /** * The constructor of {@code ObjectProperty} * * @param bean *the bean of this {@code ObjectProperty} * @param name *the name of this {@code ObjectProperty} * @param initialValue *the initial value of the wrapped value * @param invalidationConsumer * the consumer to be called when the bean is invalidated */ public InvalidatedSimpleObjectProperty(Object bean, String name, T initialValue, final ConsumerInvalidatedSimpleObjectPropertyT invalidationConsumer) { super(bean,name,initialValue); if( invalidationConsumer == null ) { throw new IllegalArgumentException(Consumer can not be null); } this.invalidationConsumer = invalidationConsumer; } @Override protected void invalidated() { invalidationConsumer.accept(this); } } On 22.01.13 10:30, Richard Bair wrote: Is the Java8 plan still there if not should the current Simple*Property subclasses who overload invalidated be changed to PropertyBase? It is unlikely that we'll be able to do anything major here in Java 8 just because we don't really have Lambda yet that we can play with, and changing over every property is a big job. Unless we knew it would be a major win. I would say, if you encounter a Simple* property that has been subclassed, then we should fix it up as we go to be a PropertyBase* guy instead.
Re: Gradle 1.11 (and 1.8) will now fail fast with a clear error [was: TaskExecutionException: Execution failed for task ':web:compileGeneratedWin']
Great! There were people getting burned by this at EclipseCon. Luckily, I remembered this bug and was able to help them but now we don't have to. Steve On 2014-03-21 4:15 PM, Kevin Rushforth wrote: I just pushed a fix for https://javafx-jira.kenai.com/browse/RT-36330 Changeset: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/27390e79b4cf There is a bug in gradle 1.11 (already fixed in 1.12-rc1) which would be intrusive to workaround, so 1.11 is now blacklisted. The logic is this: if (gradleVersion != 1.8) { if (gradleVersion 1.8) fail else if (gradleVersion == 1.11) fail else warn } You can turn the failures into warnings with gradle -PGRADLE_VERSION_CHECK=false -- Kevin Stephen F Northover wrote: We fail on gradle 1.11. I have filed this bug: https://javafx-jira.kenai.com/browse/RT-36330 I suggest that if we can't fix the bug quickly, we print out a message that we require gradle 1.8 and exit. We should let people override this choice in the properties file. Steve On 2014-03-21 7:47 AM, Kevin Rushforth wrote: This was a gradle 1.4 bug that is fixed in 1.8: http://issues.gradle.org/browse/GRADLE-2831 Leonid just happened to be running an older gradle. -- Kevin Stephen F Northover wrote: Was this gradle 1.8 or a problem with an EA version of JDK8? In any case, update both. If you can't, doing a clean every time should work but that's not the long term answer. Steve On 2014-03-21 5:49 AM, Kevin Rushforth wrote: Are you using gradle 1.8? This looks like a bug we used to have with prior versions of gradle. -- Kevin Leonid Popov wrote: Hi, I updated my workspace recently, tried to build it and have got the following exception. Any suggestions? FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':web:compileGeneratedWin'. java.lang.ClassFormatError: Invalid Constant Pool entry Type 18 * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':web:compileGeneratedWin'.
Accessibility in OpenJFX: The Saga Continues
Hi all, We've been looking at Accessibility in FX for quite a while now and it has proved a very difficult component to implement. For one reason or another it has simply not made it into the toolkit. Accessibility is a critical component and one that is essential for a number of reasons. I'm pleased to announce that we've been working hard to tame the beast: https://wiki.openjdk.java.net/display/OpenJFX/Accessibility+Exploration The results of this exploration are looking really good. Just like previous accessibility implementations, the plan is to make the code available in OpenJFX, but have it be disabled by default until it is ready. Fortunately, the Accessibility API is small and the code does not run unless triggered by the screen reader. This allows us to include the implementation before it is ready without destabilizing the code base. The idea behind releasing Accessibility now is to allow people to try the code and contribute. It is important to understand that we are at the alpha stage in development. The API is not settled and neither is the implementation, but we have reached the point where we have proved the design with working code. Working code is worth its weight in gold, especially when dealing with the low level details of different operating systems. If not careful, it is quite easy to design an API that cannot be implemented on a particular platform and then be stuck with it. There is nothing official in terms of the release date, but as important dates get closer (8u20, 8u40 and 9), we will be evaluating where we are at. This might mean that the experimental Accessibility API may disappear temporarily only to reappear quickly in the early days of the next release. There will be no API before its time. Please follow along with us in JIRA, on this list and in the wikihttps://wiki.openjdk.java.net/display/OpenJFX/Accessibility You will need to set -Djavafx.accessible=true to enable accessibility (it is disabled by default). Currently only Windows 8 and Mac OSX 10.9 are supported. Of course, Windows 7 and Mac 10.8 need to eventually work too and the brave among you can force the code to run using -Djavafx.accessible.force=true. We are at the point where we're looking for community involvement in testing and implementation. We are not yet ready for third party controls. First, we need to get the built in FX controls working to be accessible and then use what we have learned. Thanks for being so patient with us, Steve
Re: Building and using a debug build of openjfx as the default JavaFX for development
Thanks John. See also: https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE There are several tricky issues around building, running and debugging OpenJFX from within an IDE. The most important thing is to run the code in the IDE rather than jfxrt.jar and the shared libraries that come with Java 8. All of this is described in the link. Steve On 2014-03-09 5:41 PM, John Smith wrote: The easiest thing to do to debug JavaFX is to use a prebuilt JDK 8+ and attach the sources from the JDK to your IDE. Then you can set break-points in the JavaFX source and debug it (i.e. you don't need to checkout and build openjfx at all). This works fine if all you want to do is step through the JavaFX source in the context of debugging your application (I think from your question this is actually what you want). For instructions on how to do this with Intellij Idea, see http://stackoverflow.com/questions/13407017/javafx-source-code-not-showing-in-intellij-idea. I think something like e(fx)clipse will do this step for you automatically (not sure about NetBeans). There is really little difference between the openjfx code and the source shipped with JDK 8. When you download JDK 8 (from https://jdk8.java.net/download.html) you are receiving a pre-built tagged snapshot of software built almost entirely from the openjdk/openjfx codebase. Of course, if you are actually developing and modifying the openjfx source, then the above won't work because your modified openjfx source would get out of sync with the binary JDK8 code. In this case, you would need to check-out the openjfx source, make any modifications you want, build it and then when you run your application, ensure that you run it against your custom openjfx build and have the modified source attached to your application's IDE project (similar to the instructions in the stackoverflow question I linked). JavaFX has both native and Java components. Debugging through the native components as well as the Java components is a more complex task. Perhaps there is more information on debugging openjfx on the openjfx wiki: https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX But the wiki is currently offline, so I can't check it at the moment. John -Original Message- From: openjfx-dev [mailto:openjfx-dev-boun...@openjdk.java.net] On Behalf Of Kay McCormick Sent: Friday, March 07, 2014 10:15 PM To: openjfx-dev@openjdk.java.net Subject: Building and using a debug build of openjfx as the default JavaFX for development Hi everyone, I've successfully built openjfx. My overall goal is to be able to step through the openjfx code. I have the Oracle JDK installed - do I need to use OpenJDK instead? How would I go about making sure the build produced has debug information and using it for javafx application development. I'm trying to make my way through this process but I don't have all the pieces put together yet, and I'd appreciate any tips that can be offered. Thanks! Kay