public static void SaveAs(GuiDocument guiDocument, string filePath, IFileTypeProvider provider) { using (var fileStream = File.OpenWrite(filePath)) { provider.Serialize(guiDocument, fileStream); } }
public GuiDocument Open(string filePath) { var reader = new FileReaderVersion1(); reader.Read(filePath); GuiDocument guiDocument = null; var embededSchema = reader.GetEmbededToolDefinition(); if (embededSchema != null) { guiDocument = new GuiDocument(); guiDocument.ToolInfo = new ToolInfo(embededSchema); } else { if (!File.Exists(reader.GuiFileDocument.ToolDefinition.GuiSchemaRef)) { throw new FileNotFoundException("Cannot find Gui Definition file '" + reader.GuiFileDocument.ToolDefinition.GuiSchemaRef + "'.", reader.GuiFileDocument.ToolDefinition.GuiSchemaRef); } int index = NewAll(reader.GuiFileDocument.ToolDefinition.GuiSchemaRef); guiDocument = FindByExecutableName(reader.GuiFileDocument.ToolDefinition.Name); if (guiDocument == null) { throw new InvalidDataException( String.Format("The Gui Definition file '{0}' does not contain a definition for executable '{1}'.", reader.GuiFileDocument.ToolDefinition.GuiSchemaRef, reader.GuiFileDocument.ToolDefinition.Name)); } } if (guiDocument != null) { if (!String.IsNullOrEmpty(reader.GuiFileDocument.ToolDefinition.Location)) { // set customized tool location guiDocument.ToolInfo.ToolExecutablePath = reader.GuiFileDocument.ToolDefinition.Location; } guiDocument.DocumentFilePath = filePath; reader.ApplyTo(guiDocument); guiDocument.IsChanged = false; } return(guiDocument); }
/// <summary> /// Creates and adds a new <see cref="GuiDocument"/> to the <see cref="Documents"/> collection. /// </summary> /// <param name="guiSchema">Can be null.</param> /// <param name="tool">The tool executable definition.</param> /// <returns>Never returns null.</returns> public GuiDocument AddDocument(GuiSchema guiSchema, Executable tool) { var factory = new BindingModelFactoryForSchemaVersion1(); var doc = new GuiDocument(); doc.GuiSchema = guiSchema; doc.ToolInfo = new ToolInfo(guiSchema, tool); doc.ToolBindingModel = factory.Create(tool); Documents.Add(doc); doc.IsChanged = false; return(doc); }
public static void Save(GuiDocument guiDocument) { if (guiDocument == null) { return; } if (String.IsNullOrEmpty(guiDocument.DocumentFilePath)) { return; } using (var fileStream = File.OpenWrite(guiDocument.DocumentFilePath)) { var writer = new FileWriterVersion1(fileStream); writer.Write(guiDocument); } guiDocument.IsChanged = false; }