60 строки
1,6 КиБ
JavaScript
60 строки
1,6 КиБ
JavaScript
define("dijit/_Contained", [
|
|
"dojo/_base/declare", // declare
|
|
"./registry" // registry.getEnclosingWidget(), registry.byNode()
|
|
], function(declare, registry){
|
|
|
|
// module:
|
|
// dijit/_Contained
|
|
|
|
return declare("dijit._Contained", null, {
|
|
// summary:
|
|
// Mixin for widgets that are children of a container widget
|
|
//
|
|
// example:
|
|
// | // make a basic custom widget that knows about it's parents
|
|
// | declare("my.customClass",[dijit._Widget,dijit._Contained],{});
|
|
|
|
_getSibling: function(/*String*/ which){
|
|
// summary:
|
|
// Returns next or previous sibling
|
|
// which:
|
|
// Either "next" or "previous"
|
|
// tags:
|
|
// private
|
|
var node = this.domNode;
|
|
do{
|
|
node = node[which+"Sibling"];
|
|
}while(node && node.nodeType != 1);
|
|
return node && registry.byNode(node); // dijit/_WidgetBase
|
|
},
|
|
|
|
getPreviousSibling: function(){
|
|
// summary:
|
|
// Returns null if this is the first child of the parent,
|
|
// otherwise returns the next element sibling to the "left".
|
|
|
|
return this._getSibling("previous"); // dijit/_WidgetBase
|
|
},
|
|
|
|
getNextSibling: function(){
|
|
// summary:
|
|
// Returns null if this is the last child of the parent,
|
|
// otherwise returns the next element sibling to the "right".
|
|
|
|
return this._getSibling("next"); // dijit/_WidgetBase
|
|
},
|
|
|
|
getIndexInParent: function(){
|
|
// summary:
|
|
// Returns the index of this widget within its container parent.
|
|
// It returns -1 if the parent does not exist, or if the parent
|
|
// is not a dijit._Container
|
|
|
|
var p = this.getParent();
|
|
if(!p || !p.getIndexOfChild){
|
|
return -1; // int
|
|
}
|
|
return p.getIndexOfChild(this); // int
|
|
}
|
|
});
|
|
});
|