Datenstand V1.0
This commit is contained in:
116
ckeditor/_source/core/ui.js
Normal file
116
ckeditor/_source/core/ui.js
Normal file
@@ -0,0 +1,116 @@
|
||||
/*
|
||||
Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.html or http://ckeditor.com/license
|
||||
*/
|
||||
|
||||
/**
|
||||
* Contains UI features related to an editor instance.
|
||||
* @constructor
|
||||
* @param {CKEDITOR.editor} editor The editor instance.
|
||||
* @example
|
||||
*/
|
||||
CKEDITOR.ui = function( editor )
|
||||
{
|
||||
if ( editor.ui )
|
||||
return editor.ui;
|
||||
|
||||
/**
|
||||
* Object used to hold private stuff.
|
||||
* @private
|
||||
*/
|
||||
this._ =
|
||||
{
|
||||
handlers : {},
|
||||
items : {},
|
||||
editor : editor
|
||||
};
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
// PACKAGER_RENAME( CKEDITOR.ui )
|
||||
|
||||
CKEDITOR.ui.prototype =
|
||||
{
|
||||
/**
|
||||
* Adds a UI item to the items collection. These items can be later used in
|
||||
* the interface.
|
||||
* @param {String} name The UI item name.
|
||||
* @param {Object} type The item type.
|
||||
* @param {Object} definition The item definition. The properties of this
|
||||
* object depend on the item type.
|
||||
* @example
|
||||
* // Add a new button named "MyBold".
|
||||
* editorInstance.ui.add( 'MyBold', CKEDITOR.UI_BUTTON,
|
||||
* {
|
||||
* label : 'My Bold',
|
||||
* command : 'bold'
|
||||
* });
|
||||
*/
|
||||
add : function( name, type, definition )
|
||||
{
|
||||
this._.items[ name ] =
|
||||
{
|
||||
type : type,
|
||||
// The name of {@link CKEDITOR.command} which associate with this UI.
|
||||
command : definition.command || null,
|
||||
args : Array.prototype.slice.call( arguments, 2 )
|
||||
};
|
||||
},
|
||||
|
||||
/**
|
||||
* Gets a UI object.
|
||||
* @param {String} name The UI item hame.
|
||||
* @example
|
||||
*/
|
||||
create : function( name )
|
||||
{
|
||||
var item = this._.items[ name ],
|
||||
handler = item && this._.handlers[ item.type ],
|
||||
command = item && item.command && this._.editor.getCommand( item.command );
|
||||
|
||||
var result = handler && handler.create.apply( this, item.args );
|
||||
|
||||
// Add reference inside command object.
|
||||
if ( command )
|
||||
command.uiItems.push( result );
|
||||
|
||||
return result;
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds a handler for a UI item type. The handler is responsible for
|
||||
* transforming UI item definitions in UI objects.
|
||||
* @param {Object} type The item type.
|
||||
* @param {Object} handler The handler definition.
|
||||
* @example
|
||||
*/
|
||||
addHandler : function( type, handler )
|
||||
{
|
||||
this._.handlers[ type ] = handler;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* (Virtual Class) Do not call this constructor. This class is not really part
|
||||
* of the API. It just illustrates the features of hanlder objects to be
|
||||
* passed to the {@link CKEDITOR.ui.prototype.addHandler} function.
|
||||
* @name CKEDITOR.ui.handlerDefinition
|
||||
* @constructor
|
||||
* @example
|
||||
*/
|
||||
|
||||
/**
|
||||
* Transforms an item definition into an UI item object.
|
||||
* @name CKEDITOR.handlerDefinition.prototype.create
|
||||
* @function
|
||||
* @param {Object} definition The item definition.
|
||||
* @example
|
||||
* editorInstance.ui.addHandler( CKEDITOR.UI_BUTTON,
|
||||
* {
|
||||
* create : function( definition )
|
||||
* {
|
||||
* return new CKEDITOR.ui.button( definition );
|
||||
* }
|
||||
* });
|
||||
*/
|
||||
Reference in New Issue
Block a user