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; }