+++ /dev/null
-/*!
- * Ext JS Library 3.0.3
- * Copyright(c) 2006-2009 Ext JS, LLC
- * licensing@extjs.com
- * http://www.extjs.com/license
- */
-(function() {\r
-\r
-Ext.a11y.ARIA = Ext.apply(new Ext.util.Observable(), function() {\r
- return {\r
- setRole : function(el, role) {\r
- el = Ext.getDom(el);\r
- if(el) {\r
- el.setAttribute('role', role.toString());\r
- }\r
- },\r
- \r
- setProperty : function(el, key, value) {\r
- el = Ext.getDom(el);\r
- if(el) {\r
- el.setAttribute(key.toString(), value.toString());\r
- } \r
- }\r
- }\r
-}());\r
-\r
-var ARIA = Ext.a11y.ARIA;\r
-\r
-Ext.override(Ext.tree.TreeNode, {\r
- render : function(bulkRender){\r
- this.ui.render(bulkRender);\r
- if(!this.rendered){\r
- // make sure it is registered\r
- this.getOwnerTree().registerNode(this);\r
- this.rendered = true;\r
- this.fireEvent('noderender', this);\r
- if(this.expanded){\r
- this.expanded = false;\r
- this.expand(false, false);\r
- }\r
- }\r
- }\r
-});\r
-\r
-Ext.override(Ext.tree.TreePanel, {\r
- initARIA : function() {\r
- Ext.tree.TreePanel.superclass.initARIA.call(this);\r
- this.getSelectionModel().on('selectionchange', this.onNodeSelect, this);\r
- this.ariaTreeEl = this.body.down('.x-tree-root-ct');\r
- this.on('collapsenode', this.onNodeCollapse, this);\r
- this.on('expandnode', this.onNodeExpand, this);\r
- },\r
- \r
- // private\r
- registerNode : function(node){\r
- if(this.nodeHash[node.id] === undefined) {\r
- node.on('noderender', this.onNodeRender, this);\r
- }\r
- this.nodeHash[node.id] = node;\r
- },\r
-\r
- // private\r
- unregisterNode : function(node){\r
- node.un('noderender', this.onNodeRender, this);\r
- delete this.nodeHash[node.id];\r
- },\r
- \r
- onNodeRender : function(node) {\r
- var a = node.ui.anchor,\r
- level = this.rootVisible ? 1 : 0,\r
- pnode = node;\r
- \r
- if(node.isRoot) {\r
- ARIA.setRole(this.ariaTreeEl, 'tree');\r
- ARIA.setProperty(this.ariaTreeEl, 'aria-labelledby', Ext.id(node.ui.textNode));\r
- ARIA.setProperty(this.ariaTreeEl, 'aria-activedescendant', 'false');\r
- if(!this.rootVisible) {\r
- return;\r
- }\r
- }\r
- ARIA.setRole(node.ui.wrap, 'treeitem');\r
- ARIA.setProperty(node.ui.wrap, 'aria-labelledby', Ext.id(node.ui.textNode)); \r
- ARIA.setProperty(node.ui.wrap, 'aria-expanded', 'false');\r
- ARIA.setProperty(node.ui.wrap, 'aria-selected', 'false');\r
- while (pnode.parentNode) {\r
- level++;\r
- pnode = pnode.parentNode;\r
- }\r
- ARIA.setProperty(node.ui.wrap, 'aria-level', level); \r
- if(!node.isLeaf()) {\r
- ARIA.setRole(node.ui.ctNode, 'group');\r
- ARIA.setProperty(node.ui.wrap, 'aria-expanded', node.isExpanded());\r
- }\r
- },\r
- \r
- onNodeSelect : function(sm, node) {\r
- ARIA.setProperty(this.ariaTreeEl, 'aria-activedescendant', Ext.id(node.ui.wrap));\r
- ARIA.setProperty(node.ui.wrap, 'aria-selected', 'true');\r
- },\r
- \r
- onNodeCollapse : function(node) {\r
- ARIA.setProperty(node.ui.wrap, 'aria-expanded', 'false');\r
- },\r
- \r
- onNodeExpand : function(node) {\r
- ARIA.setProperty(node.ui.wrap, 'aria-expanded', 'true');\r
- }\r
-});\r
- \r
-})();
\ No newline at end of file