--- old/modules/javafx.controls/src/main/java/javafx/scene/control/MenuButton.java 2017-09-14 15:51:28.900287133 +0530 +++ new/modules/javafx.controls/src/main/java/javafx/scene/control/MenuButton.java 2017-09-14 15:51:28.732287133 +0530 @@ -32,6 +32,7 @@ import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.event.Event; +import javafx.event.EventHandler; import javafx.event.EventType; import javafx.geometry.Side; import javafx.scene.AccessibleAction; @@ -269,6 +270,95 @@ return popupSide; } + /** + * Called just prior to the {@code ContextMenu} being shown. + * @return the on showing property + * @since 10 + */ + public final ObjectProperty> onShowingProperty() { return onShowing; } + public final void setOnShowing(EventHandler value) { onShowingProperty().set(value); } + public final EventHandler getOnShowing() { return onShowingProperty().get(); } + private ObjectProperty> onShowing = new ObjectPropertyBase>() { + @Override protected void invalidated() { + setEventHandler(ON_SHOWING, get()); + } + + @Override public Object getBean() { + return MenuButton.this; + } + + @Override public String getName() { + return "onShowing"; + } + }; + + /** + * Called just after the {@code ContextMenu} is shown. + * @return the on shown property + * @since 10 + */ + public final ObjectProperty> onShownProperty() { return onShown; } + public final void setOnShown(EventHandler value) { onShownProperty().set(value); } + public final EventHandler getOnShown() { return onShownProperty().get(); } + private ObjectProperty> onShown = new ObjectPropertyBase>() { + @Override protected void invalidated() { + setEventHandler(ON_SHOWN, get()); + } + + @Override public Object getBean() { + return MenuButton.this; + } + + @Override public String getName() { + return "onShown"; + } + }; + + /** + * Called just prior to the {@code ContextMenu} being hidden. + * @return the on hiding property + * @since 10 + */ + public final ObjectProperty> onHidingProperty() { return onHiding; } + public final void setOnHiding(EventHandler value) { onHidingProperty().set(value); } + public final EventHandler getOnHiding() { return onHidingProperty().get(); } + private ObjectProperty> onHiding = new ObjectPropertyBase>() { + @Override protected void invalidated() { + setEventHandler(ON_HIDING, get()); + } + + @Override public Object getBean() { + return MenuButton.this; + } + + @Override public String getName() { + return "onHiding"; + } + }; + + /** + * Called just after the {@code ContextMenu} has been hidden. + * @return the on hidden property + * @since 10 + */ + public final ObjectProperty> onHiddenProperty() { return onHidden; } + public final void setOnHidden(EventHandler value) { onHiddenProperty().set(value); } + public final EventHandler getOnHidden() { return onHiddenProperty().get(); } + private ObjectProperty> onHidden = new ObjectPropertyBase>() { + @Override protected void invalidated() { + setEventHandler(ON_HIDDEN, get()); + } + + @Override public Object getBean() { + return MenuButton.this; + } + + @Override public String getName() { + return "onHidden"; + } + }; + + /*************************************************************************** * * * Control methods *