OSDN Git Service

Version 0.6.138, working X.UI.ScrollBox!, fix Node.prev & Node.next.
[pettanr/clientJs.git] / 0.6.x / js / 20_ui / 14_ChromeBox.js
1 X.UI._ChromeBox = X.UI._Box.inherits(\r
2         '_ChromeBox',\r
3         X_Class.PRIVATE_DATA | X_Class.SUPER_ACCESS,\r
4         {\r
5                 chromeNodes   : null,\r
6                 containerNode : null,\r
7                 \r
8                 Constructor : function( layout, args ){\r
9                         var uinodes, i, l, node, after, index = 0;\r
10                         \r
11                         this[ 'Super' ]( layout, args );\r
12 \r
13                         uinodes = this.uinodes;\r
14                         l = i   = uinodes.length;\r
15 \r
16                         for( ; i; ){\r
17                                 node = uinodes[ --i ];\r
18                                 if( node.role === 3 ){\r
19                                         if( this.containerNode ){\r
20                                                 //throw new Error( 'ContainerNode が複数設定されています!ContainerNode はクロームボックスにひとつ、生成時に設定できます ' + node );\r
21                                         };\r
22                                         this.containerNode = node.User;\r
23                                         this._containerNode = node;\r
24                                 } else {\r
25                                         if( !this.chromeNodes ) this.chromeNodes = [];\r
26                                         this.chromeNodes[ this.chromeNodes.length ] = node;\r
27                                 };\r
28                         };\r
29                         if( !this.containerNode ){\r
30                                 //throw new Error( 'ContainerNode が設定されてい\ません!ContainerNode はクロームボックスにひとつ、生成時に設定できます ' );\r
31                         };\r
32                         \r
33                         for( i = 0, l = args.length; i < l; ++i ){\r
34                                 node = args[ i ];\r
35                                 if( node === this.containerNode ){\r
36                                         after = true;\r
37                                         index = 0;\r
38                                 };\r
39                                 if( node[ 'instanceOf' ] && node[ 'instanceOf' ]( Node ) ){\r
40                                         \r
41                                 };\r
42                         };\r
43                 }\r
44         }\r
45 );\r
46 \r
47 X.UI.ChromeBox = X.UI.Box.inherits(\r
48         'ChromeBox',\r
49         X_Class.SUPER_ACCESS,\r
50         X.UI._ChromeBox,\r
51         {\r
52                 Constructor : function(){\r
53                         X_Class_newPrivate( this, X.UI.Layout.Canvas, arguments );\r
54                 },\r
55                 add : function( node /* , node, node ... */ ){\r
56                         X_Class_getPrivate( this ).containerNode.addAt( this.numNodes(), Array.prototype.slice.call( arguments ) );\r
57                         return this;\r
58                 },\r
59                 addAt : function( index, node /* , node, node ... */ ){\r
60                         X_Class_getPrivate( this ).containerNode.addAt( index, Array.prototype.slice.call( arguments, 1 ) );\r
61                         return this;\r
62                 },\r
63                 remove : function( node /* , node, node ... */ ){\r
64                         X_Class_getPrivate( this ).containerNode[ 'remove' ]( arguments );\r
65                         return this;\r
66                 },\r
67                 removeAt : function( from, length ){\r
68                         X_Class_getPrivate( this ).containerNode.removeAt( from, length );\r
69                         return this;\r
70                 },\r
71                 getNodesByClass : function( klass ){\r
72                         return X_Class_getPrivate( this ).containerNode.User.getNodesByClass( klass );\r
73                 },\r
74                 getFirstChild : function(){\r
75                         return X_Class_getPrivate( this ).containerNode.User.getFirstChild();\r
76                 },\r
77                 getLastChild : function(){\r
78                         return X_Class_getPrivate( this ).containerNode.User.getLastChild();\r
79                 },\r
80                 getNodeByUID : function( uid ){\r
81                         return X_Class_getPrivate( this ).containerNode.User.getNodeByUID();\r
82                 },\r
83                 getNodeAt : function( index ){\r
84                         return X_Class_getPrivate( this ).containerNode.User.getNodeAt( index );\r
85                 },\r
86                 numNodes : function(){\r
87                         return X_Class_getPrivate( this ).containerNode.User.numNodes();\r
88                 },\r
89                 getContainerNode : function(){\r
90                         return X_Class_getPrivate( this ).containerNode.User;\r
91                 },\r
92                 getChromeNodeAt : function( index ){\r
93                         if( index < 0 ) return null;\r
94                         var nodes = X_Class_getPrivate( this ).chromeNodes;\r
95                         return nodes ? nodes[ index ].User || null : null;\r
96                 },\r
97                 numChromeNodes : function(){\r
98                         var nodes = X_Class_getPrivate( this ).chromeNodes;\r
99                         return nodes ? nodes.length : 0;\r
100                 }\r
101         }\r
102 );