123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- define("dijit/form/_ListBase", [
- "dojo/_base/declare",
- "dojo/window"
- ], function(declare, winUtils){
- return declare( "dijit.form._ListBase", null, {
-
-
-
-
-
-
-
-
-
- selected: null,
- _getTarget: function(/*Event*/ evt){
- var tgt = evt.target;
- var container = this.containerNode;
- if(tgt == container || tgt == this.domNode){ return null; }
- while(tgt && tgt.parentNode != container){
-
- tgt = tgt.parentNode;
- }
- return tgt;
- },
- selectFirstNode: function(){
-
-
- var first = this.containerNode.firstChild;
- while(first && first.style.display == "none"){
- first = first.nextSibling;
- }
- this._setSelectedAttr(first, true);
- },
- selectLastNode: function(){
-
-
- var last = this.containerNode.lastChild;
- while(last && last.style.display == "none"){
- last = last.previousSibling;
- }
- this._setSelectedAttr(last, true);
- },
- selectNextNode: function(){
-
-
-
- var selectedNode = this._getSelectedAttr();
- if(!selectedNode){
- this.selectFirstNode();
- }else{
- var next = selectedNode.nextSibling;
- while(next && next.style.display == "none"){
- next = next.nextSibling;
- }
- if(!next){
- this.selectFirstNode();
- }else{
- this._setSelectedAttr(next, true);
- }
- }
- },
- selectPreviousNode: function(){
-
-
-
-
- var selectedNode = this._getSelectedAttr();
- if(!selectedNode){
- this.selectLastNode();
- }else{
- var prev = selectedNode.previousSibling;
- while(prev && prev.style.display == "none"){
- prev = prev.previousSibling;
- }
- if(!prev){
- this.selectLastNode();
- }else{
- this._setSelectedAttr(prev, true);
- }
- }
- },
- _setSelectedAttr: function(/*DomNode*/ node, /*Boolean*/ scroll){
-
-
-
-
-
-
-
- if(this.selected != node){
- var selectedNode = this._getSelectedAttr();
- if(selectedNode){
- this.onDeselect(selectedNode);
- this.selected = null;
- }
- if(node && node.parentNode == this.containerNode){
- this.selected = node;
- if(scroll){
- winUtils.scrollIntoView(node);
- }
- this.onSelect(node);
- }
- }else if(node){
- this.onSelect(node);
- }
- },
- _getSelectedAttr: function(){
-
-
- var v = this.selected;
- return (v && v.parentNode == this.containerNode) ? v : (this.selected = null);
- }
- });
- });
|