Currently the API requires to pass the same object to enter and exit how would 
your code work with multiple nested event loops?

Tom

Von meinem iPhone gesendet

> Am 13.11.2013 um 16:35 schrieb Stephen F Northover 
> <steve.x.northo...@oracle.com>:
> 
> What is the difference?
> 
> Dialog d = new Dialog() {
>   public void onClose() {
>      Platform.exitNestedEventLoop();
>   }
> }
> Platform.enterNestedEventLoop();
> 
> 
> Steve
> 
>> On 2013-11-13 5:28 AM, Tom Schindl wrote:
>> What bothers me with the API as it is today is that I have call
>> enter/exit, I would find it more easy to work with an API like:
>> 
>> -------8<-------
>> WaitCondition c = new WaitCondition();
>> Dialog d = new Dialog() {
>>    public void onClose() {
>>       c.release();
>>    }
>> }
>> Platform.spinNestedEventLoop(c);
>> ------->8-------
>> 
>> Tom
>> 
>>> On 13.11.13 11:18, Artem Ananiev wrote:
>>> I also think it's a good request for public API. In AWT/Swing, people
>>> had been using ugly workarounds with modal dialogs just to enter a
>>> nested event loop, until public java.awt API was finally provided:
>>> 
>>> http://docs.oracle.com/javase/7/docs/api/java/awt/SecondaryLoop.html
>>> 
>>> http://docs.oracle.com/javase/7/docs/api/java/awt/EventQueue.html#createSecondaryLoop()
>>> 
>>> 
>>> The same is here in JavaFX: unless Toolkit.enter/exitNestedEventLoop()
>>> is exposed at javafx.* level, people will have to workaround it by using
>>> Stage, or calling into com.sun.javafx.*, which is not good.
>>> 
>>> Thanks,
>>> 
>>> Artem
>>> 
>>>> On 11/13/2013 10:15 AM, John Hendrikx wrote:
>>>> Hi List,
>>>> 
>>>> Any chance that Toolkit.getToolkit().enterNestedEventLoop() will in the
>>>> future become public API?
>>>> 
>>>> I'm currently using this to create Dialogs based on a Pane to avoid
>>>> creating Stages (which have the nice show and showAndWait
>>>> functionality).  I duplicated this functionality in a Pane, allowing me
>>>> to create Dialogs on top of existing Scenes without creating a Stage,
>>>> and it makes use of the enterNestedEventLoop and exitNestedEventLoop
>>>> functions in com.sun.javafx.tk.Toolkit.
>>>> 
>>>> The reason I'm avoiding the Stages is because they donot play well with
>>>> an application that never has the mouse or keyboard focus (my
>>>> application is fully remote controlled) -- creating a Stage, even one to
>>>> just show a Dialog, will cause Windows to try and attract the user's
>>>> attention by flashing its taskbar button (for which I filed a
>>>> bug/feature request) and this is undesired.
>>>> 
>>>> Regards,
>>>> John
>>>> 
>>>> (Here's a part of the DialogPane to show and close it:)
>>>> 
>>>>    public R showDialog(Scene scene, boolean synchronous) {
>>>>      this.synchronous = synchronous;
>>>>      this.scene = scene;
>>>>      this.oldFocusOwner = scene.getFocusOwner();
>>>> 
>>>>      Parent root = scene.getRoot();
>>>> 
>>>>      stackPane.getChildren().add(root);
>>>>      stackPane.getChildren().add(this);
>>>> 
>>>>      scene.setRoot(stackPane);
>>>> 
>>>>      requestFocus();
>>>> 
>>>>      if(synchronous) {
>>>>        return (R)Toolkit.getToolkit().enterNestedEventLoop(this);
>>>>      }
>>>> 
>>>>      return null;
>>>>    }
>>>> 
>>>>    public void close() {
>>>>      Parent originalRoot = (Parent)stackPane.getChildren().remove(0);
>>>> 
>>>>      scene.setRoot(originalRoot);
>>>>      scene = null;
>>>> 
>>>>      if(oldFocusOwner != null) {
>>>>        oldFocusOwner.requestFocus();
>>>>      }
>>>> 
>>>>      if(synchronous) {
>>>>        Toolkit.getToolkit().exitNestedEventLoop(this, getResult());
>>>>      }
>>>>    }
> 

Reply via email to