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)
>                       .columns(int)
>                       .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)`
> 
> @aivanov-jdk has demonstrated custom test UI positioning in this PR: 
> **[8294156: Demo positioning of multiple test 
> windows](https://github.com/openjdk/jdk/pull/15721)**

> 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.

Update PR description with the PR link related to JDK-8317116 in case anyone 
wants to explore custom positioning of multiple UIs.

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

PR Comment: https://git.openjdk.org/jdk/pull/21023#issuecomment-2354024837

Reply via email to