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; } }