private void UpdateViewItems(object src, UpdateViewsEventArgs args)
        {
            // get the regions
            var item = src as OutlineItem;

            if (item == null)
            {
                return;
            }

            var activeProjectItem = item.ProjectItem;
            var d = activeProjectItem.Document;

            if (d == null)
            {
                Debug.WriteLine("No Document found for the selected item");
                return;
            }
            var c  = new RegionParser();
            var vp = new ViewParser();

            var viewTask = vp.GetViews(d, item.StartLineOfCode, item.StartLineOfCodeOffset, item.EndLineOfCode);

            viewTask.Wait();

            var views = viewTask.Result;

            if (views == null)
            {
                return;
            }

            vp.FindView(activeProjectItem, views);

            item.AddViews(views.Select(
                              x =>
                              new OutlineItem.ViewReference()
            {
                CodeElement = x.CodeElement,

                ViewTypeName = x.TypeName
            }));
        }
        /// <summary>
        ///     Performs outline of activated code file
        /// </summary>
        public void OutlineCode(ProjectItem activeProjectItem)
        {
            CodeElements elements;

            _displayedProjectItem = activeProjectItem;
            clearOutline();

            // get code elements in file
            try
            {
                elements = activeProjectItem.FileCodeModel.CodeElements;
            }
            catch (Exception e)

            {
                _log.Debug("Error finding elements in OutlineCode", e);
                return;
            }
            try
            {
                // get the regions
                var d = activeProjectItem.Document;
                var c = new RegionParser();
                _log.Debug("Identifying regions");

                var regionTask = c.GetRegions(d);
                var vp         = new ViewParser();


                Data = new OutlineItem();

                _log.Debug("Identifying Classes and methods");

                // "expand" each element
                for (var i = 1; i <= elements.Count; i++)
                {
                    createClassList(elements.Item(i), Data);
                }

                // set the "tracked" document to the current document
                CurrentDoc = d;

                regionTask.Wait();
                var regions = regionTask.Result;


                initSynctimer();

                _regions = new List <ICodeRegion>();
                if (regions != null)
                {
                    _regions.AddRange(regions);
                }

                //var result = vp.FindViews(activeProjectItem, views);
                Data.AddRegions(_regions);

                selectActiveCodeInTree();
                Data.ExpandAll();
            }
            catch (Exception e)
            {
                _log.Error("Failed OutlineCode2", e);
            }
        }