/// <summary>
 /// BindAttribute Syntax Example [<Bind("target",Priority = 1,ControllerBindType = BindType.After,Target="target")>]
 /// </summary>
 public BindPointDescription(ControllerDescription _ctrlDesc, int num)
 {
     ctrlDesc = _ctrlDesc;
     strBind = "Bind" + num.ToString();
     Initialize();
 }
        /// <summary>
        /// Rebuilds all controller dependencies and bindings
        /// Note : engine.Clean is not implemented yet that's why it is impossible to update tree correctly now
        /// </summary>
        private bool UpdateTreeData()
        {
            if (!projectMngrs.ContainsKey(activeProject) || extractor.infobyFiles.Count == 0 ) return false;
            Control.BindingTree.Nodes.Clear();
            projectMngrs[activeProject].Engine.Clean();//not implemented yet
            List<string> files = projectMngrs[activeProject].GetSourceFiles();
            foreach (string file in files)
            {
                ControllersTable fileData = extractor.infobyFiles[file];
                foreach (KeyValuePair<string, Dictionary<string, List<string>>> ctrlsData in fileData)
                {
                    ControllerDescription ctrldesc = new ControllerDescription(ctrlsData.Key, ctrlsData.Value);
                    projectMngrs[activeProject].Engine.RegisterController(ctrldesc);
                }
            }
            projectMngrs[activeProject].Engine.ForceUpdateBindPoints();
            return true;


        }
        private void BindingTree_AfterSelect(object sender, TreeViewEventArgs e)
        {
            
            if (e.Node.Tag != null)
            {
                System.Type nodeType = e.Node.Tag.GetType();
                if (nodeType == typeof(ControllerDescription))
                {
                    //store controller's name and value to be able 
                    //to show additional info On_ShowBindingsResources

                    curObject = NodeObject.Controller;
                    curCtrl = (ControllerDescription)e.Node.Tag;
                }
                else if (nodeType == typeof(Resource))
                {
                    curObject = NodeObject.Resource;
                    curResource = (Resource)e.Node.Tag;
                }
            }
            FillPropertiesTree();
        }