RFR: 8294156: Allow PassFailJFrame.Builder to create test UI [v2]

Alexey Ivanov aivanov at openjdk.org
Wed Sep 13 18:54:39 UTC 2023


On Tue, 12 Sep 2023 19:51:45 GMT, Alexey Ivanov <aivanov at openjdk.org> wrote:

>>> However, to test this case I'll need a (simple) scenario where multiple windows are created.
>> 
>> For example `test/jdk/java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_2.java` is not converted to use PassFailJFrame, but shows instruction window and two test windows.
>> 
>> For these test windows, we can safely reduce the width a lot and arrange them in a row.
>> ![image](https://github.com/openjdk/jdk/assets/77687766/9c7f3548-fa0a-4e1f-ad87-a7af7561064b)
>> 
>> Probably we could add some other sophisticated layouts later, e.g.:
>> ![image](https://github.com/openjdk/jdk/assets/77687766/a9da5948-9f52-420e-8f15-55818fe8f255)
>> 
>> But this kind of layout seems to be beyond the scope of this PR, I just wish we hadn't missed the option to add multiple windows at once.
>
> But laying out the test windows is really a problem. With one window, the framework already provides a way to position the window, it is applied to the primary test window.
> 
> Before showing other windows, they need to be positioned.
> 
> There could be a callback so that the test developer is able to position the windows. In the future, we may add simple layouts to perform this task automatically.
> 
>> But this kind of layout seems to be beyond the scope of this PR, I just wish we hadn't missed the option to add multiple windows at once.
> 
> I agree, it's better to implement it right away. I didn't think about it as viable solution because of positioning issues.

It is possible to lay out test windows like this:

![TwoWindowsHH: Two test windows are positioned horizontally to the left of instructions window](https://github.com/openjdk/jdk/assets/70774172/e51b136e-3f2a-4c0e-842c-d8e2e221c8cd)

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/15665#discussion_r1324935857


More information about the client-libs-dev mailing list