chr
2026-04-05 fe750b791d5b517cc4e9bc8e99a9a75139a0cfba
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System.ComponentModel;
using System.Xml.Serialization;
 
namespace OpenTap
{
    /// <summary>  Child item visibility implements the concept of showing or hiding a child item. This could for example be the child steps of a test step. </summary>
    public static class ChildItemVisibility
    {
        /// <summary> Child item visibility.</summary>
        public enum Visibility
        {
            /// <summary> Child items are visible. This is the default state. </summary>
            Visible, 
            /// <summary> Child items are collapsed.</summary>
            Collapsed
        }
 
        // when test steps are added to a test plan, 
        // the default should be that the child steps are collapsed.
        const Visibility DefaultVisibility = Visibility.Collapsed; 
        
        internal static readonly DynamicMember VisibilityProperty = new DynamicMember
        {
            Name = "OpenTap.Visibility",
            Attributes = new object[] { new BrowsableAttribute(false), new DefaultValueAttribute(DefaultVisibility), new XmlAttributeAttribute() },
            DefaultValue = DefaultVisibility,
            TypeDescriptor = TypeData.FromType(typeof(Visibility)),
            DeclaringType = TypeData.FromType(typeof(ChildItemVisibility)),
            Writable = true,
            Readable = true
        };
 
        /// <summary>  Set visibility to collapsed or Visible. </summary>
        /// <param name="obj">The object for which to set visibility.</param>
        /// <param name="visibility"> </param>
        public static void SetVisibility(object obj, Visibility visibility)
        {
            VisibilityProperty.SetValue(obj, visibility);
        }
        
        /// <summary>  Sets the current collapsed or visible state. If not previously set it will return Visible. </summary>
        /// <param name="obj">The object from which to get visibility.</param>
        public static Visibility GetVisibility(object obj)
        {
            return (Visibility) VisibilityProperty.GetValue(obj);
        }
    }
}