@Override
		public void mousePressed(MouseEvent e) {

			Point clickPoint = e.getPoint();
			if (isEnabled() && arrowButtonRegion.contains(clickPoint)) {

				// Unusual Code Alert: we need to put this call in an invoke later, since Java
				// will update the focused window after we click.  We need the focus to be
				// correct before we show, since our menu is built with actions based upon the
				// focused component.
				Swing.runLater(() -> popupMenu = showPopup());

				e.consume();
				model.setPressed(false);
				model.setArmed(false);
				model.setRollover(false);
				return;
			}

			for (MouseListener listener : parentListeners) {
				listener.mousePressed(e);
			}
		}
Show a popup containing all the actions below the button

@return the popup menu that was shown
Ghidra/Framework/Docking/src/main/java/docking/menu/MultiStateButton.java