source: branches/2.2/filemanager/tp/ckeditor/_source/core/ui.js @ 3019

Revision 3019, 2.9 KB checked in by amuller, 14 years ago (diff)

Ticket #1135 - Corrigindo CSS e adicionando filemanager

Line 
1/*
2Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.html or http://ckeditor.com/license
4*/
5
6/**
7 * Contains UI features related to an editor instance.
8 * @constructor
9 * @param {CKEDITOR.editor} editor The editor instance.
10 * @example
11 */
12CKEDITOR.ui = function( editor )
13{
14        if ( editor.ui )
15                return editor.ui;
16
17        /**
18         * Object used to hold private stuff.
19         * @private
20         */
21        this._ =
22        {
23                handlers : {},
24                items : {},
25                editor : editor
26        };
27
28        return this;
29};
30
31// PACKAGER_RENAME( CKEDITOR.ui )
32
33CKEDITOR.ui.prototype =
34{
35        /**
36         * Adds a UI item to the items collection. These items can be later used in
37         * the interface.
38         * @param {String} name The UI item name.
39         * @param {Object} type The item type.
40         * @param {Object} definition The item definition. The properties of this
41         *              object depend on the item type.
42         * @example
43         * // Add a new button named "MyBold".
44         * editorInstance.ui.add( 'MyBold', CKEDITOR.UI_BUTTON,
45         *     {
46         *         label : 'My Bold',
47         *         command : 'bold'
48         *     });
49         */
50        add : function( name, type, definition )
51        {
52                this._.items[ name ] =
53                {
54                        type : type,
55                        // The name of {@link CKEDITOR.command} which associate with this UI.
56                        command : definition.command || null,
57                        args : Array.prototype.slice.call( arguments, 2 )
58                };
59        },
60
61        /**
62         * Gets a UI object.
63         * @param {String} name The UI item hame.
64         * @example
65         */
66        create : function( name )
67        {
68                var item        = this._.items[ name ],
69                        handler = item && this._.handlers[ item.type ],
70                        command = item && item.command && this._.editor.getCommand( item.command );
71
72                var result = handler && handler.create.apply( this, item.args );
73
74                // Add reference inside command object.
75                if ( command )
76                        command.uiItems.push( result );
77
78                return result;
79        },
80
81        /**
82         * Adds a handler for a UI item type. The handler is responsible for
83         * transforming UI item definitions in UI objects.
84         * @param {Object} type The item type.
85         * @param {Object} handler The handler definition.
86         * @example
87         */
88        addHandler : function( type, handler )
89        {
90                this._.handlers[ type ] = handler;
91        }
92};
93
94/**
95 * (Virtual Class) Do not call this constructor. This class is not really part
96 *              of the API. It just illustrates the features of hanlder objects to be
97 *              passed to the {@link CKEDITOR.ui.prototype.addHandler} function.
98 * @name CKEDITOR.ui.handlerDefinition
99 * @constructor
100 * @example
101 */
102
103 /**
104 * Transforms an item definition into an UI item object.
105 * @name CKEDITOR.handlerDefinition.prototype.create
106 * @function
107 * @param {Object} definition The item definition.
108 * @example
109 * editorInstance.ui.addHandler( CKEDITOR.UI_BUTTON,
110 *     {
111 *         create : function( definition )
112 *         {
113 *             return new CKEDITOR.ui.button( definition );
114 *         }
115 *     });
116 */
Note: See TracBrowser for help on using the repository browser.