OSDN Git Service

Version 0.6.190, fix X.UI.ScrollBox & X.UI.Gesture.
[pettanr/clientJs.git] / 0.6.x / js / 20_ui / 17_Text.js
index 10624d7..08cec6d 100644 (file)
@@ -1,19 +1,58 @@
-X.UI._Text = X.UI._AbstractUINode.inherits(\r
+var X_UI_Text_SUPPORT_ATTRS = {\r
+               content   : [ '' , XUI_Dirty.CONTENT, XUI_Attr_USER.UINODE, XUI_Attr_Type.STRING ],\r
+               bgColor   : [ NaN, XUI_Dirty.PAINT,  XUI_Attr_USER.XNODE,  XUI_Attr_Type.COLOR ]\r
+},\r
+\r
+X_UI_Text_usableAttrs = XUI_Attr_createAttrDef( XUI_AbstractUINode.prototype.usableAttrs, X_UI_Text_SUPPORT_ATTRS );\r
+\r
+var XUI_Text = XUI_AbstractUINode.inherits(\r
        '_Text',\r
-       X.Class.PRIVATE_DATA,\r
+       X_Class.NONE,\r
        {\r
-               content     : null,\r
+               content     : '',\r
+               \r
+               usableAttrs : __textAttrs = X_UI_Text_usableAttrs,\r
                \r
-               Constructor : function( content ){\r
-                       if( !( this.User.instanceOf( Text ) ) ){\r
-                               //throw new Error( 'Text を継承したインスタンスだけが _Text のオーナーになれます' );\r
+               attrClass   : XUI_Attr_preset( XUI_AbstractUINode.prototype.attrClass,  X_UI_Text_usableAttrs ),\r
+               \r
+               Constructor : function( user, content ){\r
+                       if( !( user[ 'instanceOf' ]( X.UI.Text ) ) ){\r
+                               alert( 'Text を継承したインスタンスだけが _Text のオーナーになれます' );\r
                        };\r
-                       this.xnode      = X.Dom.Node.create( 'div' );\r
+                       this.User  = user;\r
+                       this.xnode = X_Doc_create( 'div' );\r
                        \r
-                       if( X.Type.isString( content ) && content ){\r
+                       if( X_Type_isString( content ) && content ){\r
                                this.content = content;\r
-                               this.xnode.text( this.content );\r
-                               this.dirty   = X.UI.Dirty.CONTENT;\r
+                       };\r
+               },\r
+               \r
+               creationComplete : function(){\r
+                       if( X_Type_isString( this.content ) && this.content ){\r
+                               this.xnode[ 'text' ]( this.content );\r
+                               this.dirty   = XUI_Dirty.CONTENT;\r
+                       };\r
+                       \r
+                       XUI_AbstractUINode.prototype.creationComplete.apply( this, arguments );                 \r
+               },\r
+               \r
+               setContent : function( v ){\r
+                       if( this.content !== v ){\r
+                               this.content = v;\r
+                               this.xnode && this.xnode[ 'text' ]( v );\r
+                               this.rootData.reserveCalc();\r
+                               if( this.dirty < XUI_Dirty.CONTENT ) this.dirty = XUI_Dirty.CONTENT;\r
+                       };\r
+                       return this;\r
+               },\r
+               \r
+               setItemData : function( itemData ){\r
+                       if( this.itemData === itemData ) return;\r
+                       \r
+                       XUI_AbstractUINode.prototype.setItemData.apply( this, arguments );\r
+                       \r
+                       if( X_Type_isObject( itemData = this.itemData ) && this.dataFeild ){\r
+                               this.setContent( itemData[ this.dataFeild ] || '' );\r
                        };\r
                }\r
        }\r
@@ -21,20 +60,22 @@ X.UI._Text = X.UI._AbstractUINode.inherits(
 \r
 X.UI.Text = X.UI.AbstractUINode.inherits(\r
        'Text',\r
-       X.Class.SUPER_ACCESS,\r
-       X.UI._Text,\r
+       X_Class.NONE,\r
        {\r
-               Constructor : function( opt_content, opt_cssObj ){\r
-                       X.Class._newPrivate( this, opt_content );\r
-                       X.Type.isObject( opt_cssObj = opt_cssObj || opt_content ) && this.attr( opt_cssObj );\r
+               Constructor : function( opt_content, opt_attrObj ){\r
+                       X_Pair_create( this, XUI_Text( this, opt_content ) );\r
+\r
+                       X_Type_isObject( opt_attrObj = opt_attrObj || opt_content ) && this[ 'attr' ]( opt_attrObj );\r
                },\r
                content : function( v ){\r
-                       var data = X.Class._getPrivate( this );\r
-                       if( data.content !== v ){\r
-                               data.xnode && data.xnode.text( v );\r
-                               data.rootData.reserveCalc();\r
-                               if( data.dirty < X.UI.Dirty.CONTENT ) data.dirty = X.UI.Dirty.CONTENT;                          \r
+                       var data = X_Pair_get( this ),\r
+                               content = data.content;\r
+                       \r
+                       if( v === undefined ){\r
+                               return content;\r
                        };\r
+                       content !== v && data.setContent( v );\r
+                       return this;\r
                }\r
        }\r
 );
\ No newline at end of file