| Summary: | [General]Support keyboard navigation for explorer tree. | ||
|---|---|---|---|
| Product: | [ECD] Orion | Reporter: | libing wang <libingw> |
| Component: | Client | Assignee: | libing wang <libingw> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | john.arthorne, maxli, simon_kaegi, susan |
| Version: | 0.4 | ||
| Target Milestone: | 0.4 RC1 | ||
| Hardware: | PC | ||
| OS: | Windows 7 | ||
| Whiteboard: | |||
| Bug Depends on: | 369738 | ||
| Bug Blocks: | 349591 | ||
|
Description
libing wang
Talked to Susan, Guide line for tree grid. http://www.w3.org/TR/wai-aria-practices/#treegrid. I do not think we will implement the full spec here but just a subset of the 4 arrow and enter keys. The main thing we want to make sure is to avoid conflicts from the guide line. Bug 370496 has relationship with this bug. If we want to toggle check box then we may think about that bug together. I will not generalize the "select all" as I mentioned before(bug 370496). My plan is to have a new "TreeIterationHandler", which holds a generic explorer. The existing contract is that explorer has a renderer, renderer has a model, hence we can use the model to create the TreeModelIterator. All the common iteration/expand/collapse behaviors will be implemented in the "TreeIterationHandler". In 0.4, FileExplorer and SearchExplorer will consume this. We will think about a consuming this in all *explorers but that will be post 0.4. Some design details: 1.In the model level, we need a new contract to provide the first level children. By default, it should be root.children. Some times you do not want to iterate every node(e.g. search result may have file nodes that are stale. They are rendered, but iterator does not need it). 2.The default behavior after iterator++/-- is just to move the "cursor" in the table row. Optional callbacks can be provided for the post behavior. For example, in search page the callback will change the context tip while in replace page it will change the diff view, etc. |