hg: openjfx/8/graphics/rt: RT-34085: Build failure in closed test due to JDK-8014719
Changeset: 53d80a9e7404 Author:kcr Date: 2013-11-05 16:55 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/53d80a9e7404 RT-34085: Build failure in closed test due to JDK-8014719 ! build.properties
Heads-up: Bumping minimum build number to b113
As a heads-up, I need to bump the minimum JDK 8 version number required for building FX to b113 (is currently b112) to fix a problem building one of our closed files that uses a java.net class in the JDK which has changed. FX JIRA: https://javafx-jira.kenai.com/browse/RT-34085 JDK issue which broke us: https://bugs.openjdk.java.net/browse/JDK-8014719 I will push this change shortly. -- Kevin
hg: openjfx/8/graphics/rt: 4 new changesets
Changeset: 3828bec01c12 Author:mhowe Date: 2013-11-05 13:07 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/3828bec01c12 RT-34079: Backout Service Loader change - cause issue with SceneBuilder [mhowe] ! modules/fxpackager/src/main/java/com/sun/javafx/tools/packager/bundlers/Bundler.java - modules/fxpackager/src/main/resources/META-INF/services/com.sun.javafx.tools.packager.bundlers.Bundler Changeset: 58064c5894fa Author:mhowe Date: 2013-11-05 13:09 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/58064c5894fa RT-34080: Backout Multiple package types - cause issue with SceneBuilder [mhowe] ! modules/fxpackager/src/main/java/com/sun/javafx/tools/packager/bundlers/BundleParams.java ! modules/fxpackager/src/main/java/com/sun/javafx/tools/packager/bundlers/Bundler.java ! modules/fxpackager/src/main/java/com/sun/javafx/tools/packager/bundlers/LinuxDebBundler.java ! modules/fxpackager/src/main/java/com/sun/javafx/tools/packager/bundlers/LinuxRPMBundler.java ! modules/fxpackager/src/main/java/com/sun/javafx/tools/packager/bundlers/MacDMGBundler.java ! modules/fxpackager/src/main/java/com/sun/javafx/tools/packager/bundlers/WinExeBundler.java ! modules/fxpackager/src/main/java/com/sun/javafx/tools/packager/bundlers/WinMsiBundler.java Changeset: 170a4c3af374 Author:mhowe Date: 2013-11-05 14:07 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/170a4c3af374 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt - modules/fxpackager/src/main/resources/META-INF/services/com.sun.javafx.tools.packager.bundlers.Bundler Changeset: b49810ea616a Author:kcr Date: 2013-11-05 16:32 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/b49810ea616a Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt
hg: openjfx/8/graphics/rt: RT-28393: Left / Right key navigation for Menu dropdowns don't work.
Changeset: 85de716883ff Author:leifs Date: 2013-11-05 14:46 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/85de716883ff RT-28393: Left / Right key navigation for Menu dropdowns don't work. Reviewed-by: jgiles ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ContextMenuContent.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/MenuBarSkin.java
hg: openjfx/8/graphics/rt: RT-32838 Bug in LineChart animation
Changeset: c9f00f34c3e1 Author:psomashe Date: 2013-11-05 14:07 -0800 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/c9f00f34c3e1 RT-32838 Bug in LineChart animation reviewed by Jonathan. ! modules/controls/src/main/java/javafx/scene/chart/LineChart.java
Re: [8] Review request for RT-33352: Win: Image and html cannot be dnd or clipboarded at the same time.
.. and of course, I looked at the JIRA too quickly and just saw the link and didn't notice that the text above was the explanation of the fix. My bad. Would be good to follow the same format that was sent to the list and include the link along with the comment (or send a really short description to the list). Then guys who pattern match instead of reading won't get tripped up. Steve On 2013-11-05 3:17 PM, Stephen F Northover wrote: I will. n future, please add me to the JIRA and attach the review request there. I see the webrev is there but the information about what you did to fix the bug (the contents of this email) should be there too. That way all the information about the bug and what you did is in the JIRA. Other people may be interested in the review and that is great information contacting the list is a great thing to do. You could email me and CC the list as follows (or just email the list). Subject: [] Review request for : To: CC: Body: The body can be really short but must contain the link. The main purpose of emailing the list is to inform people that a review is taking place and an interesting bug is close to being fixed. If the body simply had the JIRA link and the title, that is good enough. People are invited to follow along in the JIRA. ... and thanks for fixing the bug! (and sorry for this big long email) Steve On 2013-11-05 3:06 PM, Anthony Petrov wrote: Hi Steve, Please review a fix for https://javafx-jira.kenai.com/browse/RT-33352 at http://cr.openjdk.java.net/~anthony/g-4-imageHtmlDnD-RT-33352.0/ The fix is trivial and allows one to pass both an image and an html content via clipboard whereas previously the code could ignore the image, try to convert the html to an image, fail, and report as if there's no images present at all. -- best regards, Anthony
Re: [8] Review request for RT-33352: Win: Image and html cannot be dnd or clipboarded at the same time.
I will. n future, please add me to the JIRA and attach the review request there. I see the webrev is there but the information about what you did to fix the bug (the contents of this email) should be there too. That way all the information about the bug and what you did is in the JIRA. Other people may be interested in the review and that is great information contacting the list is a great thing to do. You could email me and CC the list as follows (or just email the list). Subject: [] Review request for : To: CC: Body: The body can be really short but must contain the link. The main purpose of emailing the list is to inform people that a review is taking place and an interesting bug is close to being fixed. If the body simply had the JIRA link and the title, that is good enough. People are invited to follow along in the JIRA. ... and thanks for fixing the bug! (and sorry for this big long email) Steve On 2013-11-05 3:06 PM, Anthony Petrov wrote: Hi Steve, Please review a fix for https://javafx-jira.kenai.com/browse/RT-33352 at http://cr.openjdk.java.net/~anthony/g-4-imageHtmlDnD-RT-33352.0/ The fix is trivial and allows one to pass both an image and an html content via clipboard whereas previously the code could ignore the image, try to convert the html to an image, fail, and report as if there's no images present at all. -- best regards, Anthony
[8] Review request for RT-33352: Win: Image and html cannot be dnd or clipboarded at the same time.
Hi Steve, Please review a fix for https://javafx-jira.kenai.com/browse/RT-33352 at http://cr.openjdk.java.net/~anthony/g-4-imageHtmlDnD-RT-33352.0/ The fix is trivial and allows one to pass both an image and an html content via clipboard whereas previously the code could ignore the image, try to convert the html to an image, fail, and report as if there's no images present at all. -- best regards, Anthony
Re: openjfx-dev Digest, Vol 24, Issue 9
@Steve Not sure how to add a watcher now, as already posted to https://javafx-jira.kenai.com/browse/RT-34077 Regards ML On 05/11/2013 20:00, openjfx-dev-requ...@openjdk.java.net wrote: Send openjfx-dev mailing list submissions to openjfx-dev@openjdk.java.net To subscribe or unsubscribe via the World Wide Web, visit http://mail.openjdk.java.net/mailman/listinfo/openjfx-dev or, via email, send a message with subject or body 'help' to openjfx-dev-requ...@openjdk.java.net You can reach the person managing the list at openjfx-dev-ow...@openjdk.java.net When replying, please edit your Subject line so it is more specific than "Re: Contents of openjfx-dev digest..." Today's Topics: 1. Re: JFXPanel with WebView in JDK8 (Stephen F Northover) 2. Re: JFXPanel with WebView in JDK8 (Kevin Rushforth) -- Message: 1 Date: Tue, 05 Nov 2013 14:42:36 -0500 From: Stephen F Northover Subject: Re: JFXPanel with WebView in JDK8 To: openjfx-dev@openjdk.java.net Message-ID: <52794a2c.2000...@oracle.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Please enter a JIRA with your test code in it and add me as a watcher. Thanks. Steve On 2013-11-05 2:37 PM, Lidierth Malcolm wrote: NOTE: THIS EXCEPTION OCCURS WITH JDK8, BUT NOT WITH JDK7 public class NewFXMain1 { public static void main(String[] args) throws InterruptedException, InvocationTargetException { EventQueue.invokeAndWait(new Runnable() { // Create the Swing components on the EDT @Override public void run() { JFrame f = new JFrame(); f.getContentPane().setPreferredSize(new Dimension(500, 500)); f.pack(); f.setVisible(true); final JFXPanel jfx = new JFXPanel(); f.getContentPane().add(jfx); // FX Thread Platform.runLater(new Runnable() { @Override public void run() { WebView browser = new WebView(); WebEngine webEngine = browser.getEngine(); // This is a reference to a web page on the Waterloo web site webEngine.load("http://waterloo.sourceforge.net/devwebpage/MathJax/mathjax.html";); Scene s = new Scene(browser); jfx.setScene(s); } }); } }); } } This gives (Note: using JDK8 and Running from NetBeans 7.4): Executing C:\Users\malcolm\Documents\waterloo\Sources\Java\kcl-waterloo-jfx\dist\run1852659813\kcl-waterloo-jfx.jar using platform C:\Program Files\Java\jdk1.8.0/bin/java Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at javafx.embed.swing.JFXPanel.getInputMethodRequests(JFXPanel.java:744) at sun.awt.im.InputMethodAdapter.haveActiveClient(InputMethodAdapter.java:61) at sun.awt.windows.WInputMethod.activate(WInputMethod.java:285) at sun.awt.im.InputContext.activateInputMethod(InputContext.java:396) at sun.awt.im.InputContext.focusGained(InputContext.java:338) at sun.awt.im.InputContext.dispatchEvent(InputContext.java:245) at sun.awt.im.InputMethodContext.dispatchEvent(InputMethodContext.java:196) at java.awt.Component.dispatchEventImpl(Component.java:4817) at java.awt.Container.dispatchEventImpl(Container.java:2293) at java.awt.Component.dispatchEvent(Component.java:4707) at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954) at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:986) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:610) at java.awt.Component.dispatchEventImpl(Component.java:4756) at java.awt.Container.dispatchEventImpl(Container.java:2293) at java.awt.Component.dispatchEvent(Component.java:4707) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746) at java.awt.EventQueue.access$400(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:697) at java.awt.EventQueue$3.run(EventQueue.java:691) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86) at java.awt.EventQueue$4.run(EventQueue.java:719) at java.awt.EventQueue$4.run(EventQueue.java:717) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) at java.awt.EventQueue.dispatchEvent(EventQueue.java:716) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:220) at ja
Re: JFXPanel with WebView in JDK8
Please file a JIRA at: https://javafx-jira.kenai.com/ Thanks. -- Kevin Lidierth Malcolm wrote: NOTE: THIS EXCEPTION OCCURS WITH JDK8, BUT NOT WITH JDK7 public class NewFXMain1 { public static void main(String[] args) throws InterruptedException, InvocationTargetException { EventQueue.invokeAndWait(new Runnable() { // Create the Swing components on the EDT @Override public void run() { JFrame f = new JFrame(); f.getContentPane().setPreferredSize(new Dimension(500, 500)); f.pack(); f.setVisible(true); final JFXPanel jfx = new JFXPanel(); f.getContentPane().add(jfx); // FX Thread Platform.runLater(new Runnable() { @Override public void run() { WebView browser = new WebView(); WebEngine webEngine = browser.getEngine(); // This is a reference to a web page on the Waterloo web site webEngine.load("http://waterloo.sourceforge.net/devwebpage/MathJax/mathjax.html";); Scene s = new Scene(browser); jfx.setScene(s); } }); } }); } } This gives (Note: using JDK8 and Running from NetBeans 7.4): Executing C:\Users\malcolm\Documents\waterloo\Sources\Java\kcl-waterloo-jfx\dist\run1852659813\kcl-waterloo-jfx.jar using platform C:\Program Files\Java\jdk1.8.0/bin/java Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at javafx.embed.swing.JFXPanel.getInputMethodRequests(JFXPanel.java:744) at sun.awt.im.InputMethodAdapter.haveActiveClient(InputMethodAdapter.java:61) at sun.awt.windows.WInputMethod.activate(WInputMethod.java:285) at sun.awt.im.InputContext.activateInputMethod(InputContext.java:396) at sun.awt.im.InputContext.focusGained(InputContext.java:338) at sun.awt.im.InputContext.dispatchEvent(InputContext.java:245) at sun.awt.im.InputMethodContext.dispatchEvent(InputMethodContext.java:196) at java.awt.Component.dispatchEventImpl(Component.java:4817) at java.awt.Container.dispatchEventImpl(Container.java:2293) at java.awt.Component.dispatchEvent(Component.java:4707) at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954) at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:986) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:610) at java.awt.Component.dispatchEventImpl(Component.java:4756) at java.awt.Container.dispatchEventImpl(Container.java:2293) at java.awt.Component.dispatchEvent(Component.java:4707) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746) at java.awt.EventQueue.access$400(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:697) at java.awt.EventQueue$3.run(EventQueue.java:691) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86) at java.awt.EventQueue$4.run(EventQueue.java:719) at java.awt.EventQueue$4.run(EventQueue.java:717) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) at java.awt.EventQueue.dispatchEvent(EventQueue.java:716) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:220) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:135) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:123) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:119) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:111) at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
Re: JFXPanel with WebView in JDK8
Please enter a JIRA with your test code in it and add me as a watcher. Thanks. Steve On 2013-11-05 2:37 PM, Lidierth Malcolm wrote: NOTE: THIS EXCEPTION OCCURS WITH JDK8, BUT NOT WITH JDK7 public class NewFXMain1 { public static void main(String[] args) throws InterruptedException, InvocationTargetException { EventQueue.invokeAndWait(new Runnable() { // Create the Swing components on the EDT @Override public void run() { JFrame f = new JFrame(); f.getContentPane().setPreferredSize(new Dimension(500, 500)); f.pack(); f.setVisible(true); final JFXPanel jfx = new JFXPanel(); f.getContentPane().add(jfx); // FX Thread Platform.runLater(new Runnable() { @Override public void run() { WebView browser = new WebView(); WebEngine webEngine = browser.getEngine(); // This is a reference to a web page on the Waterloo web site webEngine.load("http://waterloo.sourceforge.net/devwebpage/MathJax/mathjax.html";); Scene s = new Scene(browser); jfx.setScene(s); } }); } }); } } This gives (Note: using JDK8 and Running from NetBeans 7.4): Executing C:\Users\malcolm\Documents\waterloo\Sources\Java\kcl-waterloo-jfx\dist\run1852659813\kcl-waterloo-jfx.jar using platform C:\Program Files\Java\jdk1.8.0/bin/java Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at javafx.embed.swing.JFXPanel.getInputMethodRequests(JFXPanel.java:744) at sun.awt.im.InputMethodAdapter.haveActiveClient(InputMethodAdapter.java:61) at sun.awt.windows.WInputMethod.activate(WInputMethod.java:285) at sun.awt.im.InputContext.activateInputMethod(InputContext.java:396) at sun.awt.im.InputContext.focusGained(InputContext.java:338) at sun.awt.im.InputContext.dispatchEvent(InputContext.java:245) at sun.awt.im.InputMethodContext.dispatchEvent(InputMethodContext.java:196) at java.awt.Component.dispatchEventImpl(Component.java:4817) at java.awt.Container.dispatchEventImpl(Container.java:2293) at java.awt.Component.dispatchEvent(Component.java:4707) at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954) at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:986) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:610) at java.awt.Component.dispatchEventImpl(Component.java:4756) at java.awt.Container.dispatchEventImpl(Container.java:2293) at java.awt.Component.dispatchEvent(Component.java:4707) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746) at java.awt.EventQueue.access$400(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:697) at java.awt.EventQueue$3.run(EventQueue.java:691) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86) at java.awt.EventQueue$4.run(EventQueue.java:719) at java.awt.EventQueue$4.run(EventQueue.java:717) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) at java.awt.EventQueue.dispatchEvent(EventQueue.java:716) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:220) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:135) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:123) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:119) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:111) at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
JFXPanel with WebView in JDK8
NOTE: THIS EXCEPTION OCCURS WITH JDK8, BUT NOT WITH JDK7 public class NewFXMain1 { public static void main(String[] args) throws InterruptedException, InvocationTargetException { EventQueue.invokeAndWait(new Runnable() { // Create the Swing components on the EDT @Override public void run() { JFrame f = new JFrame(); f.getContentPane().setPreferredSize(new Dimension(500, 500)); f.pack(); f.setVisible(true); final JFXPanel jfx = new JFXPanel(); f.getContentPane().add(jfx); // FX Thread Platform.runLater(new Runnable() { @Override public void run() { WebView browser = new WebView(); WebEngine webEngine = browser.getEngine(); // This is a reference to a web page on the Waterloo web site webEngine.load("http://waterloo.sourceforge.net/devwebpage/MathJax/mathjax.html";); Scene s = new Scene(browser); jfx.setScene(s); } }); } }); } } This gives (Note: using JDK8 and Running from NetBeans 7.4): Executing C:\Users\malcolm\Documents\waterloo\Sources\Java\kcl-waterloo-jfx\dist\run1852659813\kcl-waterloo-jfx.jar using platform C:\Program Files\Java\jdk1.8.0/bin/java Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at javafx.embed.swing.JFXPanel.getInputMethodRequests(JFXPanel.java:744) at sun.awt.im.InputMethodAdapter.haveActiveClient(InputMethodAdapter.java:61) at sun.awt.windows.WInputMethod.activate(WInputMethod.java:285) at sun.awt.im.InputContext.activateInputMethod(InputContext.java:396) at sun.awt.im.InputContext.focusGained(InputContext.java:338) at sun.awt.im.InputContext.dispatchEvent(InputContext.java:245) at sun.awt.im.InputMethodContext.dispatchEvent(InputMethodContext.java:196) at java.awt.Component.dispatchEventImpl(Component.java:4817) at java.awt.Container.dispatchEventImpl(Container.java:2293) at java.awt.Component.dispatchEvent(Component.java:4707) at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954) at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:986) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:610) at java.awt.Component.dispatchEventImpl(Component.java:4756) at java.awt.Container.dispatchEventImpl(Container.java:2293) at java.awt.Component.dispatchEvent(Component.java:4707) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746) at java.awt.EventQueue.access$400(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:697) at java.awt.EventQueue$3.run(EventQueue.java:691) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86) at java.awt.EventQueue$4.run(EventQueue.java:719) at java.awt.EventQueue$4.run(EventQueue.java:717) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) at java.awt.EventQueue.dispatchEvent(EventQueue.java:716) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:220) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:135) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:123) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:119) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:111) at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
Re: Use ScenePulseListener to avoid expensive recalculations?
You're right in that controls don't tend to use ScenePulseListener. This may be due to an oversight on our part, or just that our requirements differ (I don't honestly know). You're also right that it is important to batch up property changes and do them once per pulse, rather than as they come in. If this is not done you do indeed get a severe performance hit (I remember back in the day before I optimised many of the controls in this way, the performance impact of not doing this was staggering). The way I do it is simple: in places where I receive events from properties / bindings / listeners, where I know that there is potentially a lot of changes coming through, I create a boolean (e.g. 'refreshView' or somesuch). I then set this boolean to true, and in the appropriate place in the code (most commonly layoutChildren(), but sometimes in the computePref*() methods), I start the method with code like this: if (refreshView) { doExpensiveOperationThatShouldHappenOnlyOncePerPulse(); refreshView = false; } The reason why I sometimes use layoutChildren() and sometimes the computePref*() methods comes down to the (new) rule in JavaFX 8.0 that you can not change the children list of a node within the layoutChildren() method. Because of this, if I need to modify the children list, I put the above code in the computePref*() method. I hope that helps. -- Jonathan On 6/11/2013 3:58 a.m., John Hendrikx wrote: > Hi List, > > I'm considering using a ScenePulseListener to avoid expensive > recalculations when multiple bindings trigger an action. > > My problem is this: > > I like to build Views (Controls) that are dumb and expose properties > that can be manipulated by whatever is using the View. The View > listens to its own Properties and adjusts its state accordingly. Some > of these adjustments are related (like width + height) and can be > expensive when calculated immediately. So I would like to mark the > View as "invalid" and recalculate its state (if invalid) on the next > Pulse. > > My current use case I'm looking at is a View that wraps (amongst > others) a TreeView. The View exposes an ObservableList and a > BooleanProperty that decides whether the first level of the Tree > should be displayed as Tabs or as Nodes (which has an impact on what > Nodes actually are added to the TreeView, and which are added as > Tabs). User code will thus often set a new list of nodes + change the > boolean to show tabs or nodes. The View currently naively has > InvalidationListeners on both of these properties which cause > TreeNodes to be created after the first change... then discarded and > recreated after the second change by the user code, ie: > > view.nodesProperty().setAll(nodes); // Recreates all > Tabs/TreeNodes with the current value of expand top level, as we donot > know another change might be incoming... > view.expandTopLevelProperty().set(false); // Recreates all > Tabs/TreeNodes again if expand top level was changed... > > This specific problem might be done in a better way, but the point > remains, how do I avoid expensive calculations when multiple > properties get changed one after the other by the user code? I'm > assuming that JavaFX controls already avoid these kinds of things, and > I'd like to know whether using a ScenePulseListener is the way to go, > or that it can/should be done in a different way -- examining the code > for TreeView (and its superclasses), I couldn't find uses of > ScenePulseListener... > > --John > > > >
Re: CFV: New OpenJFX Committer: Rafi Tayar
Vote: Yes David Hill wrote: [ resending it with a corrected subject line. The dangers of reusing a form] I hereby nominate Rafi Tayar to OpenJFX Committer. Rafi is a member of JavaFX Embedded team at Oracle. Rafi's changes are in Glass/Lens support code: hg log -M -u "Rafi Tayar" An incomplete list of Rafi's commits and reviews is also available by the following link: http://hg.openjdk.java.net/openjfx/8/master/rt/log?rev=tayar Votes are due by Nov 19, 2013. Only current OpenJFX Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. For Lazy Consensus voting instructions, see [2]. Nomination to a project Committer is described in [3]. [1] http://openjdk.java.net/census#openjfx [2] http://openjdk.java.net/bylaws#lazy-consensus [3] http://openjdk.java.net/projects#project-committer Thanks, Dave
Re: Serializing JFXPanel with java.beans.XMLEncoder
Hi, Lidierth, could you provide the exception stack trace, please? It would help to understand whether you're over-optimistic or not :) Thanks, Artem On 11/5/2013 9:14 PM, Lidierth Malcolm wrote: When I add a JFXPanel to a Swing hierarchy that is then written to XML using java.beans.XMLEncoder, all is well as long as the JFXPanel is empty. When it has content, I see a NullPointerException. Before I dig into the origins, am I being over-optimistic? : should I expect java.beans.XMLEncoder to cope here? ML
Re: Fwd: CFV: New OpenJFX Committer: Rafi Tayar
Vote: YES On 11/5/2013 10:59 AM, David Hill wrote: [ resending it with a corrected subject line. The dangers of reusing a form] I hereby nominate Rafi Tayar to OpenJFX Committer. Rafi is a member of JavaFX Embedded team at Oracle. Rafi's changes are in Glass/Lens support code: hg log -M -u "Rafi Tayar" An incomplete list of Rafi's commits and reviews is also available by the following link: http://hg.openjdk.java.net/openjfx/8/master/rt/log?rev=tayar Votes are due by Nov 19, 2013. Only current OpenJFX Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. For Lazy Consensus voting instructions, see [2]. Nomination to a project Committer is described in [3]. [1] http://openjdk.java.net/census#openjfx [2] http://openjdk.java.net/bylaws#lazy-consensus [3] http://openjdk.java.net/projects#project-committer Thanks, Dave
Serializing JFXPanel with java.beans.XMLEncoder
When I add a JFXPanel to a Swing hierarchy that is then written to XML using java.beans.XMLEncoder, all is well as long as the JFXPanel is empty. When it has content, I see a NullPointerException. Before I dig into the origins, am I being over-optimistic? : should I expect java.beans.XMLEncoder to cope here? ML
Re: Fwd: CFV: New OpenJFX Committer: Rafi Tayar
Vote: YES -- best regards, Anthony On 11/05/2013 07:59 PM, David Hill wrote: [ resending it with a corrected subject line. The dangers of reusing a form] I hereby nominate Rafi Tayar to OpenJFX Committer. Rafi is a member of JavaFX Embedded team at Oracle. Rafi's changes are in Glass/Lens support code: hg log -M -u "Rafi Tayar" An incomplete list of Rafi's commits and reviews is also available by the following link: http://hg.openjdk.java.net/openjfx/8/master/rt/log?rev=tayar Votes are due by Nov 19, 2013. Only current OpenJFX Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. For Lazy Consensus voting instructions, see [2]. Nomination to a project Committer is described in [3]. [1] http://openjdk.java.net/census#openjfx [2] http://openjdk.java.net/bylaws#lazy-consensus [3] http://openjdk.java.net/projects#project-committer Thanks, Dave
hg: openjfx/8/graphics/rt: RT-33732 Lens:omap cursor report error when touch screen is conneced
Changeset: ac9c1d089a27 Author:Rafi Tayar Date: 2013-11-05 18:19 +0200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/ac9c1d089a27 RT-33732 Lens:omap cursor report error when touch screen is conneced Reviewed-by : dblaukop ! modules/graphics/src/main/native-glass/lens/lensport/omapCursor.c
Re: CFV: New OpenJFX Committer: Rafi Tayar
Vote: Yes Daniel On Nov 5, 2013, at 5:59 PM, David Hill wrote: > > [ resending it with a corrected subject line. The dangers of reusing a > form] > > I hereby nominate Rafi Tayar to OpenJFX Committer. > > Rafi is a member of JavaFX Embedded team at Oracle. Rafi's changes are in > Glass/Lens support code: > > hg log -M -u "Rafi Tayar" > > An incomplete list of Rafi's commits and reviews is also available by the > following link: > > http://hg.openjdk.java.net/openjfx/8/master/rt/log?rev=tayar > > Votes are due by Nov 19, 2013. > > Only current OpenJFX Committers [1] are eligible to vote on this nomination. > Votes must be cast in the open by replying to this mailing list. > > For Lazy Consensus voting instructions, see [2]. Nomination to a project > Committer is described in [3]. > > [1] http://openjdk.java.net/census#openjfx > > [2] http://openjdk.java.net/bylaws#lazy-consensus > > [3] http://openjdk.java.net/projects#project-committer > > Thanks, > > Dave > > >
Fwd: CFV: New OpenJFX Committer: Rafi Tayar
[ resending it with a corrected subject line. The dangers of reusing a form] I hereby nominate Rafi Tayar to OpenJFX Committer. Rafi is a member of JavaFX Embedded team at Oracle. Rafi's changes are in Glass/Lens support code: hg log -M -u "Rafi Tayar" An incomplete list of Rafi's commits and reviews is also available by the following link: http://hg.openjdk.java.net/openjfx/8/master/rt/log?rev=tayar Votes are due by Nov 19, 2013. Only current OpenJFX Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. For Lazy Consensus voting instructions, see [2]. Nomination to a project Committer is described in [3]. [1] http://openjdk.java.net/census#openjfx [2] http://openjdk.java.net/bylaws#lazy-consensus [3] http://openjdk.java.net/projects#project-committer Thanks, Dave
Re: Request for review: RT-28347 - DnD between two JFXPanels
Hi Artem, There's a lot of code changes and I'm not sure if I see the complete picture of how DnD works with embedded scenes (and not that I'm a great expert in DnD anyway.) It would be nice to have a short overview of the embedded DnD architecture (put in a class javadoc for, say, the EmbeddedSceneDnD class.) However, generally all the changes look good. I have a few questions: 1. src/main/java/com/sun/javafx/tk/quantum/EmbeddedSceneDnD.java 67 dragStartListener.dragStarted(fxDragSource, TransferMode.COPY); Why do we hard-code the transfer mode? 2. 94 // can be implemented using AWT nested event loop, however it just 95 // blocks the current thread. This is done by intention, because 99 T executeOnFXThread(final Callable r) { I'm not sure I'm happy with this method. Could you provide more details on where and how exactly it is used? Also, could you please convert this comment into a javadoc? 3. src/main/java/javafx/embed/swing/JFXPanel.java 799 public void setEmbeddedScene(EmbeddedSceneInterface embeddedScene) { 804 if (scenePeer == null) { 805 dnd.removeNotify(); 806 dnd = null; Above we manipulate the dnd object directly on the current thread, while at lines 817-818: 814 SwingUtilities.invokeLater(new Runnable() { 817 dnd = new SwingDnD(JFXPanel.this, scenePeer); 818 dnd.addNotify(); ... we do this on the EDT. This asymmetry looks a bit suspicious. Could you elaborate on that? 4. src/main/java/javafx/embed/swing/SwingDnD.java 183 // Don't call updateContents() from drop(). In AWT, it is possible to 184 // get data from the Transferable object in drop() only after the drop 185 // has been accepted. Here we first let FX handle drop(), then accep This looks like not the best solution from performance perspective. Also, I still don't understand why exactly we can't get the data when drop() occurs. Could you please explain this? -- best regards, Anthony On 11/01/2013 07:37 PM, Artem Ananiev wrote: Hi, could you take a look at the following fix, please: http://cr.openjdk.java.net/~art/javafx/RT-28347/ Some information about the changes is available in bug comments: https://javafx-jira.kenai.com/browse/RT-28347 Thanks, Artem
CFV: New OpenJFX Committer: Assaf Yavani
I hereby nominate Rafi Tayar to OpenJFX Committer. Rafi is a member of JavaFX Embedded team at Oracle. Rafi's changes are in Glass/Lens support code: hg log -M -u "Rafi Tayar" An incomplete list of Rafi's commits and reviews is also available by the following link: http://hg.openjdk.java.net/openjfx/8/master/rt/log?rev=tayar Votes are due by Nov 19, 2013. Only current OpenJFX Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. For Lazy Consensus voting instructions, see [2]. Nomination to a project Committer is described in [3]. [1] http://openjdk.java.net/census#openjfx [2] http://openjdk.java.net/bylaws#lazy-consensus [3] http://openjdk.java.net/projects#project-committer Thanks, Dave
hg: openjfx/8/graphics/rt: RT-33853/RT-33767 correct Lens creation of a second input event thread when nesting run loops
Changeset: 19f0180c475e Author:ddhill Date: 2013-11-05 08:41 -0500 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/19f0180c475e RT-33853/RT-33767 correct Lens creation of a second input event thread when nesting run loops Reviewed-by: dblaukopf, kselle, ayavnai ! modules/graphics/src/main/java/com/sun/glass/ui/lens/LensApplication.java
Use ScenePulseListener to avoid expensive recalculations?
Hi List, I'm considering using a ScenePulseListener to avoid expensive recalculations when multiple bindings trigger an action. My problem is this: I like to build Views (Controls) that are dumb and expose properties that can be manipulated by whatever is using the View. The View listens to its own Properties and adjusts its state accordingly. Some of these adjustments are related (like width + height) and can be expensive when calculated immediately. So I would like to mark the View as "invalid" and recalculate its state (if invalid) on the next Pulse. My current use case I'm looking at is a View that wraps (amongst others) a TreeView. The View exposes an ObservableList and a BooleanProperty that decides whether the first level of the Tree should be displayed as Tabs or as Nodes (which has an impact on what Nodes actually are added to the TreeView, and which are added as Tabs). User code will thus often set a new list of nodes + change the boolean to show tabs or nodes. The View currently naively has InvalidationListeners on both of these properties which cause TreeNodes to be created after the first change... then discarded and recreated after the second change by the user code, ie: view.nodesProperty().setAll(nodes); // Recreates all Tabs/TreeNodes with the current value of expand top level, as we donot know another change might be incoming... view.expandTopLevelProperty().set(false); // Recreates all Tabs/TreeNodes again if expand top level was changed... This specific problem might be done in a better way, but the point remains, how do I avoid expensive calculations when multiple properties get changed one after the other by the user code? I'm assuming that JavaFX controls already avoid these kinds of things, and I'd like to know whether using a ScenePulseListener is the way to go, or that it can/should be done in a different way -- examining the code for TreeView (and its superclasses), I couldn't find uses of ScenePulseListener... --John
hg: openjfx/8/graphics/rt: RT-14647: Incorrect display of JPEG images
Changeset: 270d5f4e10b2 Author:bae Date: 2013-11-05 12:54 + URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/270d5f4e10b2 RT-14647: Incorrect display of JPEG images Reviewed-by: kcr, prr ! modules/graphics/src/main/native-iio/jpegloader.c
hg: openjfx/8/graphics/rt: Tools for launcher, Maven part
Changeset: 89b46b3257cb Author:Milan Kubec Date: 2013-11-05 13:27 +0100 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/89b46b3257cb Tools for launcher, Maven part + tools/ios/Maven/NetBeansMobileCenter/pom.xml + tools/ios/Maven/NetBeansMobileCenter/src/main/java/com/sun/javafx/appmanager/BootstrapApplication.java + tools/ios/Maven/NetBeansMobileCenter/src/main/java/com/sun/javafx/appmanager/FxApplicationInstance.java + tools/ios/Maven/NetBeansMobileCenter/src/main/java/com/sun/javafx/appmanager/FxApplicationManager.java + tools/ios/Maven/NetBeansMobileCenter/src/main/java/com/sun/javafx/stage/WindowManager.java + tools/ios/Maven/NetBeansMobileCenter/src/main/java/org/netbeans/mobilecenter/BackgroundService.java + tools/ios/Maven/NetBeansMobileCenter/src/main/java/org/netbeans/mobilecenter/MobileCenter.java + tools/ios/Maven/NetBeansMobileCenter/src/main/java/org/netbeans/mobilecenter/Redeploy.java + tools/ios/Maven/ios-maven-plugin/pom.xml + tools/ios/Maven/ios-maven-plugin/src/main/java/org/netbeans/ibrwsr/maven/plugin/IPAddressMojo.java + tools/ios/Maven/ios-maven-plugin/src/main/scripts/ios.maven.plugin.build.xml + tools/ios/Maven/ios-maven-plugin/src/main/scripts/ios.maven.plugin.mojos.xml + tools/ios/Maven/ipack/pom.xml + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/blobs/Blob.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/blobs/SuperBlob.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/blobs/VirtualBlob.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/blobs/WrapperBlob.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/macho/CodeSignatureCommand.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/macho/LinkeditDataCommand.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/macho/MachoCommand.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/macho/MachoHeader.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/macho/SegmentCommand.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/macho/UnknownCommand.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/main/Main.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/packer/ExecutablePacker.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/packer/Packer.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/packer/ResourcePacker.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/resources/CodeResources.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/resources/ResourceRules.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/signature/CodeDirectoryBlob.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/signature/EmbeddedSignatureBlob.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/signature/Requirement.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/signature/RequirementBlob.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/signature/RequirementsBlob.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/signature/SpecialSlotConstants.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/signer/Signer.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/util/Base64.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/util/DataCopier.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/util/HashingOutputStream.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/util/LsbDataInputStream.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/util/LsbDataOutputStream.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/util/NullOutputStream.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/util/PageHashingOutputStream.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/util/ResourceDescriptor.java + tools/ios/Maven/ipack/src/main/java/com/oracle/ipack/util/Util.java + tools/ios/Maven/pom.xml + tools/ios/Maven/test-simple-ipa/pom.xml + tools/ios/Maven/test-simple-ipa/src/main/java/org/netbeans/ios/test/simple/ipa/Main.java + tools/ios/Maven/test-simple-ipa/src/test/java/org/netbeans/ios/test/simple/ipa/VerifyIPATest.java
hg: openjfx/8/graphics/rt: RT-33596 TableHeaders behave badly when horizontal scrollbar is visible
Changeset: 1c3b39a00d7e Author:Martin Sladecek Date: 2013-11-05 12:00 +0100 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/1c3b39a00d7e RT-33596 TableHeaders behave badly when horizontal scrollbar is visible Reviewed by: jgiles ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/NestedTableColumnHeader.java
hg: openjfx/8/graphics/rt: RT-34028 TableView selection sometimes gives null items in change events
Changeset: a562ec0058ee Author:Martin Sladecek Date: 2013-11-05 11:10 +0100 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/a562ec0058ee RT-34028 TableView selection sometimes gives null items in change events Reviewed-by: jgiles ! modules/controls/src/main/java/javafx/scene/control/TableView.java
hg: openjfx/8/graphics/rt: RT-33969: Mac: Input method composition does not suppress KeyTyped events
Changeset: 15f5f2930c25 Author:Petr Pchelko Date: 2013-11-05 12:30 +0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/15f5f2930c25 RT-33969: Mac: Input method composition does not suppress KeyTyped events Reviewed-by anthony, zvegintsev ! modules/graphics/src/main/native-glass/mac/GlassView3D.m