/// <summary>
 /// Creates a PtfPropertyView for the UI.
 /// </summary>
 /// <returns>A PtfPropertyView object</returns>
 public PtfPropertyView CreatePtfPropertyView()
 {
     ptfPropertyView = ptfconfig.CreatePtfPropertyView(hiddenProperties);
     if (appConfig.PropertyGroupOrder != null)
     {
         ptfPropertyView.SortItems(appConfig.PropertyGroupOrder);
     }
     return(ptfPropertyView);
 }
Example #2
0
 public TreeStackItem(PtfProperty node, PtfPropertyView view)
 {
     PropertyNode = node;
     PropertyView = view;
     Path         = new List <string>();
 }
Example #3
0
        /// <summary>
        /// Creates PtfPropertyView
        /// </summary>
        /// <param name="hideProperties">Hide properties.</param>
        /// <returns>An instance of PtfPropertyView</returns>
        public PtfPropertyView CreatePtfPropertyView(List <string> hideProperties)
        {
            List <PtfProperty> hide = new List <PtfProperty>();

            foreach (string name in hideProperties)
            {
                PtfProperty p = GetPropertyNodeByName(name);
                if (p != null)
                {
                    hide.Add(p);
                }
            }

            // Root Group
            PtfPropertyRoot.ValueType = PtfPropertyType.Group;
            PtfPropertyView       propertyView  = new PtfPropertyView(PtfPropertyRoot);
            Stack <TreeStackItem> propertyStack = new Stack <TreeStackItem>();

            propertyStack.Push(new TreeStackItem(PtfPropertyRoot, propertyView));

            while (propertyStack.Count > 0)
            {
                TreeStackItem p = propertyStack.Pop();

                if (p.PropertyNode.ValueType != PtfPropertyType.Group)
                {
                    if (hide.Contains(p.PropertyNode))
                    {
                        continue;
                    }
                    var view = new PtfPropertyView(p.PropertyNode, p.PathFrom(3));
                    p.PropertyView.Add(view);
                }
                else
                {
                    PtfPropertyView view;
                    if (p.Path.Count <= 2)
                    {
                        view = new PtfPropertyView(p.PropertyNode);
                        p.PropertyView.Add(view);
                    }
                    else
                    {
                        view = p.PropertyView;
                    }
                    for (int i = p.PropertyNode.Count - 1; i >= 0; i--)
                    {
                        var           child = p.PropertyNode[i];
                        TreeStackItem c     = new TreeStackItem(
                            child,
                            view);
                        c.Path.InsertRange(0, p.Path);
                        c.Path.Add(p.PropertyNode.Name);
                        propertyStack.Push(c);
                    }
                }
            }

            var v = propertyView[0];

            // Remove empty view
            for (int i = 0; i < v.Count; i++)
            {
                if (v[i].IsEmptyGroup)
                {
                    v.RemoveAt(i);
                    i--;
                    continue;
                }
                var childv = v[i];
                for (int ii = 0; ii < childv.Count; ii++)
                {
                    if (childv[ii].IsEmptyGroup)
                    {
                        childv.RemoveAt(ii);
                        ii--;
                    }
                }
            }
            return(v);
        }