summaryrefslogtreecommitdiff
path: root/lib/dijit/_Contained.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dijit/_Contained.js')
-rw-r--r--lib/dijit/_Contained.js91
1 files changed, 68 insertions, 23 deletions
diff --git a/lib/dijit/_Contained.js b/lib/dijit/_Contained.js
index 50d9dc559..fcefca1f8 100644
--- a/lib/dijit/_Contained.js
+++ b/lib/dijit/_Contained.js
@@ -1,31 +1,76 @@
/*
- Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
-if(!dojo._hasResource["dijit._Contained"]){
-dojo._hasResource["dijit._Contained"]=true;
+if(!dojo._hasResource["dijit._Contained"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dijit._Contained"] = true;
dojo.provide("dijit._Contained");
-dojo.declare("dijit._Contained",null,{getParent:function(){
-var _1=dijit.getEnclosingWidget(this.domNode.parentNode);
-return _1&&_1.isContainer?_1:null;
-},_getSibling:function(_2){
-var _3=this.domNode;
-do{
-_3=_3[_2+"Sibling"];
-}while(_3&&_3.nodeType!=1);
-return _3&&dijit.byNode(_3);
-},getPreviousSibling:function(){
-return this._getSibling("previous");
-},getNextSibling:function(){
-return this._getSibling("next");
-},getIndexInParent:function(){
-var p=this.getParent();
-if(!p||!p.getIndexOfChild){
-return -1;
-}
-return p.getIndexOfChild(this);
-}});
+
+
+dojo.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
+ // | dojo.declare("my.customClass",[dijit._Widget,dijit._Contained],{});
+
+ getParent: function(){
+ // summary:
+ // Returns the parent widget of this widget, assuming the parent
+ // specifies isContainer
+ var parent = dijit.getEnclosingWidget(this.domNode.parentNode);
+ return parent && parent.isContainer ? parent : null;
+ },
+
+ _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 && dijit.byNode(node); // dijit._Widget
+ },
+
+ 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._Widget
+ },
+
+ 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._Widget
+ },
+
+ 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
+ }
+ }
+ );
+
}