public void Attach(IGraphPresentation presentation, Action <IGraphPresentation> writeDocument)
        {
            myWriteDocument = writeDocument;

            if (myTransformationsObserver != null)
            {
                myTransformationsObserver.ModuleChanged -= OnTransformationsChanged;
                myTransformationsObserver.Dispose();
                myTransformationsObserver = null;
            }

            if (myCaptionsJournal != null)
            {
                myCaptionsJournal.ModuleChanged -= OnCaptionsChanged;
                myCaptionsJournal.Dispose();
                myCaptionsJournal = null;
            }

            myPresentation = presentation;

            if (myPresentation != null)
            {
                var transformationModule = myPresentation.GetModule <ITransformationModule>();
                myTransformationsObserver = transformationModule.CreateObserver();
                myTransformationsObserver.ModuleChanged += OnTransformationsChanged;

                var captionsModule = myPresentation.GetModule <ICaptionModule>();
                myCaptionsJournal = captionsModule.CreateJournal();
                myCaptionsJournal.ModuleChanged += OnCaptionsChanged;
            }
        }