I use firePulse() in GUI test code. I'm using TestFX (v3) for testing. Is there a way to ensure model updates are reflected in the scene without using firePulse()? Consider something like this:
... // TestFX starts us on the main thread. Maybe I'm using it wrong? CountDownLatch latch = new CountDownLatch(1); Platform.runLater(() -> { // Add "list-item-name" to an empty list that's used as the model for // a ListView. Toolkit.getToolkit().firePulse(); latch.countDown(); }); try { latch.await(1, TimeUnit.SECONDS); } catch (InterruptedException e) { throw new RuntimeException(e); } // TestFX runs this on the application thread. drag("list-item-name").to("trash"); assertTrue(list.isEmpty); ... In a case like the above, firePulse() is used to ensure a node (ListCell) for "list-item-name" is added to the scene before continuing with the test. Otherwise the drag(...) command will throw an exception because it can't find the node for "list-item-name" (it doesn't exist yet). I don't actually needto call firePulse(). I just need a way to know the scene is up to date with a re-validated model. Is there a better way of accomplishing that right now? Ryan On Wed, Sep 23, 2015 at 5:49 PM, Jonathan Giles <jonathan.gi...@oracle.com> wrote: > Hi all, > > Today I am keen to get your help on understanding use of the > Toolkit.getToolkit().firePulse() private API. If you could spare a few > minutes to grep your source directory for any usage of 'firePulse', and > email me your findings, that would be really interesting. > > As a gentle motivational tool I'll conclude by saying that, surprisingly, > this private API is barely used inside the openjfx production code. If you > look at the openjfx unit tests, it is used massively. The question is - how > much is this being used by other community members. If the answer is 'not > much' or less, then this private API may not be made public in JDK 9. Your > feedback therefore is critical! > > Thanks, > -- Jonathan >