OSDN Git Service

5dacb25ab330ea477b5257bbc5486b0ea0e3dd55
[pettanr/clientJs.git] / 0.6.x / js / 20_ui / 17_Text.js
1 var X_UI_Text_SUPPORT_ATTRS = {\r
2                 content   : [ '', XUI_Dirty.CONTENT, XUI_Attr_USER.UINODE, XUI_Attr_Type.STRING ]\r
3 };\r
4 \r
5 var XUI_Text = XUI_AbstractUINode.inherits(\r
6         '_Text',\r
7         X_Class.NONE,\r
8         {\r
9                 content     : '',\r
10                 \r
11                 usableAttrs     : XUI_Attr_createAttrDef( XUI_AbstractUINode.prototype.usableAttrs, X_UI_Text_SUPPORT_ATTRS ),\r
12                 \r
13                 Constructor : function( user, content ){\r
14                         if( !( user[ 'instanceOf' ]( X.UI.Text ) ) ){\r
15                                 alert( 'Text を継承したインスタンスだけが _Text のオーナーになれます' );\r
16                         };\r
17                         this.User  = user;\r
18                         this.xnode = X_Doc_create( 'div' );\r
19                         \r
20                         if( X_Type_isString( content ) && content ){\r
21                                 this.content = content;\r
22                         };\r
23                 },\r
24                 \r
25                 creationComplete : function(){\r
26                         if( X_Type_isString( this.content ) && this.content ){\r
27                                 this.xnode[ 'text' ]( this.content );\r
28                                 this.dirty   = XUI_Dirty.CONTENT;\r
29                         };\r
30                         \r
31                         XUI_AbstractUINode.prototype.creationComplete.apply( this, arguments );                 \r
32                 },\r
33                 \r
34                 setItemData : function( itemData ){\r
35                         if( this.itemData === itemData ) return;\r
36                         \r
37                         XUI_AbstractUINode.prototype.setItemData.apply( this, arguments );\r
38                         \r
39                         if( X_Type_isObject( itemData = this.itemData ) && this.dataFeild ){\r
40                                 this.User.content( itemData[ this.dataFeild ] || '' );\r
41                         };\r
42                 }\r
43         }\r
44 );\r
45 \r
46 X.UI.Text = X.UI.AbstractUINode.inherits(\r
47         'Text',\r
48         X_Class.NONE,\r
49         {\r
50                 Constructor : function( opt_content, opt_attrObj ){\r
51                         X_Pair_create( this, XUI_Text( this, opt_content ) );\r
52 \r
53                         X_Type_isObject( opt_attrObj = opt_attrObj || opt_content ) && this[ 'attr' ]( opt_attrObj );\r
54                 },\r
55                 content : function( v ){\r
56                         var data = X_Pair_get( this );\r
57                         if( data.content !== v ){\r
58                                 data.xnode && data.xnode[ 'text' ]( v );\r
59                                 data.rootData.reserveCalc();\r
60                                 if( data.dirty < XUI_Dirty.CONTENT ) data.dirty = XUI_Dirty.CONTENT;\r
61                         };\r
62                 }\r
63         }\r
64 );