Exemple #1
0
 public static void SaveAs(GuiDocument guiDocument, string filePath, IFileTypeProvider provider)
 {
     using (var fileStream = File.OpenWrite(filePath))
     {
         provider.Serialize(guiDocument, fileStream);
     }
 }
Exemple #2
0
        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);
        }
Exemple #3
0
        /// <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);
        }
Exemple #4
0
        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;
        }