Sha256: f5c034ceb2763f100e326fabae827c8f1031349f0b24c84e561559c779af247b

Contents?: true

Size: 1.75 KB

Versions: 10

Compression:

Stored size: 1.75 KB

Contents

using System.Collections.Generic;
using System.Linq;
using System.Windows.Automation;
using RAutomation.UIA.Extensions;

namespace RAutomation.UIA
{
    public class ExpandibleCollapsibleContainer
    {
        protected readonly AutomationElement _element;

        protected ExpandibleCollapsibleContainer(AutomationElement element)
        {
            _element = element;
        }

        protected IEnumerable<ExpandCollapsePattern> ExpandCollapsItems
        {
            get { return Elements.Select(x => x.As<ExpandCollapsePattern>(ExpandCollapsePattern.Pattern)); }
        }

        protected IEnumerable<AutomationElement> Elements
        {
            get { return _element.Find(AutomationElement.IsExpandCollapsePatternAvailableProperty.TrueCondition()); }
        }
    }

    public class Expander : ExpandibleCollapsibleContainer
    {
        public Expander(AutomationElement element) : base(element)
        {}

        public void Expand(int index)
        {
            ExpandCollapsItems.ElementAt(index).Expand();
        }

        public void Expand(string value)
        {
            Elements.FirstOrDefault(x => x.Current.Name == value).As<ExpandCollapsePattern>(ExpandCollapsePattern.Pattern).Expand();
        }
    }

    public class Collapser : ExpandibleCollapsibleContainer
    {
        public Collapser(AutomationElement element) : base(element)
        {}

        public void Collapse(int index)
        {
            ExpandCollapsItems.ElementAt(index).Collapse();
        }

        public void Collapse(string value)
        {
            Elements.FirstOrDefault(x => x.Current.Name == value).As<ExpandCollapsePattern>(ExpandCollapsePattern.Pattern).Collapse();
        }
    }
}

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
rautomation-1.1.0 ext/UiaDll/RAutomation.UIA/Expander.cs
rautomation-1.0.0 ext/UiaDll/RAutomation.UIA/Expander.cs
rautomation-0.17.0 ext/UiaDll/RAutomation.UIA/Expander.cs
rautomation-0.16.0 ext/UiaDll/RAutomation.UIA/Expander.cs
rautomation-0.15.0 ext/UiaDll/RAutomation.UIA/Expander.cs
rautomation-0.14.1 ext/UiaDll/RAutomation.UIA/Expander.cs
rautomation-0.14.0 ext/UiaDll/RAutomation.UIA/Expander.cs
rautomation-0.13.0 ext/UiaDll/RAutomation.UIA/Expander.cs
rautomation-0.12.0 ext/UiaDll/RAutomation.UIA/Expander.cs
rautomation-0.11.0 ext/UiaDll/RAutomation.UIA/Expander.cs