Bug 558634

Summary: Translate the AutomationElement proerty value For the AutomationPropertyChangedEvent (Atspi)
Product: [Mono] UI Automation Reporter: Rui Guo <rguo>
Component: Client - AT-SPIAssignee: Mario Carrion <mcarrion>
Status: RESOLVED FIXED QA Contact: E-mail List <mono-a11y-qa>
Severity: Normal    
Priority: P5 - None    
Version: Unspecified   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Bug Depends on:    
Bug Blocks: 559577    

Description Rui Guo 2009-11-26 08:00:43 UTC
When an AutomationPropertyChangedEvent is fired, the new/old value of the related automation property shall be also given.
For most AutomationProperties, since their type are primitive types, or string, or enum, we can just pass the new/old values of those AutomationProperties from the provider end to the client end.
However there're some other AutomationProperties are not just primitive types,  string, or enum. So we need to do some serialize/deserialize/translation work to make the property value go through dbus and our various bridges.
Luckily as I examined all the patterns, all of those AutomationProperties (which are not primitive types,  string, or enum ) are of type AutomationElement, or AutomationElement[].

AutomationElement[] properties:
TableItemPattern.ColumnHeaderItemsProperty
TableItemPattern.RowHeaderItemsProperty
TableItem.ColumnHeadersProperty
TableItem.RowHeadersProperty
SelectionPattern.SelectionProperty

AutomationElement properties:
GridItemPattern.ContainingGridProperty
SelectionItemPattern.SelectionContainerProperty

So we need to take additional care to provide new/old values of these AutomationProperties to the client end when corresponding AutomationPropertyChangedEvent are fired.
Comment 1 Mario Carrion 2009-12-03 18:52:16 UTC
Fixed uia2atk-r147578