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; } }
public void Dispose() { if (myNodeMaskModuleObserver != null) { myNodeMaskModuleObserver.ModuleChanged -= OnGraphVisibilityChanged; myNodeMaskModuleObserver.Dispose(); myNodeMaskModuleObserver = null; } }
public void Dispose() { if (myModules != null) { myNodeMaskModuleObserver.ModuleChanged -= OnModuleChanged; myNodeMaskModuleObserver.Dispose(); myTransformationModuleObserver.ModuleChanged -= OnModuleChanged; myTransformationModuleObserver.Dispose(); GraphVisibilityChanged = null; myModules.Clear(); myModules = null; } }
protected override void OnModelPropertyChanged(string propertyName) { RaisePropertyChanged(propertyName); if (propertyName == "Presentation") { RemoveNodeCommand.RaiseCanExecuteChanged(); RemoveAllButCommand.RaiseCanExecuteChanged(); ShowCyclesCommand.RaiseCanExecuteChanged(); RemoveNodesWithoutSourcesCommand.RaiseCanExecuteChanged(); RemoveNodesWithoutTargetsCommand.RaiseCanExecuteChanged(); RemoveNodesWithoutSiblingsCommand.RaiseCanExecuteChanged(); ShowNodesOutsideClustersCommand.RaiseCanExecuteChanged(); FoldUnfoldAllClustersCommand.RaiseCanExecuteChanged(); AddVisibleNodesOutsideClustersToClusterCommand.RaiseCanExecuteChanged(); ClearSelectionCommand.RaiseCanExecuteChanged(); InvertSelectionCommand.RaiseCanExecuteChanged(); HomeCommand.RaiseCanExecuteChanged(); InvalidateLayoutCommand.RaiseCanExecuteChanged(); PrintGraphCommand.RaiseCanExecuteChanged(); BuildClustersMenu(); BuildSelectedNodesMenu(); if (myTransformationsModuleObserver != null) { mySelectionObserver.ModuleChanged -= OnSelectionChanged; mySelectionObserver.Dispose(); mySelectionObserver = null; myTransformationsModuleObserver.ModuleChanged -= OnTransformationsModuleChanged; myTransformationsModuleObserver.Dispose(); myTransformationsModuleObserver = null; } if (Presentation != null) { var transformations = Presentation.GetModule <ITransformationModule>(); myTransformationsModuleObserver = transformations.CreateObserver(); myTransformationsModuleObserver.ModuleChanged += OnTransformationsModuleChanged; mySelectionObserver = Presentation.GetPropertySetFor <Selection>().CreateObserver(); mySelectionObserver.ModuleChanged += OnSelectionChanged; } } }
protected override void OnModelPropertyChanged(string propertyName) { if (propertyName == "Presentation") { if (myPresentation == Model.Presentation) { return; } if (myTransformationsObserver != null) { myTransformationsObserver.ModuleChanged -= OnTransformationsChanged; myTransformationsObserver.Dispose(); } myPresentation = Model.Presentation; // first build tree - master for preview BuildTree(); // rebuild preview myPreviewNodes = null; if (Filter == null) { PreviewNodes.Refresh(); } else { Filter = null; } // register for updates only AFTER tree is built up completely to avoid getting notified by the built up process var transformationModule = Model.Presentation.GetModule <ITransformationModule>(); myTransformationsObserver = transformationModule.CreateObserver(); myTransformationsObserver.ModuleChanged += OnTransformationsChanged; } }