+ },\r
+ \r
+ /*\r
+ * Repeater に於いて、繰り返されるアイテムの元(itemRenderer)からの複製に使用\r
+ */\r
+ clone : function( opt_cloneListener ){\r
+ var newNode,\r
+ //newPair = X_Pair_get( newNode ),\r
+ pair = X_Pair_get( this ),\r
+ attr, listeners, type, list, i, l;\r
+\r
+ // attr もコピー\r
+ if( pair.attrObject ){\r
+ attr = {};\r
+ for( k in pair.usableAttrs ){\r
+ def = pair.usableAttrs[ k ];\r
+ attr[ k ] = pair.attrObject[ def.No ];\r
+ };\r
+ newNode = this.constructor( attr );\r
+ };\r
+\r
+ // handleEvent 等の拡張されたオブジェクトもコピーする!\r
+ for( k in this ){\r
+ if( this[ k ] !== newNode[ k ] && !newNode[ k ] ) newNode[ k ] = this[ k ];\r
+ };\r
+ \r
+ // User.UINODE な値は pair にコピーされているのでこれをコピー\r
+ for( k in pair ){\r
+ //pair[ k ] !== newPair[ k ] && !newPair[ k ] && console.log( k );\r
+ //if( pair[ k ] !== newPair[ k ] && !newPair[ k ] && k !== 'attrObject' && k !== '_listeners' ){\r
+ //newPair[ k ] = pair[ k ];\r
+ //console.log( k );\r
+ //};\r
+ };\r
+ \r
+\r
+ \r
+ // listener もコピーする!\r
+ if( opt_cloneListener && ( listeners = pair[ '_listeners' ] ) ){\r
+ for( type in listeners ){\r
+ list = listeners[ type ];\r
+ for( i = 0, l = list.length; i < l; ++i ){\r
+ f = list[ i ];\r
+ switch( f.kind ){\r
+ case X_CLOSURE_THIS_FUNC :\r
+ if( f.lock ){\r
+ X_EventDispatcher_systemListen( newNode, type, f.context === this ? newNode : f.context, f.func, f.supplement );\r
+ } else {\r
+ newNode[ f.once ? 'listenOnce' : 'listen' ]( type, f.context === this ? newNode : f.context, f.func, f.supplement );\r
+ };\r
+ break;\r
+ case X_CLOSURE_HANDLEEVENT :\r
+ if( f.lock ){\r
+ X_EventDispatcher_systemListen( newNode, type, f.context === this ? newNode : f.context, f.supplement );\r
+ } else {\r
+ newNode[ f.once ? 'listenOnce' : 'listen' ]( type, f.context === this ? newNode : f.context, f.supplement );\r
+ };\r
+ break;\r
+ /*\r
+ case X_CLOSURE_FUNC_ONLY :\r
+ if( f.lock ){\r
+ X_EventDispatcher_systemListen( newNode, type, f.func, f.supplement );\r
+ } else {\r
+ newNode[ f.once ? 'listenOnce' : 'listen' ]( type, f.func, f.supplement );\r
+ };\r
+ break;\r
+ default :\r
+ newNode[ 'listen' ]( type, f );\r
+ break; */\r
+ };\r
+ }; \r
+ };\r
+ } else\r
+ if( opt_cloneListener && ( list = this.reserveEvents ) ){\r
+ for( i = 0, l = list.length; i < l; ++i ){\r
+ f = list[ i ];\r
+ newNode[ f.once ? 'listenOnce' : 'listen' ]( f[ 0 ], newNode, f[ 1 ], f[ 2 ] );\r
+ }; \r
+ };\r
+ \r
+ return newNode;\r