Bug 489941

Summary: Implement Atk.Table implementor
Product: [Mono] UI Automation Reporter: Brad Taylor <btaylor1>
Component: Moonlight - ATKAssignee: Andres Aragoneses <aaragoneses>
Status: RESOLVED FIXED QA Contact: E-mail List <mono-a11y-qa>
Severity: Enhancement    
Priority: P4 - Low    
Version: Unspecified   
Target Milestone: Release 2.0   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Bug Depends on: 546909    
Bug Blocks:    
Attachments: Changed to multi-level
new version

Description Brad Taylor 2009-03-27 22:18:27 UTC
Create an implementor that implements all Atk.Table methods, properties and
events generically so that it can be used by all controls. 

It should be able to recognize and proxy:
  - ITableProvider
  - IGridProvider

Also, provide a unit test for the new functionality.
Comment 1 Andres Aragoneses 2009-06-04 14:47:40 UTC
Oops, reverting dependency.
Comment 2 Andres Aragoneses 2009-07-29 17:50:56 UTC
According to mgorse, TableImplementorHelper may be useless, so I guess I'll need more time to figure out this...
Comment 3 Andres Aragoneses 2009-08-21 22:03:54 UTC
Worked a bit on this.
Comment 4 Andres Aragoneses 2009-08-26 16:09:14 UTC
The implementation will likely change slightly from the WinForms one (multi-level children hierarchy)... Doing a bit of research right now with orca, which BTW stumbles upon new bug 534100.
Comment 5 Andres Aragoneses 2009-08-27 23:55:34 UTC
Created attachment 315659 [details]
Changed to multi-level

This patch contains also the patch for bug 534100.

It makes trees appear as having multi-level children.
Comment 6 Andres Aragoneses 2009-09-21 19:19:17 UTC
Created attachment 319135 [details]
new version

Now that I committed the fix for bug 534100, I'm uploading the new version of this patch, which BTW contains a fix for an infinite loop.
Comment 7 Andres Aragoneses 2009-09-23 03:26:20 UTC
Still working on this. It seems we'll need to modify orca. But WWalker has given me some requirements to fulfill before proposing a patch on it.
Comment 8 Andres Aragoneses 2009-10-08 21:12:20 UTC
After a lot of hours investigating the issue, I think I found the culprit, which is not in our code but in orca. When running the winforms treeview with the multi-level approach the focus signals are not wrong, but:

- Orca says the name of a cell which is not focused, but not through it's Name, but through Atk.Text interface.
- In default.py (orca source code), the function locusOfFocusChanged has a different behaviour depending on if the treeview is multi-level or not. The exact difference is that the object newLocusOfFocus is indeed the correct one that got new focus, but the function that constructs the information to pass to the speech somehow screws up:

            utterances = self.speechGenerator.generateSpeech(
                newLocusOfFocus,
                priorObj=oldLocusOfFocus)

There, the var utterances becomes an array of information about the object newLocusOfFocus, however utterances contains an erroneus name, different than the one that newLocusOfFocus has. This is clearly a bug in orca that should be fixed.
Comment 9 Andres Aragoneses 2009-10-14 13:53:09 UTC
I'm working on porting the Atk.Table and Atk.Relation code from the Winforms bridge to the Moon bridge, but on the way I've found bugs on the winforms which I'm trying to fix first.
Comment 10 Andres Aragoneses 2009-10-14 17:37:09 UTC
Bug related to this, but maybe not dependant: bug 546970.
Comment 11 Andres Aragoneses 2009-10-28 20:12:10 UTC
Taking more time because of weird problems (maybe a bug in moon? GetAccessibleHandle() is called *before* rootvisual is set).
Comment 12 Andres Aragoneses 2009-11-06 15:40:33 UTC
Hours.
Comment 13 Andres Aragoneses 2009-11-11 03:20:02 UTC
Orca will have to be fixed, but it doesn't block basic table impl.
Comment 14 Andres Aragoneses 2009-11-11 03:20:43 UTC
Mainly done in http://reviews.mono-a11y.org/r/488/. Total 32h in this iteration (got 2 days off).