@Override
			public Component getTableCellRendererComponent(GTableCellRenderingData data) {

				JLabel label = (JLabel) super.getTableCellRendererComponent(data);
				label.getAccessibleContext().setAccessibleName("Path Data");
				Object value = data.getValue();

				String pathName = (String) value;
				pathName = (pathName == null ? "" : pathName.trim());

				if (pathName.length() == 0 || pathName.startsWith("#")) {
					return label;
				}

				boolean fileExists = true;
				File file = new File(pathName);
				fileExists = file.exists();

				// file not found directly, see if one of the include paths will find the file
				if (!fileExists) {
					fileExists = doesFileExist(pathName, fileExists);
				}

				label.setText(pathName.toString());
				if (!fileExists) {
					label.setForeground(getErrorForegroundColor(data.isSelected()));
				}
				return label;
			}
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