private void createActions() {
		saveAction = new DockingAction("Save Profile", plugin.getName()) {
			@Override
			public void actionPerformed(ActionContext context) {
				save((ComboBoxItem) comboBox.getSelectedItem());
			}

			@Override
			public boolean isEnabledForContext(ActionContext context) {
				ComboBoxItem item = (ComboBoxItem) comboBox.getSelectedItem();
				return item.isChanged && item.isUserDefined;
			}
		};
		Icon icon = Icons.SAVE_ICON;
		String saveGroup = "save";
		saveAction.setMenuBarData(new MenuData(new String[] { "Save" }, icon, saveGroup));
		saveAction.setToolBarData(new ToolBarData(icon, saveGroup));
		saveAction.setDescription("Save profile");
		addAction(saveAction);

		saveAsAction = new DockingAction("Save Profile As", plugin.getName()) {
			@Override
			public void actionPerformed(ActionContext context) {
				saveAs((ComboBoxItem) comboBox.getSelectedItem());
			}

			@Override
			public boolean isEnabledForContext(ActionContext context) {
				return true;
			}
		};
		icon = Icons.SAVE_AS_ICON;
		saveAsAction.setMenuBarData(new MenuData(new String[] { "Save As..." }, icon, saveGroup));
		saveAsAction.setToolBarData(new ToolBarData(icon, saveGroup));
		saveAsAction.setDescription("Save profile to new name");
		addAction(saveAsAction);

		clearAction = new DockingAction("Clear Profile", plugin.getName()) {
			@Override
			public void actionPerformed(ActionContext context) {
				clear();
			}

			@Override
			public boolean isEnabledForContext(ActionContext context) {
				return true;
			}
		};

		icon = Icons.CLEAR_ICON;
		String clearGroup = "clear";
		clearAction
				.setMenuBarData(new MenuData(new String[] { "Clear Profile" }, icon, clearGroup));
		clearAction.setToolBarData(new ToolBarData(icon, clearGroup));
		clearAction.setDescription("Clear profile");
		addAction(clearAction);

		refreshAction = new DockingAction("Refresh User Profiles", plugin.getName()) {
			@Override
			public void actionPerformed(ActionContext context) {
				refresh();
			}

			@Override
			public boolean isEnabledForContext(ActionContext context) {
				return true;
			}
		};
		icon = Icons.REFRESH_ICON;
		String refreshGroup = "refresh";
		refreshAction.setMenuBarData(new MenuData(new String[] { "Refresh" }, icon, refreshGroup));
		refreshAction.setToolBarData(new ToolBarData(icon, refreshGroup));
		refreshAction.setDescription("Refresh list of user profiles");

		addAction(refreshAction);

		deleteAction = new DockingAction("Delete Profile", plugin.getName()) {
			@Override
			public void actionPerformed(ActionContext context) {
				delete();
			}

			@Override
			public boolean isEnabledForContext(ActionContext context) {
				ComboBoxItem item = (ComboBoxItem) comboBox.getSelectedItem();
				return item.isUserDefined;
			}
		};
		icon = Icons.DELETE_ICON;
		String deleteGroup = "Xdelete";
		deleteAction.setMenuBarData(new MenuData(new String[] { "Delete" }, icon, deleteGroup));
		deleteAction.setToolBarData(new ToolBarData(icon, deleteGroup));
		deleteAction.setDescription("Delete profile");
		addAction(deleteAction);
	}
Dialog that shows files used for parsing C header files. The profile has a list of source header
files to parse, followed by parse options (compiler directives). Ghidra supplies a Windows
profile by default in core/parserprofiles. The user can do "save as" on this default profile to
create new profiles that will be written to the user's {@code <home>/userprofiles} directory. The
CParserPlugin creates this directory if it doesn't exist.
<p>
The data types resulting from the parse operation can either be added to the data type manager in
the current program, or written to an archive data file.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/cparser/ParseDialog.java