FilePath WriteFile (IProgressMonitor monitor, FilePath file, object item, FileFormat format)
{
if (format == null) {
if (defaultFormat.CanWrite (item))
format = defaultFormat;
else {
FileFormat[] formats = formatManager.GetFileFormatsForObject (item);
format = formats.Length > 0 ? formats [0] : null;
}
if (format == null)
return null;
file = format.GetValidFileName (item, file);
}
FileService.RequestFileEdit (file);
format.Format.WriteFile (file, item, monitor);
return file;
}