public static void setGraphic(@Nonnull MenuItem control, @Nullable Node graphic) { requireNonNull(control, ERROR_CONTROL_NULL); runInsideUIThread(() -> { if (graphic != null) { control.graphicProperty().set(graphic); } else { control.graphicProperty().set(null); } }); }
public static void setGraphic(@Nonnull MenuItem control, @Nullable Image graphic) { requireNonNull(control, ERROR_CONTROL_NULL); runInsideUIThread(() -> { if (graphic != null) { Node graphicNode = new ImageView(graphic); control.graphicProperty().set(graphicNode); } else { control.graphicProperty().set(null); } }); }
public static void setIcon(@Nonnull MenuItem control, @Nonnull String iconUrl) { requireNonNull(control, ERROR_CONTROL_NULL); requireNonBlank(iconUrl, ERROR_ICON_BLANK); Node graphicNode = resolveIcon(iconUrl); if (graphicNode != null) { runInsideUIThread(() -> control.graphicProperty().set(graphicNode)); } }
private static void unconfigure(final MenuItem menuItem) { if (menuItem == null || !(menuItem.getOnAction() instanceof Action)) { return; } Action action = (Action) menuItem.getOnAction(); menuItem.styleProperty().unbind(); menuItem.textProperty().unbind(); menuItem.disableProperty().unbind(); menuItem.acceleratorProperty().unbind(); menuItem.graphicProperty().unbind(); action.getProperties().removeListener(new MenuItemPropertiesMapChangeListener<>(menuItem, action)); if (menuItem instanceof RadioMenuItem) { ((RadioMenuItem) menuItem).selectedProperty().unbindBidirectional(action.selectedProperty()); } else if (menuItem instanceof CheckMenuItem) { ((CheckMenuItem) menuItem).selectedProperty().unbindBidirectional(action.selectedProperty()); } menuItem.setOnAction(null); }
menuItem.acceleratorProperty().bind(action.acceleratorProperty()); menuItem.graphicProperty().bind(new ObjectBinding<Node>() { { bind(action.graphicProperty()); }