public PrivilegeSection(string label, Privilege.Category category)
        {
            m_Category = category;
            AddToClassList(ussClassName);
            AddToClassList(emptyVariantUssClassName);

            m_Header = new Label {
                text = label
            };
            m_Header.AddToClassList(headerUssClassName);
            hierarchy.Add(m_Header);

            m_Body = new VisualElement();
            m_Body.AddToClassList(bodyUssClassName);
            hierarchy.Add(m_Body);

            m_BodyContainer = new VisualElement();
            m_BodyContainer.AddToClassList(containerUssClassName);
            m_Body.hierarchy.Add(m_BodyContainer);

            m_BodyListView = new ListView(null, kItemSize, MakeToggle, BindToggle);
            m_BodyListView.AddToClassList(listViewUssClassName);
            m_BodyContainer.hierarchy.Add(m_BodyListView);

            m_BodyEmptyLabel = new Label {
                text = "This section contains no privileges"
            };
            m_BodyEmptyLabel.AddToClassList(emptyLabelUssClassName);
            m_Body.hierarchy.Add(m_BodyEmptyLabel);
        }
            public override void Init(VisualElement ve, IUxmlAttributes bag, CreationContext cc)
            {
                base.Init(ve, bag, cc);

                var lf    = (PrivilegeSection)ve;
                var label = m_Label.GetValueFromBag(bag, cc);

                if (!string.IsNullOrEmpty(label))
                {
                    lf.label = label;
                }

                var category = m_Category.GetValueFromBag(bag, cc);

                if (!string.IsNullOrEmpty(category))
                {
                    Privilege.Category cat = Privilege.Category.Invalid;
                    if (Enum.TryParse(category, false, out cat))
                    {
                        lf.category = cat;
                    }
                }
            }
 private static List <PrivilegeDescriptor> GetPrivilegesFor(Privilege.Category category)
 {
     return(s_PrivilegeList
            .Where(p => p.category == category)
            .ToList());
 }