//   public ICirDataAnalysis cirDataAnalysis { get; set; }

        /*public static void viewCirFunctionSignature(string functionSignature, ICirDataAnalysis _cirDataAnalysis)
         * {
         *  if (_cirDataAnalysis.dCirFunction_bySignature.ContainsKey(functionSignature))
         *      viewCirFunctionSignature(_cirDataAnalysis.dCirFunction_bySignature[functionSignature], _cirDataAnalysis);
         * }*/
        public void viewCirFunction(ICirFunction _rootCirFunction)
        {
            if (_rootCirFunction != null)
            {
                this.invokeOnThread(
                    () =>
                {
                    showFunctionAttributes(_rootCirFunction);
                    laFunctionViewed.Text = _rootCirFunction.FunctionSignature;
                    rootCirFunction       = _rootCirFunction;
                    currentCirClass       = _rootCirFunction.ParentClass;

                    //tvFunctionIsCalledBy
                    tvFunctionIsCalledBy.Nodes.Clear();
                    ViewHelpers.addCirFunctionToTreeNodeCollection(rootCirFunction, "",
                                                                   tvFunctionIsCalledBy.Nodes,
                                                                   rootCirFunction.FunctionIsCalledBy.Count > 0);
                    O2Forms.expandNodes(tvFunctionIsCalledBy);

                    //tvFunctionMakesCallsTo
                    tvFunctionMakesCallsTo.Nodes.Clear();
                    ViewHelpers.addCirFunctionToTreeNodeCollection(rootCirFunction, "",
                                                                   tvFunctionMakesCallsTo.Nodes,
                                                                   rootCirFunction.FunctionsCalledUniqueList.Count > 0);
                    O2Forms.expandNodes(tvFunctionMakesCallsTo);

                    //tvFunctionInfo
                    tvFunctionInfo.Nodes.Clear();
                    ViewHelpers.addCirFunctionToTreeNodeCollection(rootCirFunction, "", tvFunctionInfo.Nodes,
                                                                   rootCirFunction.FunctionsCalledUniqueList.Count > 0 || rootCirFunction.FunctionIsCalledBy.Count > 0);
                    O2Forms.expandNodes(tvFunctionInfo);

                    //tvClassSuperClasses
                    tvClassSuperClasses.Nodes.Clear();
                    if (rootCirFunction.ParentClass != null)
                    {
                        ViewHelpers.addCirClassToTreeNodeCollection(rootCirFunction.ParentClass, "", tvClassSuperClasses.Nodes,
                                                                    rootCirFunction.ParentClass.dSuperClasses.Count > 0);
                        O2Forms.expandNodes(tvClassSuperClasses);
                    }

                    //tvClassSuperClasses
                    tvClassIsSuperClassedBy.Nodes.Clear();
                    if (rootCirFunction.ParentClass != null)
                    {
                        ViewHelpers.addCirClassToTreeNodeCollection(rootCirFunction.ParentClass, "", tvClassIsSuperClassedBy.Nodes,
                                                                    rootCirFunction.ParentClass.dIsSuperClassedBy.Count > 0);
                        O2Forms.expandNodes(tvClassIsSuperClassedBy);
                    }

                    cbCirFunction_IsTainted.Checked = rootCirFunction.IsTainted;

                    viewClassMethods();
                });
            }
        }
 public void viewCirFunction(ICirFunction _rootCirFunction)
 {
     this.invokeOnThread(
         () =>
     {
         rootCirFunction = _rootCirFunction;
         cirTreeView.Nodes.Clear();
         ViewHelpers.addCirFunctionToTreeNodeCollection(rootCirFunction, "", cirTreeView.Nodes, true);
         createTracesAndShowIt(rootCirFunction);
         cirTreeView.ExpandAll();
     });
 }