protected virtual void PrepareMembersContent()
        {
            if (classtype == null)
            {
                return;
            }

            groups.Clear();

            InteractiveItemsStack propertiesContent = PrepareMembersContent <IProperty> (classtype.Properties);
            InteractiveItemsStack methodsContent    = PrepareMembersContent <IMethod> (classtype.Methods);
            InteractiveItemsStack fieldsContent     = PrepareMembersContent <IField> (classtype.Fields);
            InteractiveItemsStack eventsContent     = PrepareMembersContent <IEvent> (classtype.Events);

            AddGroupToContent("Properties", propertiesContent);
            AddGroupToContent("Methods", methodsContent);
            AddGroupToContent("Fields", fieldsContent);
            AddGroupToContent("Events", eventsContent);

            if (classtype.InnerClasses.Count > 0)
            {
                InteractiveItemsStack nestedTypesContent = PrepareNestedTypesContent();
                AddGroupToContent("Nested Types", nestedTypesContent);
            }
        }
        protected virtual void PrepareMembersContent <MT> (ICollection <MT> members, InteractiveItemsStack content) where MT : IMember
        {
            if (members == null)
            {
                return;
            }
            if (members.Count == 0)
            {
                return;
            }

            IAmbience ambience = GetAmbience();

            #region Prepare Group Members
            List <MemberData> membersData = new List <MemberData>();
            foreach (MT member in members)
            {
                membersData.Add(new MemberData(member, ambience, Graphics, MemberFont));
            }
            membersData.Sort();
            #endregion

            #region Add Members To Group
            foreach (MemberData memberData in membersData)
            {
                content.Add(memberData.Item);
            }
            #endregion
        }
 private void AddGroupToContent(string title, InteractiveItemsStack groupContent)
 {
     if (groupContent != null)
     {
         InteractiveHeaderedItem tg = PrepareGroup(title, groupContent);
         groupNames.Add(tg, title);
         groupsByName.Add(title, tg);
         groups.Add(tg);
     }
 }
        private InteractiveItemsStack PrepareNestedTypesContent()
        {
            InteractiveItemsStack innerItems = new InteractiveItemsStack();

            innerItems.OrientationAxis = Axis.Y;
            innerItems.Spacing         = 10;
            innerItems.Padding         = 10;
            foreach (IClass ct in classtype.InnerClasses)
            {
                ClassCanvasItem innerItem = ClassCanvas.CreateItemFromType(ct);
                innerItems.Add(innerItem);
                innerItem.LayoutChanged += HandleRedraw;
            }
            return(innerItems);
        }
        protected virtual InteractiveItemsStack PrepareMembersContent <MT> (ICollection <MT> members) where MT : IMember
        {
            if (members == null)
            {
                return(null);
            }
            if (members.Count == 0)
            {
                return(null);
            }
            InteractiveItemsStack content = new InteractiveItemsStack();

            content.OrientationAxis = Axis.Y;
            PrepareMembersContent <MT> (members, content);
            return(content);
        }