OSDN Git Service

Version 0.6.55, working uinode.listen(...)!
[pettanr/clientJs.git] / 0.6.x / js / ui / 06_AbstractUINode.js
index 0897a62..73d9c4b 100644 (file)
@@ -25,13 +25,6 @@ var _AbstractUINode = X.EventDispatcher.inherits(
                reserveEvents     : null,\r
                gesture           : null,\r
 \r
-               x                 : 0,\r
-               y                 : 0,\r
-               \r
-               t                 : 0, // top\r
-               l                 : 0, // left\r
-               b                 : 0, // bottom\r
-               r                 : 0, // right\r
                absoluteX         : 0,\r
                absoluteY         : 0,\r
                \r
@@ -69,27 +62,14 @@ var _AbstractUINode = X.EventDispatcher.inherits(
                // :hover, :focus, :disabled\r
                \r
                initialize : function( root, rootData, parent, parentData ){\r
-                       var events = this.reserveEvents,\r
-                               l, i;                   \r
-                       \r
                        this.root       = root;\r
                        this.rootData   = rootData;\r
-                       this.hoverList  = rootData.hoverList;\r
                        this.parent     = parent;\r
                        this.parentData = parentData;\r
                        //this.xnode      = X.Dom.Node.create( 'div' );\r
                        this.phase      = 1;\r
                        \r
                        this.dispatch( { type : X.UI.Event.INIT } );\r
-                       \r
-                       // html 要素が親に追加されるまで控えていたイベントの登録\r
-                       if( events && ( l = events.length ) ){\r
-                               for( i = 0; i < l; ++i ){\r
-                                       this.listen.apply( this, events[ i ] );\r
-                               };\r
-                               events.length = 0;\r
-                               delete this.reserveEvents;\r
-                       };                      \r
                },\r
                \r
                addToParent : function( parentElement ){\r
@@ -100,8 +80,20 @@ var _AbstractUINode = X.EventDispatcher.inherits(
                },\r
                \r
                creationComplete : function(){\r
+                       var events = this.reserveEvents,\r
+                               l, i;\r
+                       \r
                        this.phase = 3;\r
                        this.User.dispatch( { type : X.UI.Event.CREATION_COMPLETE } );\r
+                       \r
+                       // html 要素が親に追加されるまで控えていたイベントの登録\r
+                       if( events && ( l = events.length ) ){\r
+                               for( i = 0; i < l; ++i ){\r
+                                       this.listen.apply( this, events[ i ] );\r
+                               };\r
+                               events.length = 0;\r
+                               delete this.reserveEvents;\r
+                       };                      \r
                },\r
                \r
                /*\r
@@ -423,8 +415,8 @@ var _AbstractUINode = X.EventDispatcher.inherits(
                 * X.Dom.BoxModel の情報を引きながら top,left,width,height,padding,border の設定\r
                 */\r
                updateLayout : function( x, y ){\r
-                       x += this.boxX;\r
-                       y += this.boxY;\r
+                       this.boxX = x;\r
+                       this.boxY = y;\r
                        this.xnode\r
                                .css( 'left',        x ? x + 'em' : 0 )\r
                                .css( 'top',         y ? y + 'em' : 0 )\r
@@ -749,11 +741,12 @@ var _AbstractUINode = X.EventDispatcher.inherits(
                capcher : function( x, y ){\r
                        if( this.pointerDisabled ) return false;\r
                        \r
-                       x -= this.x;\r
-                       y -= this.y;\r
+                       x -= this.boxX;\r
+                       y -= this.boxY;\r
 \r
                        if( 0 <= x && x < this.boxWidth && 0 <= y && y < this.boxHeight ){\r
-                               !this.hovering && ( this.hoverList[ this.hoverList.length ] = this );\r
+                               \r
+                               !this.hovering && ( this.rootData.hoverList[ this.rootData.hoverList.length ] = this );\r
                                this.rootData.targetNodeData = this;\r
                                return true;\r
                        };\r
@@ -775,6 +768,7 @@ var _AbstractUINode = X.EventDispatcher.inherits(
                                                this.gesture.listen( type );\r
                                        };\r
                                } else {\r
+                                       console.log( type )\r
                                        root    = this.rootData;\r
                                        counter = root.eventCounter;\r
                                        if( counter[ type ] ){\r
@@ -951,11 +945,11 @@ var AbstractUINode = X.Class.create(
                },\r
                getX : function(){\r
                        // dirty の場合、rootData.calculate\r
-                       return X.Class._getPrivate( this ).x;\r
+                       return X.Class._getPrivate( this ).boxX;\r
                },\r
                getY : function(){\r
                        // dirty の場合、rootData.calculate\r
-                       return X.Class._getPrivate( this ).y;\r
+                       return X.Class._getPrivate( this ).boxY;\r
                },\r
                getAbsoluteX : function(){\r
                        // dirty の場合、rootData.calculate\r