Module org.testfx

Class FxToolkit


  • public final class FxToolkit
    extends Object
    Responsible for setup and cleanup of JavaFX fixtures that need the JavaFX thread.

    Overview

    This class methods cover three different kinds of fixtures:

    1. Container fixtures, which are registered as registeredStage.
    2. Content fixtures, which are attached to the registered registeredStage.
    3. Individual fixtures, which do not require a registeredStage.
    Additionally it keeps an internal context.

    1. Container Fixtures

    They can be registered as registeredStage and provide a top-level container, i.e. Stages.

    The primary stage can be registered as registeredStage using registerPrimaryStage(). This call is mandatory before any other JavaFX fixture can be created.

    Other stages can be registered as registeredStage using registerStage(Supplier<Stage>).

    2. Content Fixtures

    They can be attached to the registeredStage.

    Either constructed by calling an Application.start(), by supplying Scenes, Parents, or by consuming a Stage.

    Use: setupStage(Consumer<Stage>), setupApplication(Class<? extends Application>), setupScene(Supplier<Scene>) or setupSceneRoot(Supplier<Parent>)

    3. Individual Fixtures

    To setup individual Stages, Scenes or Nodes use setupFixture(Runnable) and setupFixture(Callable).

    Internal Context

    Is internally responsible for handle the registered Stage for attachments, handle timeouts, provide the Application for the Toolkit launch and execute the setup in the JavaFX thread. The primary Stage is constructed by the platform.

    • Method Summary

      Modifier and Type Method Description
      static void cleanupApplication​(javafx.application.Application application)
      Performs the clean up of the application.
      static void cleanupStages()
      Runs on the JavaFX Application Thread: Hides all windows returned from JavaVersionAdapter.getWindows() and returns once finished.
      static void hideStage()
      Runs on the JavaFX Application Thread: Hides the registered stage via Window.hide() and returns once finished.
      static boolean isFXApplicationThreadRunning()
      Detects if the JavaFx Application Thread is currently running.
      static javafx.stage.Stage registerPrimaryStage()
      Sets up the PrimaryStageApplication to use in tests, prevents it from shutting down when the last window is closed, and returns the Stage from Application.start(Stage).
      static javafx.stage.Stage registerStage​(Supplier<javafx.stage.Stage> stageSupplier)
      Runs the stageSupplier on the JavaFX Application Thread, registers the supplied stage, and returns that stage.
      static javafx.application.Application setupApplication​(Class<? extends javafx.application.Application> applicationClass, String... applicationArgs)
      Sets up the given application with its given arguments and returns that application once finished.
      static javafx.application.Application setupApplication​(Supplier<javafx.application.Application> applicationSupplier)
      Sets up the supplied application and returns that application once finished.
      static void setupFixture​(Runnable runnable)
      Runs the given runnable on the JavaFX Application Thread and returns once finished.
      static <T> T setupFixture​(Callable<T> callable)
      Runs the given callable on the JavaFX Application Thread and returns once finished.
      static javafx.scene.Scene setupScene​(Supplier<javafx.scene.Scene> sceneSupplier)
      Runs the sceneSupplier on the JavaFX Application Thread, sets the registered stage's scene to the supplied scene, and returns the supplied scene once finished.
      static javafx.scene.Parent setupSceneRoot​(Supplier<javafx.scene.Parent> sceneRootSupplier)
      Runs the sceneRootSupplier on the JavaFX Application Thread, sets the registered stage's scene's root node to the supplied root node, and returns the supplied root node once finished.
      static javafx.stage.Stage setupStage​(Consumer<javafx.stage.Stage> stageConsumer)
      Sets up the registered stage by passing it into the given stageConsumer on the JavaFX Application Thread and returns the stage once finished.
      static void showStage()
      Runs on the JavaFX Application Thread: Shows the registered stage via Stage.show(), moves it to the front via Stage.toFront(), and returns once finished.
      static FxToolkitContext toolkitContext()
      Returns the internal context.