On Mon, 16 Sep 2024 21:38:36 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: > > removed errorenous check 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 .positionTestUI(PositionWindowsLib::positionHH) // aka TwoWindowsHH.positionTestUI .positionTestUI(PositionWindowsLib::positionHV) // aka TwoWindowsHV.positionTestUI ... It'll be easier for a test developer to just take a ready-to-use function (which in most cases will be the same across multiple tests), and it'll be easier for the test reviewer because there will be less code to review. ------------- PR Review: https://git.openjdk.org/jdk/pull/21023#pullrequestreview-2308800489