API REVIEW request for RT-19783: Provide an option to allow modal windows to be blocking

Jeff McDonald deep.blue.6802 at gmail.com
Tue Apr 10 16:39:48 PDT 2012


Hmmmm ... maybe we're talking semantics here. What does Modality mean in
JavaFX? What does "blocking" mean in a JavaFX?

Cheers,
Jeff

On Tue, Apr 10, 2012 at 5:21 PM, Kevin Rushforth <kevin.rushforth at oracle.com
> wrote:

> **
> The problem with showAsModal is that this method is independent of the
> modality attribute on Stage, so the name would be confusing.
>
> You can have a modal window (a window whose modality is
> Modality.WINDOW_MODAL or Modality.APPLICATION_MODAL), without having it
> block the caller. Conversely, you can have a non-modal window
> (Modality.NONE) that blocks if you call this method.
>
> I am open to a better name for this method, but I don't think it should
> have modal in the name.
>
> -- Kevin
>
>
>
> Jeff McDonald wrote:
>
> Just my 2 cents ... showAsModal or showModal sounds better. When I see
> showAndWait my first question before I read the docs is "what am I waiting
> for?"  showAsModal or showModal  seem more self-documenting than
> showAndWait.
>
>  Cheers,
> Jeff
>
> On Tue, Apr 10, 2012 at 2:45 PM, Richard Bair <richard.bair at oracle.com>wrote:
>
>> Looks good to me, if nobody objects by tomorrow I'll mark this as
>> approved.
>>
>> Richard
>>
>> On Apr 10, 2012, at 1:43 PM, Kevin Rushforth wrote:
>>
>> > JIRA:  http://javafx-jira.kenai.com/browse/RT-19783
>> >
>>  > We have had several requests for a way to block the caller while a
>> (modal) dialog is shown. The show() method on a Stage is specified to
>> return to the caller immediately regardless of the modality of a stage.
>> This is a good semantic for many applications, but complicates the logic
>> for other applications which don't want to proceed until the dialog is
>> dismissed. It is also needed internally to implement an Alert class (see
>> RT-12643 for example). Swing dialog, for example, JOptionPane, work by
>> blocking the caller until the dialog is dismissed meaning that Swing
>> application programmers are already familiar with that model.
>> >
>> > Our proposal for JavaFX 2.2 is to add a new method on Stage,
>> showAndWait(), which will block the caller until the stage is hidden. Note
>> that while this is primarily useful for modal Stages, there is nothing in
>> the API that restricts it to such.
>> >
>>  > The proposed method and javadoc are described in the JIRA, but since
>> it is so short, I will also list it here:
>>  >
>> >     /**
>> >      * Show the stage and wait for it to be closed before returning to
>> the
>> >      * caller. This must be called on the FX Application thread. The
>> stage
>> >      * must not already be visible prior to calling this method. This
>> must not
>> >      * be called on the primary stage.
>> >      *
>> >      * @throws IllegalStateException if this method is called on a
>> thread
>> >      *     other than the JavaFX Application Thread.
>> >      * @throws IllegalStateException if this method is called on the
>> >      *     primary stage.
>> >      * @throws IllegalStateException if this stage is already showing.
>> >      */
>> >     public void showAndWait();
>> >
>> > -- Kevin
>> >
>>
>>
>


More information about the openjfx-dev mailing list