JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.0.1
[ckeditor.git] / _source / core / ui.js
index 1d152e2..d0ec6d7 100644 (file)
@@ -21,7 +21,8 @@ CKEDITOR.ui = function( editor )
        this._ =\r
        {\r
                handlers : {},\r
-               items : {}\r
+               items : {},\r
+               editor : editor\r
        };\r
 \r
        return this;\r
@@ -51,6 +52,8 @@ CKEDITOR.ui.prototype =
                this._.items[ name ] =\r
                {\r
                        type : type,\r
+                       // The name of {@link CKEDITOR.command} which associate with this UI.\r
+                       command : definition.command || null,\r
                        args : Array.prototype.slice.call( arguments, 2 )\r
                };\r
        },\r
@@ -63,9 +66,16 @@ CKEDITOR.ui.prototype =
        create : function( name )\r
        {\r
                var item        = this._.items[ name ],\r
-                       handler = item && this._.handlers[ item.type ];\r
+                       handler = item && this._.handlers[ item.type ],\r
+                       command = item && item.command && this._.editor.getCommand( item.command );\r
 \r
-               return handler && handler.create.apply( this, item.args );\r
+               var result = handler && handler.create.apply( this, item.args );\r
+\r
+               // Add reference inside command object.\r
+               if ( command )\r
+                       command.uiItems.push( result );\r
+\r
+               return result;\r
        },\r
 \r
        /**\r