File: MS\Internal\Documents\Application\IDocumentController.cs
Web Access
Project: src\src\Microsoft.DotNet.Wpf\src\PresentationUI\PresentationUI_wgljbex5_wpftmp.csproj (PresentationUI)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
 
// Description: Defines the interface for participating in the document lifecycle.
 
namespace MS.Internal.Documents.Application
{
    /// <summary>
    /// Defines the interface for participating in the document lifecycle.
    /// <seealso cref="MS.Internal.Documents.Application.DocumentManager"/>
    /// </summary>
    internal interface IDocumentController : IChainOfResponsibiltyNode<Document>
{
    /// <summary>
    /// Implementors should prepare Document.Workspace for editing purposes
    /// or return false if Edit is not possible.
    /// </summary>
    /// <param name="document">A document.</param>
    /// <returns>True if you handled the operation and it should not be 
    /// presented to others in the chain to handle.</returns>
    bool EnableEdit(Document document);
 
    /// <summary>
    /// Implementors should ensure source data is ready for use in 
    /// Document.Source.
    /// </summary>
    /// <param name="document">A document.</param>
    /// <returns>True if you handled the operation and it should not be 
    /// presented to others in the chain to handle.</returns>
    bool Open(Document document);
 
    /// <summary>
    /// Called when the underlying source has changed.  Some providers will
    /// need to re-open the source in this case.
    /// </summary>
    /// <param name="document">A document.</param>
    /// <returns>True if you handled the operation and it should not be 
    /// presented to others in the chain to handle.</returns>
    bool Rebind(Document document);
 
    /// <summary>
    /// Implementors should prepare the Document.Destination to be written
    /// to durring SaveCommit.
    /// </summary>
    /// <param name="document">A document.</param>
    /// <returns>True if you handled the operation and it should not be 
    /// presented to others in the chain to handle.</returns>
    bool SaveAsPreperation(Document document);
 
    /// <summary>
    /// Implementors should write there state to Document.Destination.
    /// </summary>
    /// <param name="document">A document.</param>
    /// <returns>True if you handled the operation and it should not be 
    /// presented to others in the chain to handle.</returns>
    bool SaveCommit(Document document);
 
    /// <summary>
    /// Implementors should prepare the Document.Destination to be written
    /// to durring SaveCommit.
    /// </summary>
    /// <param name="document">A document.</param>
    /// <returns>True if you handled the operation and it should not be 
    /// presented to others in the chain to handle.</returns>
    bool SavePreperation(Document document);
}
}