Ejemplo n.º 1
0
        /// <summary>
        /// Save the given document that is subordinate to this document.
        /// </summary>
        /// <param name="subordinateDocument"></param>
        /// <param name="fileName"></param>
        protected override void SaveSubordinateFile(DslShell::DocData subordinateDocument, string fileName)
        {
            // In this case, the only subordinate is the diagram.
            DslModeling::SerializationResult serializationResult = new DslModeling::SerializationResult();

            global::System.Collections.Generic.IList <DslDiagrams::PresentationElement> diagrams = DslDiagrams::PresentationViewsSubject.GetPresentation(this.RootElement);
            if (diagrams.Count > 0)
            {
                global::pelsoft.FWK_Dsl.ClassDiagram diagram = diagrams[0] as global::pelsoft.FWK_Dsl.ClassDiagram;
                if (diagram != null)
                {
                    try
                    {
                        this.SuspendFileChangeNotification(fileName);

                        global::pelsoft.FWK_Dsl.FWK_DslSerializationHelper.Instance.SaveDiagram(serializationResult, diagram, fileName, this.Encoding, false);
                    }
                    finally
                    {
                        this.ResumeFileChangeNotification(fileName);
                    }
                }
            }
            // Report serialization messages.
            this.SuspendErrorListRefresh();
            try
            {
                foreach (DslModeling::SerializationMessage serializationMessage in serializationResult)
                {
                    this.AddErrorListItem(new DslShell::SerializationErrorListItem(this.ServiceProvider, serializationMessage));
                }
            }
            finally
            {
                this.ResumeErrorListRefresh();
            }

            if (!serializationResult.Failed)
            {
                // Notify the Running Document Table that the subordinate has been saved
                if (this.ServiceProvider != null)
                {
                    VSShellInterop::IVsRunningDocumentTable rdt = (VSShellInterop.IVsRunningDocumentTable) this.ServiceProvider.GetService(typeof(VSShellInterop::IVsRunningDocumentTable));
                    if (rdt != null && this.diagramDocumentLockHolder != null && this.diagramDocumentLockHolder.SubordinateDocData != null)
                    {
                        global::Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(rdt.NotifyOnAfterSave(this.diagramDocumentLockHolder.SubordinateDocData.Cookie));
                    }
                }
            }
            else
            {
                // Save failed.
                throw new global::System.InvalidOperationException(global::pelsoft.FWK_Dsl.FWK_DslDomainModel.SingletonResourceManager.GetString("CannotSaveDocument"));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Save the given document that is subordinate to this document.
        /// </summary>
        /// <param name="subordinateDocument"></param>
        /// <param name="fileName"></param>
        protected override void SaveSubordinateFile(DslShell::DocData subordinateDocument, string fileName)
        {
            // In this case, the only subordinate is the diagram.
            DslModeling::SerializationResult serializationResult = new DslModeling::SerializationResult();

            global::System.Collections.Generic.IList <DslDiagrams::PresentationElement> diagrams = DslDiagrams::PresentationViewsSubject.GetPresentation(this.RootElement);
            if (diagrams.Count > 0)
            {
                global::UPM_IPS.RAARMAPMCWeberMDD.RAARMAPMCWeberMDDDiagram diagram = diagrams[0] as global::UPM_IPS.RAARMAPMCWeberMDD.RAARMAPMCWeberMDDDiagram;
                if (diagram != null)
                {
                    try
                    {
                        this.SuspendFileChangeNotification(fileName);

                        global::UPM_IPS.RAARMAPMCWeberMDD.RAARMAPMCWeberMDDSerializationHelper.Instance.SaveDiagram(serializationResult, diagram, fileName, this.Encoding, false);
                    }
                    finally
                    {
                        this.ResumeFileChangeNotification(fileName);
                    }
                }
            }
            // Report serialization messages.
            this.SuspendErrorListRefresh();
            try
            {
                foreach (DslModeling::SerializationMessage serializationMessage in serializationResult)
                {
                    this.AddErrorListItem(new DslShell::SerializationErrorListItem(this.ServiceProvider, serializationMessage));
                }
            }
            finally
            {
                this.ResumeErrorListRefresh();
            }

            if (!serializationResult.Failed)
            {
                this.NotifySubordinateDocumentSaved(subordinateDocument.FileName, fileName);
            }
            else
            {
                // Save failed.
                throw new global::System.InvalidOperationException(global::UPM_IPS.RAARMAPMCWeberMDD.RAARMAPMCWeberMDDDomainModel.SingletonResourceManager.GetString("CannotSaveDocument"));
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Save the given document that is subordinate to this document.
        /// </summary>
        /// <param name="subordinateDocument"></param>
        /// <param name="fileName"></param>
        protected override void SaveSubordinateFile(DslShell::DocData subordinateDocument, string fileName)
        {
            // In this case, the only subordinate is the diagram.
            DslModeling::SerializationResult serializationResult = new DslModeling::SerializationResult();

            var diagrams = this.GetDiagrams().ToArray();

            if (diagrams.Length > 0)
            {
                try
                {
                    this.SuspendFileChangeNotification(fileName);

                    global::Sawczyn.EFDesigner.EFModel.EFModelSerializationHelper.Instance.SaveDiagrams(serializationResult, diagrams, fileName, this.Encoding, false);
                }
                finally
                {
                    this.ResumeFileChangeNotification(fileName);
                }
            }

            // Report serialization messages.
            this.SuspendErrorListRefresh();
            try
            {
                foreach (DslModeling::SerializationMessage serializationMessage in serializationResult)
                {
                    this.AddErrorListItem(new DslShell::SerializationErrorListItem(this.ServiceProvider, serializationMessage));
                }
            }
            finally
            {
                this.ResumeErrorListRefresh();
            }

            if (!serializationResult.Failed)
            {
                this.NotifySubordinateDocumentSaved(subordinateDocument.FileName, fileName);
            }
            else
            {
                // Save failed.
                throw new global::System.InvalidOperationException(global::Sawczyn.EFDesigner.EFModel.EFModelDomainModel.SingletonResourceManager.GetString("CannotSaveDocument"));
            }

            CleanupOldDiagramFiles();
        }