@Override
	public String getHelpInfo() {
		StringBuilder buffer = new StringBuilder();
		buffer.append("   ACTION:    ").append(getOwner()).append(" - ").append(getName());
		buffer.append('\n');

		// menu path
		if (menuBarData != null) {
			buffer.append("        MENU PATH:           ")
					.append(menuBarData.getMenuPathAsString());
			buffer.append('\n');
			buffer.append("        MENU GROUP:        ").append(menuBarData.getMenuGroup());
			buffer.append('\n');

			String menuSubGroup = menuBarData.getMenuSubGroup();
			if (menuSubGroup != null) {
				buffer.append("        MENU SUB-GROUP:        ").append(menuSubGroup);
				buffer.append('\n');
			}

			String parentGroup = menuBarData.getParentMenuGroup();
			if (parentGroup != null) {
				buffer.append("        PARENT GROUP:         ").append(parentGroup);
				buffer.append('\n');
			}

			String iconName = getIconName(menuBarData.getMenuIcon());
			if (iconName != null) {
				buffer.append("        MENU ICON:     ").append(iconName);
				buffer.append('\n');
			}

			String iconId = getIconId(menuBarData.getMenuIcon());
			if (iconId != null) {
				buffer.append("        MENU ICON ID:     ").append(iconId);
				buffer.append('\n');
			}
		}

		// popup menu path
		if (popupMenuData != null) {
			buffer.append("        POPUP PATH:         ")
					.append(popupMenuData.getMenuPathAsString());
			buffer.append('\n');
			buffer.append("        POPUP GROUP:      ").append(popupMenuData.getMenuGroup());
			buffer.append('\n');

			String parentGroup = popupMenuData.getParentMenuGroup();
			if (parentGroup != null) {
				buffer.append("        PARENT GROUP:         ").append(parentGroup);
				buffer.append('\n');
			}

			String menuSubGroup = popupMenuData.getMenuSubGroup();
			if (menuSubGroup != MenuData.NO_SUBGROUP) {
				buffer.append("        POPUP SUB-GROUP:         ").append(menuSubGroup);
				buffer.append('\n');
			}

			String iconName = getIconName(popupMenuData.getMenuIcon());
			if (iconName != null) {
				buffer.append("        POPUP ICON:     ").append(iconName);
				buffer.append('\n');
			}

			String iconId = getIconId(popupMenuData.getMenuIcon());
			if (iconId != null) {
				buffer.append("        POPUP ICON ID:     ").append(iconId);
				buffer.append('\n');
			}
		}

		if (toolBarData != null) {
			buffer.append("        TOOLBAR GROUP:  ").append(toolBarData.getToolBarGroup());
			buffer.append('\n');

			String iconName = getIconName(toolBarData.getIcon());
			if (iconName != null) {
				buffer.append("        TOOLBAR ICON:     ").append(iconName);
				buffer.append('\n');
			}

			String iconId = getIconId(toolBarData.getIcon());
			if (iconId != null) {
				buffer.append("        TOOLBAR ICON ID:     ").append(iconId);
				buffer.append('\n');
			}
		}

		KeyStroke keyStroke = getKeyBinding();
		if (keyStroke != null) {
			buffer.append("        KEYBINDING:          ").append(keyStroke);
			buffer.append('\n');
		}

		MouseBinding mouseBinding = getMouseBinding();
		if (mouseBinding != null) {
			buffer.append("        MOUSE BINDING:       ").append(mouseBinding);
		}

		String inception = getInceptionInformation();
		if (inception != null) {
			buffer.append("\n    \n");
			buffer.append("   CREATED AT: ").append(inception);
			buffer.append("\n    ");
		}
		else {
			Msg.debug(this, "No inception info");
		}

		return buffer.toString();
	}
Cleans up any resources used by the action.
Ghidra/Framework/Docking/src/main/java/docking/action/DockingAction.java