protected JPopupMenu showPopup() {

		if (popupIsShowing()) {
			popupMenu.setVisible(false);
			return null;
		}

		//
		// showPopup() will handled 2 cases when this action's button is clicked:
		// 1) show a popup if it was not showing
		// 2) hide the popup if it was showing
		//
		// Case 2 requires timestamps.  Java will close the popup as the button is clicked. This
		// means that when we are told to show the popup as the result of a click, the popup will
		// never be showing.  To work around this, we track the elapsed time since last click.  If
		// the period is too short, then we assume Java closed the popup when the click happened
		//and thus we should ignore it.
		//
		long elapsedTime = System.currentTimeMillis() - popupLastClosedTime;
		if (elapsedTime < 500) { // somewhat arbitrary time window
			return null;
		}

		JPopupMenu menu = doCreateMenu();

		menu.addPopupMenuListener(popupListener);
		Point p = getPopupPoint();
		menu.show(this, p.x, p.y);
		return menu;
	}
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/MultipleActionDockingToolbarButton.java