Skip to content

Commit

Permalink
refactoring of patterns
Browse files Browse the repository at this point in the history
  • Loading branch information
apetrovskiy committed Dec 9, 2013
1 parent ea6f284 commit fa94032
Show file tree
Hide file tree
Showing 12 changed files with 295 additions and 601 deletions.
File renamed without changes.
File renamed without changes.
13 changes: 13 additions & 0 deletions ImprovementsHistory/test_results/20131209-1.txt
@@ -0,0 +1,13 @@
GetUiaControlCommandTestFixture:
GetControlByValue_Win32_WildCard_TimeoutDefault

GetUiaControlRelativesTestFixture:
GetControlAncestors_MoreThanOne

ParameterlessSearchTestFixture:
GetControl_Win32_X2_SearchInAutomationIdClassName_Timeout2000
GetControl_Win32_X2_SearchInClassName_Timeout2000
GetControl_Win32_X2_SearchInNameClassName_Timeout2000
GetControl_Win32_X2_SearchInValue_Timeout2000

UiaRunner?
13 changes: 13 additions & 0 deletions UIA/UIAutomation/Commands/Common/ShowUIADesktopCommand.cs
Expand Up @@ -25,6 +25,8 @@ protected override void BeginProcessing()
try{
// 20131109
//AutomationElement showDesktopButton =
// 20131209
/*
IUiElement showDesktopButton =
// 20131109
//AutomationElement.RootElement.FindFirst(
Expand All @@ -33,6 +35,14 @@ protected override void BeginProcessing()
new PropertyCondition(
AutomationElement.NameProperty,
"Show desktop"));
*/
IUiElement showDesktopButton =
UiElement.RootElement.FindFirst(
TreeScope.Children,
new PropertyCondition(
AutomationElement.ClassNameProperty,
"TrayShowDesktopButtonWClass"));

// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// 20131208
// InvokePattern invPtrn =
Expand All @@ -41,6 +51,9 @@ protected override void BeginProcessing()
// showDesktopButton.GetCurrentPattern<IMySuperInvokePattern, InvokePattern>(InvokePattern.Pattern) as InvokePattern;
// invPtrn.Invoke();
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
IMySuperInvokePattern invPtrn =
showDesktopButton.GetCurrentPattern<IMySuperInvokePattern>(InvokePattern.Pattern);
invPtrn.Invoke();
/*
InvokePattern invPtrn =
showDesktopButton.GetCurrentPattern(InvokePattern.Pattern) as InvokePattern;
Expand Down
Expand Up @@ -94,10 +94,12 @@ protected override void ProcessRecord()

AutomationPattern pattern =
UiaHelper.GetPatternByName(Name);

result =
// 20131209
result =
UiaHelper.GetCurrentPattern(ref _control,
pattern);
// result =
// _control.GetCurrentPattern(pattern);

WriteVerbose(this, result);

Expand Down
5 changes: 0 additions & 5 deletions UIA/UIAutomation/Helpers/Inheritance/PatternCmdletBase.cs
Expand Up @@ -388,20 +388,15 @@ internal void CallValuePatternForSet(PatternCmdletBase cmdlet, IUiElement contro
internal void CallValuePatternForGet(PatternCmdletBase cmdlet, IUiElement control, IUiElement inputObject)
{
try {
//Console.WriteLine("CallValuePatternForGet 00001");
// IMySuperValuePattern valuePatternGet = control.GetValuePattern();
// IMySuperValuePattern valuePatternGet = control.GetCurrentPattern<IMySuperValuePattern, ValuePattern>();
IMySuperValuePattern valuePatternGet = control.GetCurrentPattern<IMySuperValuePattern>(ValuePattern.Pattern);
//Console.WriteLine("CallValuePatternForGet 00002");
object result = null;
//Console.WriteLine("CallValuePatternForGet 00003");
if (valuePatternGet != null) {
//Console.WriteLine("CallValuePatternForGet 00004");
result = valuePatternGet.Current.Value;
WriteVerbose(this, "the result is " + result);
WriteObject(this, result);
} else {
//Console.WriteLine("CallValuePatternForGet 00005");
WriteVerbose(this, "couldn't get ValuePattern");
WriteObject(this, result);
}
Expand Down
Expand Up @@ -127,168 +127,16 @@ public virtual object GetCurrentPropertyValue(AutomationProperty property, bool
}
}

// public virtual object GetCurrentPattern(AutomationPattern pattern)
// public virtual object GetCurrentPattern<N, O>(AutomationPattern pattern)
// public virtual object GetCurrentPattern<N>(AutomationPattern pattern)
public virtual N GetCurrentPattern<N>(AutomationPattern pattern)
// public virtual object GetCurrentPattern<N, O>(object pattern)
where N : IBasePattern
// where O : AutomationIdentifier
{

switch (_innerElementType) {
case InnerElementTypes.AutomationElementNet:
if (Preferences.FromCache) {
// 20131208
// if (pattern.Id == ExpandCollapsePattern.Pattern.Id) {
// IMySuperExpandCollapsePattern expandCollapsePattern =
// AutomationFactory.GetMySuperExpandCollapsePattern(
// this,
// _elementHolderNet.GetCachedPattern(pattern) as ExpandCollapsePattern);
// return expandCollapsePattern;
// } else if (pattern.Id == InvokePattern.Pattern.Id) {
// IMySuperInvokePattern invokePattern =
// AutomationFactory.GetMySuperInvokePattern(
// this,
// _elementHolderNet.GetCachedPattern(pattern) as InvokePattern);
// return invokePattern;
// } else if (pattern.Id == ScrollItemPattern.Pattern.Id) {
// IMySuperScrollItemPattern scrollItemPattern =
// AutomationFactory.GetMySuperScrollItemPattern(
// this,
// _elementHolderNet.GetCachedPattern(pattern) as ScrollItemPattern);
// return scrollItemPattern;
// } else if (pattern.Id == ScrollPattern.Pattern.Id) {
// IMySuperScrollPattern scrollPattern =
// AutomationFactory.GetMySuperScrollPattern(
// this,
// _elementHolderNet.GetCachedPattern(pattern) as ScrollPattern);
// return scrollPattern;
// } else if (pattern.Id == TogglePattern.Pattern.Id) {
// IMySuperTogglePattern togglePattern =
// AutomationFactory.GetMySuperTogglePattern(
// this,
// _elementHolderNet.GetCachedPattern(pattern) as TogglePattern);
// return togglePattern;
// } else if (pattern.Id == ValuePattern.Pattern.Id) {
// IMySuperValuePattern valuePattern =
// AutomationFactory.GetMySuperValuePattern(
// this,
// _elementHolderNet.GetCachedPattern(pattern) as ValuePattern);//,
// return valuePattern;
// } else if (pattern.Id == WindowPattern.Pattern.Id) {
// IMySuperWindowPattern windowPattern =
// AutomationFactory.GetMySuperWindowPattern(
// this,
// _elementHolderNet.GetCachedPattern(pattern) as WindowPattern);//,
// return windowPattern;
// } else {
// return _elementHolderNet.GetCachedPattern(pattern);
// }
//return AutomationFactory.GetMySuperPattern<N, O>(this, _elementHolderNet.GetCachedPattern(pattern) as AutomationPattern); //(pattern as AutomationPattern))); // as AutomationPattern);// as O);

// return (N)AutomationFactory.GetMySuperPattern<N, O>(this, (_elementHolderNet.GetCachedPattern(pattern) as AutomationPattern));
// return (N)AutomationFactory.GetMySuperPattern<N>(this, (_elementHolderNet.GetCachedPattern(pattern) as AutomationPattern));
return (N)AutomationFactory.GetMySuperPattern<N>(this, _elementHolderNet.GetCachedPattern(pattern));
} else {
// 20131208
// if (pattern.Id == ExpandCollapsePattern.Pattern.Id) {
// IMySuperExpandCollapsePattern expandCollapsePattern =
// AutomationFactory.GetMySuperExpandCollapsePattern(
// this,
// _elementHolderNet.GetCurrentPattern(pattern) as ExpandCollapsePattern);
// return expandCollapsePattern;
// } else if (pattern.Id == InvokePattern.Pattern.Id) {
// IMySuperInvokePattern invokePattern =
// AutomationFactory.GetMySuperInvokePattern(
// this,
// _elementHolderNet.GetCurrentPattern(pattern) as InvokePattern);
// return invokePattern;
// } else if (pattern.Id == ScrollItemPattern.Pattern.Id) {
// IMySuperScrollItemPattern scrollItemPattern =
// AutomationFactory.GetMySuperScrollItemPattern(
// this,
// _elementHolderNet.GetCurrentPattern(pattern) as ScrollItemPattern);
// return scrollItemPattern;
// } else if (pattern.Id == ScrollPattern.Pattern.Id) {
// IMySuperScrollPattern scrollPattern =
// AutomationFactory.GetMySuperScrollPattern(
// this,
// _elementHolderNet.GetCurrentPattern(pattern) as ScrollPattern);
// return scrollPattern;
// } else if (pattern.Id == SelectionItemPattern.Pattern.Id) {
// IMySuperSelectionItemPattern selectionItemPattern =
// AutomationFactory.GetMySuperSelectionItemPattern(
// this,
// _elementHolderNet.GetCurrentPattern(pattern) as SelectionItemPattern);
// return selectionItemPattern;
// } else if (pattern.Id == SelectionPattern.Pattern.Id) {
// IMySuperSelectionPattern selectionPattern =
// AutomationFactory.GetMySuperSelectionPattern(
// this,
// _elementHolderNet.GetCurrentPattern(pattern) as SelectionPattern);
// return selectionPattern;
// } else if (pattern.Id == TogglePattern.Pattern.Id) {
// IMySuperTogglePattern togglePattern =
// AutomationFactory.GetMySuperTogglePattern(
// this,
// _elementHolderNet.GetCurrentPattern(pattern) as TogglePattern);
// return togglePattern;
// } else if (pattern.Id == ValuePattern.Pattern.Id) {
// IMySuperValuePattern valuePattern =
// AutomationFactory.GetMySuperValuePattern(
// this,
// _elementHolderNet.GetCurrentPattern(pattern) as ValuePattern);
// return valuePattern;
// } else if (pattern.Id == WindowPattern.Pattern.Id) {
// IMySuperWindowPattern windowPattern =
// AutomationFactory.GetMySuperWindowPattern(
// this,
// _elementHolderNet.GetCurrentPattern(pattern) as WindowPattern);
// return windowPattern;
// } else {
// return this._elementHolderNet.GetCurrentPattern(pattern);
// }



//return AutomationFactory.GetMySuperPattern<N, O>(this, _elementHolderNet.GetCurrentPattern(pattern) as AutomationPattern);// as O);
// var aaaa = AutomationFactory.GetMySuperPattern<N, O>(this, _elementHolderNet.GetCurrentPattern(pattern) as AutomationPattern); //(pattern as AutomationPattern))); // as AutomationPattern);// as O);

// this works
// var aaaa = (N)AutomationFactory.GetMySuperPattern<N, O>(this, (_elementHolderNet.GetCurrentPattern(pattern) as AutomationPattern)); //(pattern as AutomationPattern))); // as AutomationPattern);// as O);
//Console.WriteLine("gcp " + aaaa.GetType().Name);
//return aaaa;
// return (N)AutomationFactory.GetMySuperPattern<N, O>(this, (_elementHolderNet.GetCurrentPattern(pattern) as AutomationPattern));


// var a1 = _elementHolderNet.GetCurrentPattern(pattern);
// if (null == a1) {
// Console.WriteLine("null == _elementHolderNet.GetCurrentPattern(pattern)");
// } else {
// Console.WriteLine(a1.GetType().Name);
// var a2 = a1 as AutomationPattern;
// if (null == a2) {
// Console.WriteLine("null == _elementHolderNet.GetCurrentPattern(pattern) as AutomationPattern");
// } else {
// Console.WriteLine(a2.GetType().Name);
// var a3 = (N)AutomationFactory.GetMySuperPattern<N>(this, (_elementHolderNet.GetCurrentPattern(pattern) as AutomationPattern));
// if (null == a3) {
// Console.WriteLine("null == (N)AutomationFactory.GetMySuperPattern<N>(this, (_elementHolderNet.GetCurrentPattern(pattern) as AutomationPattern))");
// }
// }
// }
// return (N)AutomationFactory.GetMySuperPattern<N>(this, (_elementHolderNet.GetCurrentPattern(pattern) as AutomationPattern));
return (N)AutomationFactory.GetMySuperPattern<N>(this, _elementHolderNet.GetCurrentPattern(pattern));









}
// case InnerElementTypes.AutomationElementCom:
// //
Expand All @@ -298,10 +146,24 @@ public virtual N GetCurrentPattern<N>(AutomationPattern pattern)
// default:
/// return Preferences.FromCache ? _elementHolderNet.GetCachedPattern(pattern) : _elementHolderNet.GetCurrentPattern(pattern);
}
// 20131208
// return null;

return default(N);
}

// internal virtual object GetCurrentPatternLegacy(AutomationPattern pattern)
public virtual object GetCurrentPattern(AutomationPattern pattern)
{
switch (_innerElementType) {
case InnerElementTypes.AutomationElementNet:
return _elementHolderNet.GetCurrentPattern(pattern);
// case InnerElementTypes.AutomationElementCom:
// //
// case InnerElementTypes.UiElement:
// return _elementHolderAdapter.GetCurrentPattern(pattern);
default:
return _elementHolderNet.GetCurrentPattern(pattern);
}
}

public virtual bool TryGetCurrentPattern(AutomationPattern pattern, out object patternObject)
{
Expand Down

0 comments on commit fa94032

Please sign in to comment.