public override void Show(NodeControl node = null) { _nodeControl = node; base.Show(node); if (node != null && !IsAdded) { if (ViewerNodeControlContextMenu != null) { if (JavascriptCallbackRegister.Instance.HasViewerCustomContextMenuItem) { ViewerNodeControlContextMenu.CustomContextMenuItemSeparator.Visibility = Visibility.Visible; var items = ViewerNodeControlContextMenu.PopupMenu.Items.Select(item => item as FrameworkElement).ToList(); var index = 0; foreach (var item in items) { if (item.Name == "CustomContextMenuItemSeparator") { break; } index++; } foreach (var viewerItem in JavascriptCallbackRegister.Instance.ViewerItems) { var button = new SuperContextMenuItem(); button.IconPath = string.Empty; button.Name = viewerItem; button.Header = viewerItem; button.MouseLeftButtonUp += ButtonOnMouseLeftButtonUp; index++; items.Insert(index, button); } IsAdded = true; ViewerNodeControlContextMenu.PopupMenu.Items.Clear(); ViewerNodeControlContextMenu.PopupMenu.ItemsSource = items; } else { ViewerNodeControlContextMenu.CustomContextMenuItemSeparator.Visibility = Visibility.Collapsed; } } else if (AuthorNodeControlContextMenu != null) { if (JavascriptCallbackRegister.Instance.HasAuthorCustomContextMenuItem) { AuthorNodeControlContextMenu.CustomContextMenuItemSeparator.Visibility = Visibility.Visible; var items = AuthorNodeControlContextMenu.PopupMenu.Items.Select(item => item as FrameworkElement).ToList(); var index = 0; foreach (var item in items) { if (item.Name == "CustomContextMenuItemSeparator") { break; } index++; } foreach (var viewerItem in JavascriptCallbackRegister.Instance.AuthorItems) { var button = new SuperContextMenuItem(); button.IconPath = string.Empty; button.Name = viewerItem; button.Header = viewerItem; button.MouseLeftButtonUp += ButtonOnMouseLeftButtonUp; index++; items.Insert(index, button); } IsAdded = true; AuthorNodeControlContextMenu.PopupMenu.Items.Clear(); AuthorNodeControlContextMenu.PopupMenu.ItemsSource = items; } else { AuthorNodeControlContextMenu.CustomContextMenuItemSeparator.Visibility = Visibility.Collapsed; } } } }
public override void Show(NodeControl node = null) { _nodeControl = node; base.Show(node); if (node != null && !IsAdded) { if (ViewerNodeControlContextMenu != null) { if (JavascriptCallbackRegister.Instance.HasViewerCustomContextMenuItem) { ViewerNodeControlContextMenu.CustomContextMenuItemSeparator.Visibility = Visibility.Visible; var items = ViewerNodeControlContextMenu.PopupMenu.Items.Select(item => item as FrameworkElement).ToList(); var index = 0; foreach (var item in items) { if (item.Name == "CustomContextMenuItemSeparator") { break; } index++; } foreach (var viewerItem in JavascriptCallbackRegister.Instance.ViewerItems) { var button = new SuperContextMenuItem(); button.IconPath = string.Empty; button.Name = viewerItem; button.Header = viewerItem; button.MouseLeftButtonUp += ButtonOnMouseLeftButtonUp; index++; items.Insert(index, button); } IsAdded = true; ViewerNodeControlContextMenu.PopupMenu.Items.Clear(); ViewerNodeControlContextMenu.PopupMenu.ItemsSource = items; } else { ViewerNodeControlContextMenu.CustomContextMenuItemSeparator.Visibility = Visibility.Collapsed; } } else if (AuthorNodeControlContextMenu != null) { if (JavascriptCallbackRegister.Instance.HasAuthorCustomContextMenuItem) { AuthorNodeControlContextMenu.CustomContextMenuItemSeparator.Visibility = Visibility.Visible; var items = AuthorNodeControlContextMenu.PopupMenu.Items.Select(item => item as FrameworkElement).ToList(); var index = 0; foreach (var item in items) { if (item.Name == "CustomContextMenuItemSeparator") { break; } index ++; } foreach (var viewerItem in JavascriptCallbackRegister.Instance.AuthorItems) { var button = new SuperContextMenuItem(); button.IconPath = string.Empty; button.Name = viewerItem; button.Header = viewerItem; button.MouseLeftButtonUp += ButtonOnMouseLeftButtonUp; index ++; items.Insert(index, button); } IsAdded = true; AuthorNodeControlContextMenu.PopupMenu.Items.Clear(); AuthorNodeControlContextMenu.PopupMenu.ItemsSource = items; } else { AuthorNodeControlContextMenu.CustomContextMenuItemSeparator.Visibility = Visibility.Collapsed; } } } }