예제 #1
0
        public virtual bool TryGetCachedPattern(classic.AutomationPattern pattern, out object patternObject)
        {
            switch (_innerElementType)
            {
            case InnerElementTypes.AutomationElementNet:
                return(_elementHolderNet.TryGetCachedPattern(pattern, out patternObject));

//                case InnerElementTypes.AutomationElementCom:
//                    //
            case InnerElementTypes.UiElement:
                return(_elementHolderAdapter.TryGetCachedPattern(pattern, out patternObject));

            default:
                return(_elementHolderNet.TryGetCachedPattern(pattern, out patternObject));
            }
        }
예제 #2
0
        public virtual object GetCurrentPattern(classic.AutomationPattern pattern)
        {
            switch (_innerElementType)
            {
            case InnerElementTypes.AutomationElementNet:
                // 20140208
                // return _elementHolderNet.GetCurrentPattern(pattern);
                return(Preferences.FromCache ? _elementHolderNet.GetCachedPattern(pattern) : _elementHolderNet.GetCurrentPattern(pattern));

            default:
//                case InnerElementTypes.AutomationElementCom:
//                    //
                // case InnerElementTypes.UiElement:
                //     return _elementHolderAdapter.GetCurrentPattern(pattern);
                return(_elementHolderNet.GetCurrentPattern(pattern));
            }
        }
예제 #3
0
        public virtual TPatternInterface GetCurrentPattern <TPatternInterface>(classic.AutomationPattern pattern) where TPatternInterface : IBasePattern
        {
            switch (_innerElementType)
            {
            case InnerElementTypes.AutomationElementNet:
                if (Preferences.FromCache)
                {
                    return((TPatternInterface)AutomationFactory.GetPatternAdapter <TPatternInterface>(this, _elementHolderNet.GetCachedPattern(pattern)));
                }
                else
                {
                    return((TPatternInterface)AutomationFactory.GetPatternAdapter <TPatternInterface>(this, _elementHolderNet.GetCurrentPattern(pattern)));
                }

            // default:
//                case InnerElementTypes.AutomationElementCom:
//                    //
            // 20131208
            case InnerElementTypes.UiElement:
                // return Preferences.FromCache ? _elementHolderAdapter.GetCachedPattern(pattern) : _elementHolderAdapter.GetCurrentPattern(pattern);
                return(Preferences.FromCache ? default(TPatternInterface) : _elementHolderAdapter.GetCurrentPattern <TPatternInterface>(pattern));

            // default:
            //    return Preferences.FromCache ? _elementHolderNet.GetCachedPattern(pattern) : _elementHolderNet.GetCurrentPattern(pattern);
            default:
                if (Preferences.FromCache)
                {
                    return((TPatternInterface)AutomationFactory.GetPatternAdapter <TPatternInterface>(this, _elementHolderNet.GetCachedPattern(pattern)));
                }
                else
                {
                    return((TPatternInterface)AutomationFactory.GetPatternAdapter <TPatternInterface>(this, _elementHolderNet.GetCurrentPattern(pattern)));
                }
            }

            // return default(N);
        }
예제 #4
0
 public SourcePatternEmulator(object pattern)
 {
     Pattern = pattern as classic.AutomationPattern;
 }
        /// <summary>
        /// Processes the pipeline.
        /// </summary>
        protected override void ProcessRecord()
        {
            object result = null; // ?

            if (!CheckAndPrepareInput(this))
            {
                return;
            }

            // 20131014
            //this.WriteVerbose(this, _control.Current);

            // 20131014
            //this.WriteVerbose(this,
            //             (_control.GetSupportedPatterns()).Length.ToString());

            // 20131109
            //foreach (System.Windows.Automation.AutomationElement element in this.InputObject) {
            // 20131113
            foreach (classic.AutomationPattern p in InputObject.SelectMany(element => element.GetSupportedPatterns()))
            {
                WriteVerbose(this, p.ProgrammaticName);
            }

            /*
             * foreach (IUiElement element in this.InputObject) {
             *  foreach (System.Windows.Automation.AutomationPattern p in element.GetSupportedPatterns())
             *  {
             *      this.WriteVerbose(this, p.ProgrammaticName);
             *  }
             * }
             */

            // 20131014
            //foreach (System.Windows.Automation.AutomationPattern p in _control.GetSupportedPatterns())

            /*
             * foreach (AutomationPattern p in this.InputObject.SelectMany(element => element.GetSupportedPatterns()))
             * {
             *  this.WriteVerbose(this, p.ProgrammaticName);
             * }
             */

            /*
             * foreach (System.Windows.Automation.AutomationElement element in this.InputObject) {
             *  foreach (System.Windows.Automation.AutomationPattern p in element.GetSupportedPatterns())
             *  {
             *      this.WriteVerbose(this, p.ProgrammaticName);
             *  }
             * }
             */

            classic.AutomationPattern pattern =
                UiaHelper.GetPatternByName(Name);
            // 20131209
            result =
                UiaHelper.GetCurrentPattern(ref _control,
                                            pattern);
            // result =
            //     _control.GetCurrentPattern(pattern);

            WriteVerbose(this, result);

            WriteObject(this, result);
        }
예제 #6
0
 public SourcePatternEmulator(object pattern)
 {
     Pattern = pattern as classic.AutomationPattern;
 }