MenuPopups automatically close when the user clicks outside of their bounds, unless the user clicks on an "affiliate" component. This concept is somewhat contrived and imposes assumptions that we don't really need to make. The affiliate concept should be eliminated, and the responsibility for closing the popup should be delegated elsewhere.
When opened as a context menu, the menu popup should automatically close itself. This may become the responsibility of the ApplicationContext class, which now opens menu popups via the MenuHandler interface. When opened by a menu item, menu bar item, or menu button, it will be the responsibility of those components to close the popup.