void refresh() {
		/* this is called during script manager initial config
		 * before any other access to script info, so we expect to
		 * create a new ScriptInfo with the next call.
		 */
		ScriptInfo info = infoManager.getScriptInfo(script);
		KeyStroke stroke = info.getKeyBinding();
		if (!isUserDefinedKeyBinding) {
			setKeyBindingData(stroke == null ? null : new KeyBindingData(stroke));
		}

		Icon icon = info.getToolBarImage(false);
		if (icon != null) {
			ToolBarData data = getToolBarData();
			if (data != null) {
				data.setIcon(icon);
			}
			else {
				setToolBarData(new ToolBarData(icon, SCRIPT_GROUP));
			}
		}
		setDescription(info.getDescription());
		MenuData menuData = getMenuBarData();
		String[] oldMenuPath = menuData == null ? null : menuData.getMenuPath();
		String[] newMenuPath = info.getMenuPath();

		if (SystemUtilities.isArrayEqual(oldMenuPath, newMenuPath)) {
			return;
		}

		plugin.getTool().removeAction(this);
		if (newMenuPath != null && newMenuPath.length > 0) {
			MenuData data = getMenuBarData();
			if (data != null) {
				data.setMenuPath(newMenuPath);
			}
			else {
				setMenuBarData(new MenuData(newMenuPath, icon, SCRIPT_GROUP));
			}
		}
		else {
			setMenuBarData(null);
		}
		plugin.getTool().addAction(this);
	}
Signals that the keybinding value has been set by the user from the GUI (used for persistence)
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/script/ScriptAction.java