//private void ActiveAwareIsActiveChanged(object sender, EventArgs e) //{ // IActiveAware activeAware = (sender as IActiveAware); // if (activeAware == null) { return; } // CommandFindNextMarkers.IsActive = activeAware.IsActive; // CommandFindPrevMarkers.IsActive = activeAware.IsActive; //} #region Events private bool checkTreeNodeFragmentRemoval(bool done, TreeNode node) { bool found = false; if (node.IsMarked) { if (done) { MarkersNavigator.RemoveMarkedTreeNode(node); } else { MarkersNavigator.AddMarkedTreeNode(node); } RaisePropertyChanged(() => HasNotMarkers); found = true; } foreach (var child in node.Children.ContentsAs_Enumerable) { bool found_ = checkTreeNodeFragmentRemoval(done, child); found = found || found_; } return(found); }
private void OnUndoRedoManagerChanged_TreeNodeSetIsMarkedCommand(UndoRedoManagerEventArgs eventt, bool done, TreeNodeSetIsMarkedCommand command, bool isTransactionEndEvent, bool isNoTransactionOrTrailingEdge) { if (command.TreeNode.IsMarked) { MarkersNavigator.AddMarkedTreeNode(command.TreeNode); } else { MarkersNavigator.RemoveMarkedTreeNode(command.TreeNode); } RaisePropertyChanged(() => HasNotMarkers); }
private void onMarkedTreeNodeFoundByFlowDocumentParser(TreeNode data) { if (!TheDispatcher.CheckAccess()) { #if DEBUG Debugger.Break(); #endif TheDispatcher.Invoke(DispatcherPriority.Normal, (Action <TreeNode>)onMarkedTreeNodeFoundByFlowDocumentParser, data); return; } MarkersNavigator.AddMarkedTreeNode(data); RaisePropertyChanged(() => HasNotMarkers); }
private void onProjectLoaded(Project project) { if (m_UrakawaSession.IsXukSpine) { return; } m_UndoRedoManagerHooker = project.Presentations.Get(0).UndoRedoManager.Hook(this); MarkersNavigator = new MarkersNavigator(View); View.LoadProject(); RaisePropertyChanged(() => SelectedTreeNode); }
public MarkersPaneViewModel( IEventAggregator eventAggregator, ILoggerFacade logger, [Import(typeof(IShellView), RequiredCreationPolicy = CreationPolicy.Shared, AllowDefault = false)] IShellView view, [Import(typeof(IUrakawaSession), RequiredCreationPolicy = CreationPolicy.Shared, AllowDefault = false)] IUrakawaSession urakawaSession) { m_EventAggregator = eventAggregator; m_Logger = logger; m_UrakawaSession = urakawaSession; m_ShellView = view; m_Logger.Log("MarkersPaneViewModel.initializeCommands", Category.Debug, Priority.Medium); CommandToggleMark = new RichDelegateCommand( Tobi_Plugin_NavigationPane_Lang.CmdNavigationToggleMark_ShortDesc, Tobi_Plugin_NavigationPane_Lang.CmdNavigationToggleMark_LongDesc, null, // KeyGesture obtained from settings (see last parameters below) m_ShellView.LoadTangoIcon("bookmark-new"), () => { var cmd = SelectedTreeNode.Presentation.CommandFactory.CreateTreeNodeSetIsMarkedCommand(SelectedTreeNode, !SelectedTreeNode.IsMarked); SelectedTreeNode.Presentation.UndoRedoManager.Execute(cmd); }, () => SelectedTreeNode != null && !m_UrakawaSession.isAudioRecording && !m_UrakawaSession.IsXukSpine, //!m_UrakawaSession.IsSplitMaster && Settings_KeyGestures.Default, PropertyChangedNotifyBase.GetMemberName(() => Settings_KeyGestures.Default.Keyboard_ToggleDocMark)); m_ShellView.RegisterRichCommand(CommandToggleMark); CommandRemoveAllMarks = new RichDelegateCommand( Tobi_Plugin_NavigationPane_Lang.CmdNavigationRemoveAllMarks_ShortDesc, Tobi_Plugin_NavigationPane_Lang.CmdNavigationRemoveAllMarks_LongDesc, null, // KeyGesture obtained from settings (see last parameters below) null, //m_ShellView.LoadTangoIcon("bookmark-new"), () => { if (MarkersNavigator_MarkedTreeNodes.Count <= 0) { return; } var treeNodes = new List <TreeNode>(MarkersNavigator_MarkedTreeNodes.Count); foreach (MarkedTreeNode marked in MarkersNavigator_MarkedTreeNodes) { treeNodes.Add(marked.TreeNode); } m_UrakawaSession.DocumentProject.Presentations.Get(0).UndoRedoManager.StartTransaction(Tobi_Plugin_NavigationPane_Lang.CmdNavigationRemoveAllMarks_ShortDesc, Tobi_Plugin_NavigationPane_Lang.CmdNavigationRemoveAllMarks_LongDesc, "MARKS_REMOVE_ALL"); foreach (TreeNode treeNode in treeNodes) { var cmd = treeNode.Presentation.CommandFactory.CreateTreeNodeSetIsMarkedCommand(treeNode, !treeNode.IsMarked); treeNode.Presentation.UndoRedoManager.Execute(cmd); } m_UrakawaSession.DocumentProject.Presentations.Get(0).UndoRedoManager.EndTransaction(); }, () => m_UrakawaSession.DocumentProject != null && !m_UrakawaSession.isAudioRecording && !m_UrakawaSession.IsXukSpine, //SelectedTreeNode != null, //!m_UrakawaSession.IsSplitMaster && Settings_KeyGestures.Default, PropertyChangedNotifyBase.GetMemberName(() => Settings_KeyGestures.Default.Keyboard_RemoveAllDocMarks)); m_ShellView.RegisterRichCommand(CommandRemoveAllMarks); CommandFindFocusMarkers = new RichDelegateCommand( @"MARKERS CommandFindFocus DUMMY TXT", @"MARKERS CommandFindFocus DUMMY TXT", null, // KeyGesture set only for the top-level CompositeCommand null, () => { m_ShellView.RaiseEscapeEvent(); if (View != null) { IsSearchVisible = true; FocusHelper.Focus(View.SearchBox); View.SearchBox.SelectAll(); } }, () => View != null //&& View.SearchBox.Visibility == Visibility.Visible && View.SearchBox.IsEnabled, null, //Settings_KeyGestures.Default, null //PropertyChangedNotifyBase.GetMemberName(() => Settings_KeyGestures.Default.Keyboard_Nav_TOCFindNext) ); CommandFindNextMarkers = new RichDelegateCommand( @"MARKERS CommandFindNext DUMMY TXT", //UserInterfaceStrings.MarkersFindNext, @"MARKERS CommandFindNext DUMMY TXT", //UserInterfaceStrings.MarkersFindNext_, null, // KeyGesture set only for the top-level CompositeCommand null, () => { m_ShellView.RaiseEscapeEvent(); MarkersNavigator.FindNext(true); }, () => MarkersNavigator != null && !string.IsNullOrEmpty(MarkersNavigator.SearchTerm), null, //Settings_KeyGestures.Default, null //PropertyChangedNotifyBase.GetMemberName(() => Settings_KeyGestures.Default.Keyboard_Nav_MarkersFindNext) ); CommandFindPrevMarkers = new RichDelegateCommand( @"MARKERS CommandFindPrevious DUMMY TXT", //UserInterfaceStrings.MarkersFindPrev, @"MARKERS CommandFindPrevious DUMMY TXT", //UserInterfaceStrings.MarkersFindPrev_, null, // KeyGesture set only for the top-level CompositeCommand null, () => { m_ShellView.RaiseEscapeEvent(); MarkersNavigator.FindPrevious(true); }, () => MarkersNavigator != null && !string.IsNullOrEmpty(MarkersNavigator.SearchTerm), null, //Settings_KeyGestures.Default, null //PropertyChangedNotifyBase.GetMemberName(() => Settings_KeyGestures.Default.Keyboard_Nav_MarkersFindPrev) ); m_EventAggregator.GetEvent <ProjectLoadedEvent>().Subscribe(onProjectLoaded, ProjectLoadedEvent.THREAD_OPTION); m_EventAggregator.GetEvent <ProjectUnLoadedEvent>().Subscribe(onProjectUnLoaded, ProjectUnLoadedEvent.THREAD_OPTION); m_EventAggregator.GetEvent <MarkedTreeNodeFoundByFlowDocumentParserEvent>().Subscribe(onMarkedTreeNodeFoundByFlowDocumentParser, MarkedTreeNodeFoundByFlowDocumentParserEvent.THREAD_OPTION); m_EventAggregator.GetEvent <TreeNodeSelectionChangedEvent>().Subscribe(OnTreeNodeSelectionChanged, TreeNodeSelectionChangedEvent.THREAD_OPTION); }