| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | 
							- <!DOCTYPE html>
 
- <html>
 
- <head>
 
-   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
-   <title>The source code</title>
 
-   <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
 
-   <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
 
-   <style type="text/css">
 
-     .highlight { display: block; background-color: #ddd; }
 
-   </style>
 
-   <script type="text/javascript">
 
-     function highlight() {
 
-       document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
 
-     }
 
-   </script>
 
- </head>
 
- <body onload="prettyPrint(); highlight();">
 
-   <pre class="prettyprint lang-js"><span id='Ext-selection-TreeModel'>/**
 
- </span> * Adds custom behavior for left/right keyboard navigation for use with a tree.
 
-  * Depends on the view having an expand and collapse method which accepts a
 
-  * record.
 
-  * 
 
-  * @private
 
-  */
 
- Ext.define('Ext.selection.TreeModel', {
 
-     extend: 'Ext.selection.RowModel',
 
-     alias: 'selection.treemodel',
 
-     
 
-     // typically selection models prune records from the selection
 
-     // model when they are removed, because the TreeView constantly
 
-     // adds/removes records as they are expanded/collapsed
 
-     pruneRemoved: false,
 
-     
 
-     onKeyRight: function(e, t) {
 
-         var focused = this.getLastFocused(),
 
-             view    = this.view;
 
-             
 
-         if (focused) {
 
-             // tree node is already expanded, go down instead
 
-             // this handles both the case where we navigate to firstChild and if
 
-             // there are no children to the nextSibling
 
-             if (focused.isExpanded()) {
 
-                 this.onKeyDown(e, t);
 
-             // if its not a leaf node, expand it
 
-             } else if (focused.isExpandable()) {
 
-                 view.expand(focused);
 
-             }
 
-         }
 
-     },
 
-     
 
-     onKeyLeft: function(e, t) {
 
-         var focused = this.getLastFocused(),
 
-             view    = this.view,
 
-             viewSm  = view.getSelectionModel(),
 
-             parentNode, parentRecord;
 
-         if (focused) {
 
-             parentNode = focused.parentNode;
 
-             // if focused node is already expanded, collapse it
 
-             if (focused.isExpanded()) {
 
-                 view.collapse(focused);
 
-             // has a parentNode and its not root
 
-             // TODO: this needs to cover the case where the root isVisible
 
-             } else if (parentNode && !parentNode.isRoot()) {
 
-                 // Select a range of records when doing multiple selection.
 
-                 if (e.shiftKey) {
 
-                     viewSm.selectRange(parentNode, focused, e.ctrlKey, 'up');
 
-                     viewSm.setLastFocused(parentNode);
 
-                 // just move focus, not selection
 
-                 } else if (e.ctrlKey) {
 
-                     viewSm.setLastFocused(parentNode);
 
-                 // select it
 
-                 } else {
 
-                     viewSm.select(parentNode);
 
-                 }
 
-             }
 
-         }
 
-     },
 
-     
 
-     onKeySpace: function(e, t) {
 
-         this.toggleCheck(e);
 
-     },
 
-     
 
-     onKeyEnter: function(e, t) {
 
-         this.toggleCheck(e);
 
-     },
 
-     
 
-     toggleCheck: function(e){
 
-         e.stopEvent();
 
-         var selected = this.getLastSelected();
 
-         if (selected) {
 
-             this.view.onCheckChange(selected);
 
-         }
 
-     }
 
- });
 
- </pre>
 
- </body>
 
- </html>
 
 
  |