private static void doFsImport(RefdFile refdFile, FSRL fsrl, DomainFolder destFolderParam,
			ProgramManager programManager, PluginTool tool) {
		TaskLauncher.launchNonModal("Import File (FileSystem specific)", monitor -> {
			GFile gfile = refdFile.file;
			try {
				Object consumer = new Object();
				DomainFolder destFolder = (destFolderParam == null)
						? AppInfo.getActiveProject().getProjectData().getRootFolder()
						: destFolderParam;
				Program program =
					doFSImportHelper((GFileSystemProgramProvider) refdFile.fsRef.getFilesystem(),
						gfile, destFolder, consumer, monitor);
				if (program != null) {
					LoadResults<? extends DomainObject> loadResults = new LoadResults<>(program,
						program.getName(), destFolder.getPathname());
					boolean success = false;
					try {
						doPostImportProcessing(tool, programManager, fsrl, loadResults, consumer,
							"", monitor);
						success = true;
					}
					finally {
						if (!success) {
							program.release(consumer);
						}
					}
				}
			}
			catch (Exception e) {
				FSUtilities.displayException(ImporterUtilities.class, tool.getActiveWindow(),
					"Problem Encountered During Import",
					"Unable to import file " + refdFile.file.getName() +
						" using special purpose loader built into the " +
						gfile.getFilesystem().getDescription() + " filesystem.",
					e);
			}
		});
	}
Constructs a {@link ImporterDialog} and shows it in the swing thread.


@param fsrl the file system resource locater (can be a simple file or an element of
			a more complex file such as a zip file)
@param destinationFolder the default destination folder for the imported file. Can be null
@param suggestedPath optional string path that will automatically be pre-pended
			to the destination filename
@param tool the parent UI component
@param programManager optional {@link ProgramManager} instance to open the imported file in
@param monitor {@link TaskMonitor}
Ghidra/Features/Base/src/main/java/ghidra/plugin/importer/ImporterUtilities.java