yzt
2023-05-26 2f70f6727314edd84d8ec2bfe3ce832803f1ea77
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
define([
    "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 its parents
        //  |   declare("my.customClass",[dijit._WidgetBase, 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
        }
    });
});