test_class.file: api/src/test/java/edu/wpi/first/shuffleboard/api/util/FxUtilsTest.java
test_class.identifier: FxUtilsTest
test_class.superclass: extends UtilityClassTest<FxUtils>
test_case.body: @Test
    public void menuItemTest() {
      CompletableFuture<Boolean> future = new CompletableFuture<>();
      MenuItem menuItem = FxUtils.menuItem("Test item", event -> future.complete(true));
  
      menuItem.fire();
      assertTimeoutPreemptively(Duration.ofSeconds(5), future::join);
    }
test_case.class_method_signature: FxUtilsTest.menuItemTest()
test_case.full_signature: @Test public void menuItemTest()
test_case.identifier: menuItemTest
test_case.invocations: menuItem complete fire assertTimeoutPreemptively ofSeconds
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void menuItemTest()
focal_class.declarator: FX_CONTROLLER_KEY = new Object()
focal_class.modifier: private static final
focal_class.original_string: private static final Object FX_CONTROLLER_KEY = new Object();
focal_class.type: Object
focal_class.var_name: FX_CONTROLLER_KEY
focal_class.file: api/src/main/java/edu/wpi/first/shuffleboard/api/util/FxUtils.java
focal_class.identifier: FxUtils
focal_class.class_method_signature: FxUtils.FxUtils()
focal_class.full_signature: private  FxUtils()
focal_class.identifier: FxUtils
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  FxUtils()
focal_class.class_method_signature: FxUtils.runOnFxThread(Runnable task)
focal_class.full_signature: public static CompletableFuture<Boolean> runOnFxThread(Runnable task)
focal_class.identifier: runOnFxThread
focal_class.modifiers: public static
focal_class.parameters: (Runnable task)
focal_class.return: CompletableFuture<Boolean>
focal_class.signature: CompletableFuture<Boolean> runOnFxThread(Runnable task)
focal_class.class_method_signature: FxUtils.bind(Property<T> property,
                                      ObservableMap<K, V> map,
                                      K key,
                                      Function<V, T> converter)
focal_class.full_signature: public static void bind(Property<T> property,
                                      ObservableMap<K, V> map,
                                      K key,
                                      Function<V, T> converter)
focal_class.identifier: bind
focal_class.modifiers: public static
focal_class.parameters: (Property<T> property,
                                      ObservableMap<K, V> map,
                                      K key,
                                      Function<V, T> converter)
focal_class.return: void
focal_class.signature: void bind(Property<T> property,
                                      ObservableMap<K, V> map,
                                      K key,
                                      Function<V, T> converter)
focal_class.class_method_signature: FxUtils.bind(Property<T> property, DataSource<T> dataSource)
focal_class.full_signature: public static void bind(Property<T> property, DataSource<T> dataSource)
focal_class.identifier: bind
focal_class.modifiers: public static
focal_class.parameters: (Property<T> property, DataSource<T> dataSource)
focal_class.return: void
focal_class.signature: void bind(Property<T> property, DataSource<T> dataSource)
focal_class.class_method_signature: FxUtils.bind(ObservableList<? super T> list,
                                ObservableValue<? extends List<? extends T>> observable)
focal_class.full_signature: public static void bind(ObservableList<? super T> list,
                                ObservableValue<? extends List<? extends T>> observable)
focal_class.identifier: bind
focal_class.modifiers: public static
focal_class.parameters: (ObservableList<? super T> list,
                                ObservableValue<? extends List<? extends T>> observable)
focal_class.return: void
focal_class.signature: void bind(ObservableList<? super T> list,
                                ObservableValue<? extends List<? extends T>> observable)
focal_class.class_method_signature: FxUtils.bindBidirectional(Property<T> property, DataSource<T> dataSource)
focal_class.full_signature: public static void bindBidirectional(Property<T> property, DataSource<T> dataSource)
focal_class.identifier: bindBidirectional
focal_class.modifiers: public static
focal_class.parameters: (Property<T> property, DataSource<T> dataSource)
focal_class.return: void
focal_class.signature: void bindBidirectional(Property<T> property, DataSource<T> dataSource)
focal_class.class_method_signature: FxUtils.when(Property<Boolean> condition)
focal_class.full_signature: public static When when(Property<Boolean> condition)
focal_class.identifier: when
focal_class.modifiers: public static
focal_class.parameters: (Property<Boolean> condition)
focal_class.return: When
focal_class.signature: When when(Property<Boolean> condition)
focal_class.class_method_signature: FxUtils.toHexString(Color color)
focal_class.full_signature: public static String toHexString(Color color)
focal_class.identifier: toHexString
focal_class.modifiers: public static
focal_class.parameters: (Color color)
focal_class.return: String
focal_class.signature: String toHexString(Color color)
focal_class.class_method_signature: FxUtils.menuItem(String text, EventHandler<ActionEvent> eventHandler)
focal_class.full_signature: public static MenuItem menuItem(String text, EventHandler<ActionEvent> eventHandler)
focal_class.identifier: menuItem
focal_class.modifiers: public static
focal_class.parameters: (String text, EventHandler<ActionEvent> eventHandler)
focal_class.return: MenuItem
focal_class.signature: MenuItem menuItem(String text, EventHandler<ActionEvent> eventHandler)
focal_class.class_method_signature: FxUtils.menuLabel(String text)
focal_class.full_signature: public static MenuItem menuLabel(String text)
focal_class.identifier: menuLabel
focal_class.modifiers: public static
focal_class.parameters: (String text)
focal_class.return: MenuItem
focal_class.signature: MenuItem menuLabel(String text)
focal_class.class_method_signature: FxUtils.getLabel(Node node)
focal_class.full_signature: public static Optional<Label> getLabel(Node node)
focal_class.identifier: getLabel
focal_class.modifiers: public static
focal_class.parameters: (Node node)
focal_class.return: Optional<Label>
focal_class.signature: Optional<Label> getLabel(Node node)
focal_class.class_method_signature: FxUtils.setController(Node node, Object controller)
focal_class.full_signature: public static void setController(Node node, Object controller)
focal_class.identifier: setController
focal_class.modifiers: public static
focal_class.parameters: (Node node, Object controller)
focal_class.return: void
focal_class.signature: void setController(Node node, Object controller)
focal_class.class_method_signature: FxUtils.getController(Node node)
focal_class.full_signature: public static T getController(Node node)
focal_class.identifier: getController
focal_class.modifiers: public static
focal_class.parameters: (Node node)
focal_class.return: T
focal_class.signature: T getController(Node node)
focal_class.class_method_signature: FxUtils.load(Class<?> controllerClass)
focal_class.full_signature: public static N load(Class<?> controllerClass)
focal_class.identifier: load
focal_class.modifiers: public static
focal_class.parameters: (Class<?> controllerClass)
focal_class.return: N
focal_class.signature: N load(Class<?> controllerClass)
focal_class.class_method_signature: FxUtils.requestClose(Window window)
focal_class.full_signature: public static void requestClose(Window window)
focal_class.identifier: requestClose
focal_class.modifiers: public static
focal_class.parameters: (Window window)
focal_class.return: void
focal_class.signature: void requestClose(Window window)
focal_method.body: public static MenuItem menuItem(String text, EventHandler<ActionEvent> eventHandler) {
      MenuItem menuItem = new MenuItem(text);
      menuItem.setOnAction(eventHandler);
      return menuItem;
    }
focal_method.class_method_signature: FxUtils.menuItem(String text, EventHandler<ActionEvent> eventHandler)
focal_method.full_signature: public static MenuItem menuItem(String text, EventHandler<ActionEvent> eventHandler)
focal_method.identifier: menuItem
focal_method.invocations: setOnAction
focal_method.modifiers: public static
focal_method.parameters: (String text, EventHandler<ActionEvent> eventHandler)
focal_method.return: MenuItem
focal_method.signature: MenuItem menuItem(String text, EventHandler<ActionEvent> eventHandler)