On Tue, 17 Sep 2024 17:28:26 GMT, Harshitha Onkar <hon...@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 as 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)** > > Harshitha Onkar has updated the pull request incrementally with one > additional commit since the last revision: > > doc update > I think that this can be improved by adding some predefined positionTestUI > functions, like in the #15721 (we can borrow them from it). For example, > consider adding `PositionWindowsLib.java`(or maybe a nested public static > class for `PassFailJFrame` to avoid extra `@build` clause), which has > functions something like > > ```java > .positionTestUI(PositionWindowsLib::positionHH) // aka > TwoWindowsHH.positionTestUI > .positionTestUI(PositionWindowsLib::positionHV) // aka > TwoWindowsHV.positionTestUI > ... > ``` @azvegint Valid suggestion and re-usability of common layouts is better than having to repeat it in the test code. This will be added as next step to PassFailJFrame iterative improvement as @aivanov-jdk suggested. ------------- PR Comment: https://git.openjdk.org/jdk/pull/21023#issuecomment-2356507943