public static void showImportDialog(PluginTool tool, ProgramManager programManager, FSRL fsrl,
			DomainFolder destinationFolder, String suggestedPath, TaskMonitor monitor) {

		Objects.requireNonNull(monitor);

		RefdFile referencedFile = null;
		try {
			referencedFile = fsService.getRefdFile(fsrl, monitor);

			FSRL fullFsrl = fsService.getFullyQualifiedFSRL(fsrl, monitor);
			boolean isFSContainer = fsService.isFileFilesystemContainer(fullFsrl, monitor);
			if (referencedFile.file.getLength() == 0) {
				Msg.showError(ImporterUtilities.class, null, "File is empty",
					"File " + fsrl.getPath() + " is empty, nothing to import");
				return;
			}

			GFileSystem fs = referencedFile.fsRef.getFilesystem();
			if (fs instanceof GFileSystemProgramProvider) {
				doFsImport(referencedFile, fullFsrl, destinationFolder, programManager, tool);
				return;
			}

			if (!isFSContainer) {
				// normal file; do a single-file import
				showImportSingleFileDialog(fullFsrl, destinationFolder, suggestedPath, tool,
					programManager, monitor);
				return;
			}

			// file is a container, ask user to pick single import, batch import or fs browser
			importFromContainer(tool, programManager, destinationFolder, suggestedPath, monitor,
				referencedFile, fullFsrl);
		}
		catch (IOException ioe) {
			String message = ioe.getMessage();
			Msg.showError(ImporterUtilities.class, null, "Import Error", "Unable to import file " +
				fsrl.getName() + (message != null ? ("\n\nCause: " + message) : ""), ioe);
		}
		catch (CancelledException e) {
			Msg.info(ImporterUtilities.class, "Show Import Dialog canceled");
		}
		finally {
			close(referencedFile);
		}
	}
Displays the appropriate import dialog for the specified {@link FSRL file}.
<p>
If the file is a container of other files, a batch import dialog will be used,
otherwise the normal single file import dialog will be shown.]
<p>
If you are not in a monitored task, then call 
{@link #showImportDialog(PluginTool, ProgramManager, FSRL, DomainFolder, String)}.

@param tool {@link PluginTool} will be used as the parent tool for dialogs
@param programManager optional {@link ProgramManager} instance to use to open imported 
			binaries with, or null
@param fsrl {@link FSRL} of the file to import
@param destinationFolder {@link DomainFolder} destination folder where the imported file
			will default to.  (the user will be able to choose a different location)
@param suggestedPath optional string path that will automatically be pre-pended
			to the destination filename
@param monitor the task monitor to use for monitoring; cannot be null
Ghidra/Features/Base/src/main/java/ghidra/plugin/importer/ImporterUtilities.java