Hi, Denis.
So probably current implementation under discussion can be dropped and replaced
by the swing dialog-based?
On 31/10/2018 03:08, Denis Fokin wrote:
Hi Manajit, Sergey,
we use a swing dialog-based implementation in our product. I believe the
current terms and behaviour could be improved.
There are some collision in terms. To be a document-modal in AWT means to block "all windows from the
same document except those from its child hierarchy". The MacOS X sheet, according to the Apple guide
[1], " is a modal dialog that’s attached to a particular window—usually a document—and prevents further
interaction with the window". So looks like from the UIX experience it should be a "Window
Modal".
Basically, if the sheet is shown on a window and it blocks the owner of the window, it is
hard to understand why the owner is irresponsive. Any actions like switching to a
"space" with the blocker, reordering windows look awful from the user
perspective.
1 -
https://developer.apple.com/design/human-interface-guidelines/macos/windows-and-views/sheets/
Thank you,
Denis.
On Wed, Oct 31, 2018 at 4:15 AM Sergey Bylokhov <sergey.bylok...@oracle.com
<mailto:sergey.bylok...@oracle.com>> wrote:
Hello,
Can somebody explain how the dialog which have the "documentModalSheet"
property should behave?
I thought this dialogs should looks like this:
https://stackoverflow.com/questions/13777067/swing-native-look-and-feel-for-jdialog-in-macos
But when I run the manual testcase which is attached to the fix, it looks
differently. It shows the undecorated dialog in the top/left corner, which is
not attached to the window, and which cannot be moved.
For example in the code below, should the dialog be inside the frame(I
guess this can be checked by the automated test)?
===>
Window frame = new JFrame();
frame.setSize(300,300);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
JDialog dialog =
new JDialog(frame, null,
Dialog.ModalityType.DOCUMENT_MODAL);
dialog.getRootPane().putClientProperty("apple.awt.documentModalSheet",
Boolean.TRUE);
dialog.add(new JLabel("Hello world!"));
dialog.pack();
dialog.setVisible(true);
===>
On 30/10/2018 04:16, Krishna Addepalli wrote:
> +1
>
> Krishna
>
> -----Original Message-----
> From: Dmitry Markov
> Sent: Friday, October 26, 2018 4:57 PM
> To: Manajit Halder <manajit.hal...@oracle.com
<mailto:manajit.hal...@oracle.com>>
> Cc: awt-dev@openjdk.java.net <mailto:awt-dev@openjdk.java.net>
> Subject: Re: <AWT Dev> <AWT dev>[12] Review request for JDK-8208543:
[macos] Support for apple.awt.documentModalSheet incomplete
>
> Hi Manajit,
>
> Looks good to me.
>
> Thanks,
> Dmitry
>
>> On 26 Oct 2018, at 11:02, Manajit Halder <manajit.hal...@oracle.com
<mailto:manajit.hal...@oracle.com>> wrote:
>>
>> Hi Dmitry,
>>
>> I have corrected the test case, now it fails if timeout takes place.
Please review the webrev:
>> http://cr.openjdk.java.net/~mhalder/8208543/webrev.02/
<http://cr.openjdk.java.net/%7Emhalder/8208543/webrev.02/>
>>
>> Regards,
>> Manajit
>>
>>
>>
>> On 25/10/18 7:18 PM, Dmitry Markov wrote:
>>> Hi Manajit,
>>>
>>> Currently the test is marked as ‘passed’ if timeout takes place. I
think we should indicate an error or mark it as ‘failed’ in such case.
>>>
>>> Thanks,
>>> Dmitry
>>>
>>>> On 25 Oct 2018, at 11:35, Manajit Halder <manajit.hal...@oracle.com
<mailto:manajit.hal...@oracle.com>> wrote:
>>>>
>>>> Hi Dmitry,
>>>>
>>>> Thanks for your comments. I have addressed all your review comments
in the new webrev.
>>>> Additional changes:
>>>> NSDocModalWindowMask is deprecated and hence changed it to
NSWindowStyleMaskDocModalWindow.
>>>> Window is created a Panel, required for style mask
NSWindowStyleMaskDocModalWindow.
>>>> Test case was modified to add a case for the failed scenario "Dialog
without owner".
>>>>
>>>> Please review the modified webrev:
>>>> http://cr.openjdk.java.net/~mhalder/8208543/webrev.01/
<http://cr.openjdk.java.net/%7Emhalder/8208543/webrev.01/>
>>>>
>>>> Regards,
>>>> Manajit
>>>>
>>>> On 13/10/18 12:14 AM, Dmitry Markov wrote:
>>>>> Hi Manajit,
>>>>>
>>>>> There is an inconsistency between the proposed implementation and
Apple JDK: if the property applied to the dialog which does not have an owner on the build
with your changes it appears as sheet, but on Apple JDK it appears as a window.
>>>>>
>>>>> I think every frame/dialog inside dispose() method in the regression
test should be checked for null-value before usage.
>>>>>
>>>>> I noticed that the regression test uses Timer API (see
createAndShowModalSheet() method). Shall we stop/cancel the timer when “Pass”/“Fail” button is
press?
>>>>>
>>>>> I suppose it is better to declare createAndShowModalSheet() and
createAndShowInstructionFrame() as static. In such case the creation of class instance may be
omitted.
>>>>>
>>>>> Thanks,
>>>>> Dmitry
>>>>>
>>>>>> On 12 Oct 2018, at 05:36, Manajit Halder <manajit.hal...@oracle.com
<mailto:manajit.hal...@oracle.com>> wrote:
>>>>>>
>>>>>> Hi Dmitry,
>>>>>>
>>>>>> Could you please review this fix related to Modal sheet on Mac OS?
>>>>>>
>>>>>> Regards,
>>>>>> Manajit
>>>>>>
>>>>>>
>>>>>> On 10/10/18 3:33 PM, Manajit Halder wrote:
>>>>>>> Hi All,
>>>>>>>
>>>>>>> Kindly review the fix for JDK12.
>>>>>>>
>>>>>>> Bug:
>>>>>>> https://bugs.openjdk.java.net/browse/JDK-8208543
>>>>>>>
>>>>>>>
>>>>>>> Webrev:
>>>>>>> http://cr.openjdk.java.net/~mhalder/8208543/webrev.00/
<http://cr.openjdk.java.net/%7Emhalder/8208543/webrev.00/>
>>>>>>>
>>>>>>> Problem:
>>>>>>> "apple.awt.documentModalSheet" was getting set on the Dialog while
its creations, but appearance of Dialog was not changing.
>>>>>>>
>>>>>>> Fix:
>>>>>>> Setting "apple.awt.documentModalSheet" on Window after its
creation.
>>>>>>>
>>>>>>> Regards,
>>>>>> Manajit
>>
>
--
Best regards, Sergey.
--
Best regards, Sergey.