private void ContextMenu_Opened()

in src/StructuredLogViewer/Controls/BuildControl.xaml.cs [691:718]


        private void ContextMenu_Opened(object sender, RoutedEventArgs e)
        {
            var node = treeView.SelectedItem as BaseNode;
            var visibility = node is NameValueNode ? Visibility.Visible : Visibility.Collapsed;
            copyNameItem.Visibility = visibility;
            copyValueItem.Visibility = visibility;
            viewSourceItem.Visibility = CanView(node) ? Visibility.Visible : Visibility.Collapsed;
            viewFullTextItem.Visibility = HasFullText(node) ? Visibility.Visible : Visibility.Collapsed;
            openFileItem.Visibility = CanOpenFile(node) ? Visibility.Visible : Visibility.Collapsed;
            copyFilePathItem.Visibility = node is Import || (node is IHasSourceFile file && !string.IsNullOrEmpty(file.SourceFilePath))
                ? Visibility.Visible
                : Visibility.Collapsed;
            var hasChildren = node is TreeNode t && t.HasChildren;
            copySubtreeItem.Visibility = hasChildren ? Visibility.Visible : Visibility.Collapsed;
            viewSubtreeTextItem.Visibility = copySubtreeItem.Visibility;
            showTimeItem.Visibility = node is TimedNode ? Visibility.Visible : Visibility.Collapsed;
            searchInSubtreeItem.Visibility = hasChildren && node is TimedNode ? Visibility.Visible : Visibility.Collapsed;
            excludeSubtreeFromSearchItem.Visibility = hasChildren && node is TimedNode ? Visibility.Visible : Visibility.Collapsed;
            goToTimeLineItem.Visibility = node is TimedNode ? Visibility.Visible : Visibility.Collapsed;
            goToTracingItem.Visibility = node is TimedNode ? Visibility.Visible : Visibility.Collapsed;
            copyChildrenItem.Visibility = copySubtreeItem.Visibility;
            sortChildrenItem.Visibility = copySubtreeItem.Visibility;
            preprocessItem.Visibility = node is IPreprocessable p && preprocessedFileManager.CanPreprocess(p) ? Visibility.Visible : Visibility.Collapsed;
            Visibility canRun = Build?.LogFilePath != null && node is Task ? Visibility.Visible : Visibility.Collapsed;
            runItem.Visibility = canRun;
            debugItem.Visibility = canRun;
            hideItem.Visibility = node is TreeNode ? Visibility.Visible : Visibility.Collapsed;
        }