@Override
	public void propertyChange(PropertyChangeEvent e) {
		if (menuItem == null) {
			return;
		}

		String name = e.getPropertyName();
		if (isPopup && name.equals(DockingActionIf.POPUP_MENU_DATA_PROPERTY)) {
			updateMenuItem();
		}
		else if (!isPopup && name.equals(DockingActionIf.MENUBAR_DATA_PROPERTY)) {
			updateMenuItem();
		}
		else if (name.equals(DockingActionIf.ENABLEMENT_PROPERTY)) {
			menuItem.setEnabled(((Boolean) e.getNewValue()).booleanValue());
			menuItem.repaint();
		}
		else if (name.equals(DockingActionIf.KEYBINDING_DATA_PROPERTY)) {
			KeyBindingData newData = (KeyBindingData) e.getNewValue();
			menuItem.setAccelerator(newData == null ? null : newData.getKeyBinding());
			menuItem.revalidate();
		}
		else if (name.equals(ToggleDockingActionIf.SELECTED_STATE_PROPERTY)) {
			menuItem.setSelected(((Boolean) e.getNewValue()).booleanValue());
			menuItem.revalidate();
		}
	}
Class to manage a JMenuItem for an action.  Handles property changes in the action
and makes the corresponding change in the menuItem.
Ghidra/Framework/Docking/src/main/java/docking/menu/MenuItemManager.java