public ICSharpControlFlowGraph GetControlFlowGraph()
        {
            if (!_controlFlowGraphCached)
            {
                if (this.SelectedElement is ICSharpTreeNode)
                {
                    ITreeNode containingGraphOwner = ControlFlowBuilder.GetContainingGraphOwner(this.SelectedElement);
                    if (containingGraphOwner != null)
                    {
                        new CachingNonQualifiedReferencesResolver().Process(containingGraphOwner);
                        _cachedControlFlowGraph = ControlFlowBuilder.GetGraph(containingGraphOwner) as ICSharpControlFlowGraph;
                    }
                }

                _controlFlowGraphCached = true;
            }

            return(_cachedControlFlowGraph);
        }