RFR: 8317116: Provide layouts for multiple test UI in PassFailJFrame [v2]

Alexander Zvegintsev azvegint at openjdk.org
Fri Sep 27 15:01:35 UTC 2024


On Fri, 27 Sep 2024 14:53:21 GMT, Alexey Ivanov <aivanov at openjdk.org> wrote:

>>> You can do it by using the InstructionUI interface that's passed to you when you implement a custom layout.
>> 
>> But it cannot be combined with the newly added methods like:
>> 
>> 
>>         PassFailJFrame.builder()
>>                 .instructions(INSTRUCTIONS)
>>                 .rows(15)
>>                 .columns(30)
>>                 .testUI(() -> WindowCreator.createTestWindows(3))
>>                 .positionTestUI((testWindows, instructionUI) -> instructionUI.setLocation(200, 200))
>>                 // or add a new method like
>>                 //.instructionFrameLocation(200, 200)
>>                 .positionTestUIRightRow()
>>                 .build()
>>                 .awaitAndCheck();
>> 
>> 
>> The idea is to make it very simple without having to implement the `positionTestUI` interface (I am not talking about exposing the frame, see the snippet above).
>> Like place the instruction frame here, and layout other windows relative to it.
>> 
>> But I agree it is a rare case.
>
> No, not directly.
> 
> But you can combine it with explicit call to `WindowLayouts`:
> 
> 
> .positionTestUI((testWindows, instructionUI) -> {
>     instructionUI.setLocation(200, 200);
>     WindowLayouts.rightOneRow(testWindows, instructionUI);
> })
> 
> 
> So, this (rare) scenario still doesn't require you to reimplement everything.

Oh, I hadn't paid attention to the fact that these methods are public. I guess it is a good solution to my request.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/21207#discussion_r1778758261


More information about the client-libs-dev mailing list