OSDN Git Service

Version 0.6.194, X.UI.Page working.
[pettanr/clientJs.git] / 0.6.x / js / 20_ui / 17_Text.js
index b589337..40877be 100644 (file)
@@ -1,8 +1,19 @@
+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.NONE,\r
        {\r
-               content     : null,\r
+               content     : '',\r
+               \r
+               usableAttrs : __textAttrs = X_UI_Text_usableAttrs,\r
+               \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
@@ -11,11 +22,38 @@ var XUI_Text = XUI_AbstractUINode.inherits(
                        this.User  = user;\r
                        this.xnode = X_Doc_create( 'div' );\r
                        \r
-                       if( X_Type_isString( content ) && content ){\r
-                               this.content = content;\r
+                       if( content != null ){\r
+                               this.content = '' + 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 ) && itemData[ this.dataFeild ] != null ){\r
+                               this.setContent( '' + itemData[ this.dataFeild ] );\r
+                       };\r
                }\r
        }\r
 );\r
@@ -30,12 +68,15 @@ X.UI.Text = X.UI.AbstractUINode.inherits(
                        X_Type_isObject( opt_attrObj = opt_attrObj || opt_content ) && this[ 'attr' ]( opt_attrObj );\r
                },\r
                content : function( v ){\r
-                       var data = X_Pair_get( this );\r
-                       if( data.content !== v ){\r
-                               data.xnode && data.xnode[ 'text' ]( v );\r
-                               data.rootData.reserveCalc();\r
-                               if( data.dirty < XUI_Dirty.CONTENT ) data.dirty = XUI_Dirty.CONTENT;\r
+                       var data = X_Pair_get( this ),\r
+                               content = data.content;\r
+                       \r
+                       if( v === undefined ){\r
+                               return content;\r
                        };\r
+                       v += '';\r
+                       content !== v && data.setContent( v );\r
+                       return this;\r
                }\r
        }\r
 );
\ No newline at end of file