OSDN Git Service

Version 0.6.47, fix for IE5 & Opera7.x.
[pettanr/clientJs.git] / 0.6.x / js / ui / 17_Text.js
index b0b5f1e..bc02512 100644 (file)
@@ -1,39 +1,45 @@
-var _Text = _AbstractDisplayNode.inherits(\r
+var _Text = _AbstractUINode.inherits(\r
        '_Text',\r
        X.Class.PRIVATE_DATA,\r
        {\r
-               content    : null,\r
+               content     : null,\r
+               \r
                Constructor : function( content ){\r
                        if( !( this.User.instanceOf( Text ) ) ){\r
-                               throw new Error( 'Text を継承したインスタンスだけが _Text のオーナーになれます' );\r
+                               //throw new Error( 'Text を継承したインスタンスだけが _Text のオーナーになれます' );\r
+                       };\r
+                       this.xnode      = X.Dom.Node.create( 'div' );\r
+                       \r
+                       if( X.Type.isString( content ) ){\r
+                               this.content = content;\r
+                               this.dirty   = X.UI.Dirty.CONTENT;\r
                        };\r
-                       this.content   = content;\r
                },\r
-               afterAddition : function(){\r
-                       this.rawElement.text( this.content );\r
-                       this.styleData.afterAddition();\r
+               creationComplete : function(){\r
+                       this.content && this.xnode.text( this.content );\r
                        \r
                        this.phase = 3;\r
-                       this.User.dispatch( { type : X.UI.Event.CREATION_COMPLETE } );\r
+                       this.dispatch( { type : X.UI.Event.CREATION_COMPLETE } );\r
                }\r
        }\r
 );\r
 \r
-var Text = AbstractDisplayNode.inherits(\r
+var Text = AbstractUINode.inherits(\r
        'Text',\r
        X.Class.SUPER_ACCESS,\r
        _Text,\r
        {\r
-               Constructor : function( content, cssObj ){\r
-                       var data = X.Class._newPrivate( this, content );\r
-                       this.style = DisplayNodeStyle( this, data );\r
-                       cssObj && this.style.css( cssObj );\r
-                       if( cssObj ){\r
-                               if( cssObj.role === 'chrome' ) data.forChrome = true;\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
                },\r
-               content : function(){\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
+                       };\r
                }\r
        }\r
 );
\ No newline at end of file