API REVIEW request for RT-19783: Provide an option to allow modal windows to be blocking
Jeff McDonald
deep.blue.6802 at gmail.com
Wed Apr 11 10:31:29 PDT 2012
I disagree with your conclusion, but I respect your decision. Thank you for
considering my suggestions.
Cheers,
Jeff
On Wed, Apr 11, 2012 at 11:26 AM, Kevin Rushforth <
kevin.rushforth at oracle.com> wrote:
> Both. What you propose would be a much bigger design change, and I am not
> sold on the need anyway. Also, there is a strong desire to not break
> compatibility.
>
>
> -- Kevin
>
>
> Jeff McDonald wrote:
>
>> Seriously? So backwards compatibility is a requirement of JavaFX at this
>> point? Or are you saying that the benefit of the proposal doesn't outweigh
>> breaking backwards compatibility?
>>
>> On Wed, Apr 11, 2012 at 11:19 AM, Kevin Rushforth <
>> kevin.rushforth at oracle.com> wrote:
>>
>>
>>
>>> This will break the backwards compat of a stage so I think it is too
>>>> late for such an API.
>>>>
>>>>
>>>>
>>> Right. We need to keep the existing API unmodified. Adding a single
>>> method
>>> is the easiest way to compatibly extend the API and keep the ideas of
>>> modality separate from whether or not the caller is blocked.
>>>
>>>
>>> -- Kevin
>>>
>>>
>>> Tom Schindl wrote:
>>>
>>>
>>>
>>>> Am 11.04.12 18:58, schrieb Jeff McDonald:
>>>>
>>>>
>>>>
>>>>
>>>>> I put together a truth table of sorts to help me visualize the possible
>>>>> states. It's an ASCII chart so it needs to be viewed using a monspaced
>>>>> font
>>>>> for everything to line up.
>>>>>
>>>>>
>>>>> +-----------------------------****---+------------------------**--**
>>>>> --------------+---------------****----------------------------**-+
>>>>> | Modality.NONE | Modality.WINDOW
>>>>> | Modality.APPLICATION |
>>>>> | initModality(Modality.NONE) | initModality(Modality.WINDOW_****
>>>>> MODAL)
>>>>> | initModality(Modality.WINDOW_****MODAL) |
>>>>> +-------------------+---------****-----------------------+----**--**
>>>>> ------------------------------****----+-----------------------**--**
>>>>>
>>>>> -------------------+
>>>>> | un-blocked | Supported (This is typical) | Supported
>>>>> | Supported |
>>>>> | show() | 1. initModality(Modality.NONE) | 1.
>>>>> initModality(Modality.WINDOW_****MODAL) | 1.
>>>>> initModality(Modality.WINDOW_****MODAL) |
>>>>>
>>>>> | | 2. show() | 2. show()
>>>>> | 2. show() |
>>>>> | | or just |
>>>>> | |
>>>>> | | 1. show() |
>>>>> | |
>>>>> +-------------------+---------****-----------------------+----**--**
>>>>> ------------------------------****----+-----------------------**--**
>>>>>
>>>>> -------------------+
>>>>> | blocked | Unsupported | Supported
>>>>> | Supported |
>>>>> | showAndWait() | Throws exception | 1.
>>>>> initModality(Modality.WINDOW_****MODAL) | 1.
>>>>> initModality(Modality.****APPLICATION_MODAL)|
>>>>>
>>>>> | (proposed) | | 2. showAndWait()
>>>>> | 2. showAndWait() |
>>>>> +-------------------+---------****-----------------------+----**--**
>>>>> ------------------------------****----+-----------------------**--**
>>>>>
>>>>> -------------------+
>>>>>
>>>>> I propose the following changes:
>>>>> 1. show() remains the same as it is now.
>>>>> 2. add showWindowModal(boolean wait)
>>>>> 3. add showAppModal(boolean wait)
>>>>> 4. remove initModality()
>>>>> 5. Add Tom's description of "modal" and "blocking" to the JavaDocs. His
>>>>> wording is clear and concise.
>>>>>
>>>>> The justification: The API is clearer and easier to understand because
>>>>> only
>>>>> one method call is required to execute the desired behavior instead of
>>>>> two
>>>>> method calls. The second benefit is that a single method call
>>>>> eliminates
>>>>> the potential of calling the initModality and show() / showAndWait()
>>>>> methods in the incorrect order.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>> This will break the backwards compat of a stage so I think it is too
>>>> late for such an API.
>>>>
>>>> Tom
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
More information about the openjfx-dev
mailing list