On Mon, 16 Sep 2024 19:11:59 GMT, Harshitha Onkar <[email protected]> wrote:
> `positionTestUI()` option is added to PassFailJFrame (PFJ).
>
> With this change multiple UI can be positioned using the PFJ new builder
> pattern by providing implementation for the Functional Interface
> `PositionWindows.positionTestWindows(List<? extends Window>
> testWindows,InstructionUI instructionUI)` in the test code.
>
> Since the position implementation is done in test code it allows flexibility
> as the user can add custom positioning code per test UI requirements.
>
> Usage:
>
> PassFailJFrame.builder()
> .title("Test Instructions")
> .instructions(INSTRUCTIONS)
> .rows((int) INSTRUCTIONS.lines().count() + 3)
> .columns(30)
> .testUI(<TestClass::createAndShowUI>)
> .positionTestUI(<TestClass::positionMultiTestUI>)
> .build()
> .awaitAndCheck();
>
> where positionMultiTestUI is the implementation for positioning of multiple
> test windows for `PositionWindows.positionTestWindows(List<? extends Window>
> testWindows,InstructionUI instructionUI)`
>
> Few examples of custom testUI positioning implementation using positionTestUI
> are demonstrated here:
> **[8294156: Demo positioning of multiple test
> windows](https://github.com/openjdk/jdk/pull/15721)**
Looks good to me.
It was previously discussed in #15665 when I added `testUI`. The interface and
the field in the builder were defined but there was no way to pass an
implementation of `PositionWindows`.
> Since the position implementation is done in test code it allows flexibility
> as the user can add custom positioning code per test UI requirements.
There's an enhancement
[JDK-8317116](https://bugs.openjdk.org/browse/JDK-8317116): _Provide layouts
for multiple test UI in `PassFailJFrame`_ to provide a set of common layouts
for tests to re-use. It would avoid code duplication for the most common
layouts like columns or rows to the right or bottom of the instruction UI.
-------------
Marked as reviewed by aivanov (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/21023#pullrequestreview-2307616880