RFR: JDK-8340210 : Add positionTestUI() to PassFailJFrame.Builder
Harshitha Onkar
honkar at openjdk.org
Mon Sep 16 21:03:04 UTC 2024
On Mon, 16 Sep 2024 19:11:59 GMT, Harshitha Onkar <honkar at openjdk.org> 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
More information about the client-libs-dev
mailing list